Title: [247009] trunk/Source/WebKit
Revision
247009
Author
[email protected]
Date
2019-07-01 08:34:16 -0700 (Mon, 01 Jul 2019)

Log Message

Perform less work when a pre-warmed WebProcess is suspended or resumed.
https://bugs.webkit.org/show_bug.cgi?id=199195

Reviewed by Darin Adler.

Return early from WebProcess::actualPrepareToSuspend and WebProcess::processDidResume
if this is a pre-warmed process. This is a confirmed improvement in page load time.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::actualPrepareToSuspend):
(WebKit::WebProcess::cancelPrepareToSuspend):
(WebKit::WebProcess::processDidResume):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (247008 => 247009)


--- trunk/Source/WebKit/ChangeLog	2019-07-01 13:45:57 UTC (rev 247008)
+++ trunk/Source/WebKit/ChangeLog	2019-07-01 15:34:16 UTC (rev 247009)
@@ -1,3 +1,18 @@
+2019-07-01  Per Arne Vollan  <[email protected]>
+
+        Perform less work when a pre-warmed WebProcess is suspended or resumed.
+        https://bugs.webkit.org/show_bug.cgi?id=199195
+
+        Reviewed by Darin Adler.
+
+        Return early from WebProcess::actualPrepareToSuspend and WebProcess::processDidResume
+        if this is a pre-warmed process. This is a confirmed improvement in page load time.
+
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::actualPrepareToSuspend):
+        (WebKit::WebProcess::cancelPrepareToSuspend):
+        (WebKit::WebProcess::processDidResume):
+
 2019-07-01  Carlos Garcia Campos  <[email protected]>
 
         WebSockets: add support for sending blob messages when using web sockets platform APIs

Modified: trunk/Source/WebKit/WebProcess/WebProcess.cpp (247008 => 247009)


--- trunk/Source/WebKit/WebProcess/WebProcess.cpp	2019-07-01 13:45:57 UTC (rev 247008)
+++ trunk/Source/WebKit/WebProcess/WebProcess.cpp	2019-07-01 15:34:16 UTC (rev 247009)
@@ -1471,6 +1471,16 @@
     SetForScope<bool> suspensionScope(m_isSuspending, true);
     m_processIsSuspended = true;
 
+#if PLATFORM(COCOA)
+    if (m_processType == ProcessType::PrewarmedWebContent) {
+        if (shouldAcknowledgeWhenReadyToSuspend == ShouldAcknowledgeWhenReadyToSuspend::Yes) {
+            RELEASE_LOG(ProcessSuspension, "%p - WebProcess::actualPrepareToSuspend() Sending ProcessReadyToSuspend IPC message", this);
+            parentProcessConnection()->send(Messages::WebProcessProxy::ProcessReadyToSuspend(), 0);
+        }
+        return;
+    }
+#endif
+
 #if ENABLE(VIDEO)
     suspendAllMediaBuffering();
     if (auto* platformMediaSessionManager = PlatformMediaSessionManager::sharedManagerIfExists())
@@ -1527,6 +1537,11 @@
 
     m_processIsSuspended = false;
 
+#if PLATFORM(COCOA)
+    if (m_processType == ProcessType::PrewarmedWebContent)
+        return;
+#endif
+
     unfreezeAllLayerTrees();
 
 #if PLATFORM(IOS_FAMILY)
@@ -1603,6 +1618,11 @@
 
     m_processIsSuspended = false;
 
+#if PLATFORM(COCOA)
+    if (m_processType == ProcessType::PrewarmedWebContent)
+        return;
+#endif
+
     cancelMarkAllLayersVolatile();
     unfreezeAllLayerTrees();
     
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to