Title: [273576] trunk/Source/WebKit
Revision
273576
Author
pvol...@apple.com
Date
2021-02-26 12:22:31 -0800 (Fri, 26 Feb 2021)

Log Message

[Cocoa] Send QOS parameters as part of Web process creation parameters
https://bugs.webkit.org/show_bug.cgi?id=222474

Reviewed by Chris Dumez.

In order to save one IPC call when starting a WebContent process, send QOS parameters as part of Web process creation parameters.

* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
* WebProcess/WebProcess.messages.in:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (273575 => 273576)


--- trunk/Source/WebKit/ChangeLog	2021-02-26 20:21:36 UTC (rev 273575)
+++ trunk/Source/WebKit/ChangeLog	2021-02-26 20:22:31 UTC (rev 273576)
@@ -1,5 +1,26 @@
 2021-02-26  Per Arne  <pvol...@apple.com>
 
+        [Cocoa] Send QOS parameters as part of Web process creation parameters
+        https://bugs.webkit.org/show_bug.cgi?id=222474
+
+        Reviewed by Chris Dumez.
+
+        In order to save one IPC call when starting a WebContent process, send QOS parameters as part of Web process creation parameters.
+
+        * Shared/WebProcessCreationParameters.cpp:
+        (WebKit::WebProcessCreationParameters::encode const):
+        (WebKit::WebProcessCreationParameters::decode):
+        * Shared/WebProcessCreationParameters.h:
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::WebProcessPool::platformInitializeWebProcess):
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::initializeNewWebProcess):
+        * WebProcess/WebProcess.messages.in:
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        (WebKit::WebProcess::platformInitializeWebProcess):
+
+2021-02-26  Per Arne  <pvol...@apple.com>
+
         [Cocoa] Start WebContent process pre-warming when process is initialized
         https://bugs.webkit.org/show_bug.cgi?id=222476
 

Modified: trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp (273575 => 273576)


--- trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp	2021-02-26 20:21:36 UTC (rev 273575)
+++ trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp	2021-02-26 20:22:31 UTC (rev 273576)
@@ -97,6 +97,8 @@
 #if PLATFORM(COCOA)
     encoder << uiProcessBundleIdentifier;
     encoder << uiProcessSDKVersion;
+    encoder << latencyQOS;
+    encoder << throughputQOS;
 #endif
     encoder << presentingApplicationPID;
 #if PLATFORM(COCOA)
@@ -321,6 +323,10 @@
         return false;
     if (!decoder.decode(parameters.uiProcessSDKVersion))
         return false;
+    if (!decoder.decode(parameters.latencyQOS))
+        return false;
+    if (!decoder.decode(parameters.throughputQOS))
+        return false;
 #endif
     if (!decoder.decode(parameters.presentingApplicationPID))
         return false;

Modified: trunk/Source/WebKit/Shared/WebProcessCreationParameters.h (273575 => 273576)


--- trunk/Source/WebKit/Shared/WebProcessCreationParameters.h	2021-02-26 20:21:36 UTC (rev 273575)
+++ trunk/Source/WebKit/Shared/WebProcessCreationParameters.h	2021-02-26 20:22:31 UTC (rev 273576)
@@ -141,6 +141,8 @@
 #if PLATFORM(COCOA)
     String uiProcessBundleIdentifier;
     uint32_t uiProcessSDKVersion { 0 };
+    int latencyQOS { 0 };
+    int throughputQOS { 0 };
 #endif
 
     ProcessID presentingApplicationPID { 0 };

Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (273575 => 273576)


--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2021-02-26 20:21:36 UTC (rev 273575)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2021-02-26 20:22:31 UTC (rev 273576)
@@ -322,6 +322,9 @@
     parameters.uiProcessBundleIdentifier = applicationBundleIdentifier();
     parameters.uiProcessSDKVersion = applicationSDKVersion();
 
+    parameters.latencyQOS = webProcessLatencyQOS();
+    parameters.throughputQOS = webProcessThroughputQOS();
+    
 #if PLATFORM(IOS_FAMILY)
     if (!m_resolvedPaths.cookieStorageDirectory.isEmpty())
         SandboxExtension::createHandleWithoutResolvingPath(m_resolvedPaths.cookieStorageDirectory, SandboxExtension::Type::ReadWrite, parameters.cookieStorageDirectoryExtensionHandle);

Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (273575 => 273576)


--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2021-02-26 20:21:36 UTC (rev 273575)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2021-02-26 20:22:31 UTC (rev 273576)
@@ -853,9 +853,6 @@
         parameters.websiteDataStoreParameters = webProcessDataStoreParameters(process, *websiteDataStore);
 
     process.send(Messages::WebProcess::InitializeWebProcess(parameters), 0);
-#if PLATFORM(COCOA)
-    process.send(Messages::WebProcess::SetQOS(webProcessLatencyQOS(), webProcessThroughputQOS()), 0);
-#endif
 
     if (m_automationSession)
         process.send(Messages::WebProcess::EnsureAutomationSessionProxy(m_automationSession->sessionIdentifier()), 0);

Modified: trunk/Source/WebKit/WebProcess/WebProcess.messages.in (273575 => 273576)


--- trunk/Source/WebKit/WebProcess/WebProcess.messages.in	2021-02-26 20:21:36 UTC (rev 273575)
+++ trunk/Source/WebKit/WebProcess/WebProcess.messages.in	2021-02-26 20:22:31 UTC (rev 273576)
@@ -77,9 +77,6 @@
     DeleteWebsiteDataForOrigins(OptionSet<WebKit::WebsiteDataType> websiteDataTypes, Vector<WebCore::SecurityOriginData> origins) -> () Async
 
     SetHiddenPageDOMTimerThrottlingIncreaseLimit(int milliseconds)
-#if PLATFORM(COCOA)
-    SetQOS(int latencyQOS, int throughputQOS)
-#endif
 
     SetMemoryCacheDisabled(bool disabled);
 

Modified: trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm (273575 => 273576)


--- trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm	2021-02-26 20:21:36 UTC (rev 273575)
+++ trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm	2021-02-26 20:22:31 UTC (rev 273576)
@@ -207,6 +207,8 @@
 
 void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters& parameters)
 {
+    setQOS(parameters.latencyQOS, parameters.throughputQOS);
+    
     SandboxExtension::consumePermanently(parameters.diagnosticsExtensionHandles);
 
 #if HAVE(CATALYST_USER_INTERFACE_IDIOM_AND_SCALE_FACTOR)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to