- 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)