Title: [283374] trunk/Source/WebKit
Revision
283374
Author
pvol...@apple.com
Date
2021-10-01 09:48:07 -0700 (Fri, 01 Oct 2021)

Log Message

Send Launch Services database to GPU process
https://bugs.webkit.org/show_bug.cgi?id=225151
<rdar://74749122>

Reviewed by Brent Fulgham.

Send Launch Services database to the GPU process after it has finished launching, like we do for WebContent processes.
The Launch Services database is represented as an XPC object, and needs to be sent over a dedicated XPC channel.

* GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
* UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::didFinishLaunching):
(WebKit::GPUProcessProxy::addSession):
* UIProcess/Network/NetworkProcessProxyCocoa.mm:
(WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::setWebsiteDataStore):
(WebKit::WebProcessProxy::didFinishLaunching):
* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess const):
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToAllProcesses):
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToWebProcess): Deleted.
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToAllWebProcesses): Deleted.
* UIProcess/WebsiteData/WebsiteDataStore.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (283373 => 283374)


--- trunk/Source/WebKit/ChangeLog	2021-10-01 16:27:24 UTC (rev 283373)
+++ trunk/Source/WebKit/ChangeLog	2021-10-01 16:48:07 UTC (rev 283374)
@@ -1,3 +1,30 @@
+2021-10-01  Per Arne Vollan  <pvol...@apple.com>
+
+        Send Launch Services database to GPU process
+        https://bugs.webkit.org/show_bug.cgi?id=225151
+        <rdar://74749122>
+
+        Reviewed by Brent Fulgham.
+
+        Send Launch Services database to the GPU process after it has finished launching, like we do for WebContent processes.
+        The Launch Services database is represented as an XPC object, and needs to be sent over a dedicated XPC channel.
+
+        * GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
+        * UIProcess/GPU/GPUProcessProxy.cpp:
+        (WebKit::GPUProcessProxy::didFinishLaunching):
+        (WebKit::GPUProcessProxy::addSession):
+        * UIProcess/Network/NetworkProcessProxyCocoa.mm:
+        (WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::WebProcessProxy::setWebsiteDataStore):
+        (WebKit::WebProcessProxy::didFinishLaunching):
+        * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
+        (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess const):
+        (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToAllProcesses):
+        (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToWebProcess): Deleted.
+        (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToAllWebProcesses): Deleted.
+        * UIProcess/WebsiteData/WebsiteDataStore.h:
+
 2021-10-01  Youenn Fablet  <you...@apple.com>
 
         Attribute IOSurfaces created by camera and decoders to responsible WebProcess

Modified: trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in (283373 => 283374)


--- trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in	2021-10-01 16:27:24 UTC (rev 283373)
+++ trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in	2021-10-01 16:48:07 UTC (rev 283374)
@@ -695,7 +695,9 @@
 #else
        (global-name "com.apple.windowserver.active")
 #endif
+#if __MAC_OS_X_VERSION_MIN_REQUIRED < 120000
        (global-name "com.apple.lsd.mapdb")
+#endif
        (global-name "com.apple.fonts")
        (global-name "com.apple.PowerManagement.control")
        (global-name "com.apple.trustd.agent")

Modified: trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp (283373 => 283374)


--- trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp	2021-10-01 16:27:24 UTC (rev 283373)
+++ trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp	2021-10-01 16:48:07 UTC (rev 283374)
@@ -432,6 +432,14 @@
     if (xpc_connection_t connection = this->connection()->xpcConnection())
         m_throttler.didConnectToProcess(xpc_connection_get_pid(connection));
 #endif
+
+#if PLATFORM(COCOA)
+    auto it = m_sessionIDs.begin();
+    if (it != m_sessionIDs.end()) {
+        auto webSiteDataStore = WebsiteDataStore::existingDataStoreForSessionID(*m_sessionIDs.begin());
+        webSiteDataStore->sendNetworkProcessXPCEndpointToProcess(*this);
+    }
+#endif
 }
 
 void GPUProcessProxy::updateProcessAssertion()

Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxyCocoa.mm (283373 => 283374)


--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxyCocoa.mm	2021-10-01 16:27:24 UTC (rev 283373)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxyCocoa.mm	2021-10-01 16:48:07 UTC (rev 283374)
@@ -54,7 +54,7 @@
     if (messageName == LaunchServicesDatabaseXPCConstants::xpcLaunchServicesDatabaseXPCEndpointMessageName) {
         m_networkProcess->m_endpointMessage = event;
         for (auto& dataStore : copyToVectorOf<Ref<WebsiteDataStore>>(m_networkProcess->m_websiteDataStores))
-            dataStore->sendNetworkProcessXPCEndpointToAllWebProcesses();
+            dataStore->sendNetworkProcessXPCEndpointToAllProcesses();
     }
 
     return true;

Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp (283373 => 283374)


--- trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp	2021-10-01 16:27:24 UTC (rev 283373)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp	2021-10-01 16:48:07 UTC (rev 283374)
@@ -338,8 +338,12 @@
     WEBPROCESSPROXY_RELEASE_LOG(Process, "setWebsiteDataStore() dataStore=%p, sessionID=%" PRIu64, &dataStore, dataStore.sessionID().toUInt64());
     m_websiteDataStore = &dataStore;
 #if PLATFORM(COCOA)
-    dataStore.sendNetworkProcessXPCEndpointToWebProcess(*this);
+    dataStore.sendNetworkProcessXPCEndpointToProcess(*this);
+#if ENABLE(GPU_PROCESS)
+    if (GPUProcessProxy::singletonIfCreated())
+        dataStore.sendNetworkProcessXPCEndpointToProcess(*GPUProcessProxy::singletonIfCreated());
 #endif
+#endif
     updateRegistrationWithDataStore();
     send(Messages::WebProcess::SetWebsiteDataStoreParameters(processPool().webProcessDataStoreParameters(*this, dataStore)), 0);
 }
@@ -1067,7 +1071,7 @@
 
 #if PLATFORM(COCOA)
     if (m_websiteDataStore)
-        m_websiteDataStore->sendNetworkProcessXPCEndpointToWebProcess(*this);
+        m_websiteDataStore->sendNetworkProcessXPCEndpointToProcess(*this);
 #endif
 
     RELEASE_ASSERT(!m_webConnection);

Modified: trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (283373 => 283374)


--- trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm	2021-10-01 16:27:24 UTC (rev 283373)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm	2021-10-01 16:48:07 UTC (rev 283374)
@@ -49,6 +49,10 @@
 #import <wtf/cocoa/Entitlements.h>
 #import <wtf/text/cf/StringConcatenateCF.h>
 
+#if ENABLE(GPU_PROCESS)
+#import "GPUProcessProxy.h"
+#endif
+
 #if PLATFORM(IOS_FAMILY)
 #import <UIKit/UIApplication.h>
 #import <pal/ios/ManagedConfigurationSoftLink.h>
@@ -594,7 +598,7 @@
     return WTF::hasEntitlement(networkProcess().connection()->xpcConnection(), entitlement.utf8().data());
 }
 
-void WebsiteDataStore::sendNetworkProcessXPCEndpointToWebProcess(WebProcessProxy& process)
+void WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess(AuxiliaryProcessProxy& process) const
 {
     if (process.state() != AuxiliaryProcessProxy::State::Running)
         return;
@@ -607,10 +611,14 @@
     xpc_connection_send_message(connection->xpcConnection(), message);
 }
 
-void WebsiteDataStore::sendNetworkProcessXPCEndpointToAllWebProcesses()
+void WebsiteDataStore::sendNetworkProcessXPCEndpointToAllProcesses()
 {
     for (auto& process : m_processes)
-        sendNetworkProcessXPCEndpointToWebProcess(process);
+        sendNetworkProcessXPCEndpointToProcess(process);
+#if ENABLE(GPU_PROCESS)
+    if (GPUProcessProxy::singletonIfCreated())
+        sendNetworkProcessXPCEndpointToProcess(*GPUProcessProxy::singletonIfCreated());
+#endif
 }
 
 }

Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (283373 => 283374)


--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h	2021-10-01 16:27:24 UTC (rev 283373)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h	2021-10-01 16:48:07 UTC (rev 283374)
@@ -82,6 +82,7 @@
 namespace WebKit {
 
 class AuthenticatorManager;
+class AuxiliaryProcessProxy;
 class SecKeyProxyStore;
 class DeviceIdHashSaltStorage;
 class NetworkProcessProxy;
@@ -278,8 +279,8 @@
     void dispatchOnQueue(Function<void()>&&);
 
 #if PLATFORM(COCOA)
-    void sendNetworkProcessXPCEndpointToWebProcess(WebProcessProxy&);
-    void sendNetworkProcessXPCEndpointToAllWebProcesses();
+    void sendNetworkProcessXPCEndpointToProcess(AuxiliaryProcessProxy&) const;
+    void sendNetworkProcessXPCEndpointToAllProcesses();
     
     static bool useNetworkLoader();
 #endif
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to