REGRESSION (r176459): Process suspension cleanup timer sometimes never stops
authortimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Feb 2015 23:24:09 +0000 (23:24 +0000)
committertimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Feb 2015 23:24:09 +0000 (23:24 +0000)
https://bugs.webkit.org/show_bug.cgi?id=141669

Reviewed by Simon Fraser.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::markAllLayersVolatileIfPossible):
r176459 accidentally removed the code to stop the cleanup timer
in the case where we successfully finish marking layers volatile,
causing the timer to continue running once the process comes back
from a suspended state.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@180180 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/WebProcess/WebProcess.cpp

index 86ee14e32e3c2ebfc51972f0547b56d148b3b449..f2b7f4f8ae2a9dd2ee29adfcbb6c06c550663c4a 100644 (file)
@@ -1,3 +1,17 @@
+2015-02-16  Tim Horton  <timothy_horton@apple.com>
+
+        REGRESSION (r176459): Process suspension cleanup timer sometimes never stops
+        https://bugs.webkit.org/show_bug.cgi?id=141669
+
+        Reviewed by Simon Fraser.
+
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::markAllLayersVolatileIfPossible):
+        r176459 accidentally removed the code to stop the cleanup timer
+        in the case where we successfully finish marking layers volatile,
+        causing the timer to continue running once the process comes back
+        from a suspended state.
+
 2015-02-16  Anders Carlsson  <andersca@apple.com>
 
         Check for the assume_nonnull feature instead of noescape
index c3c913f427c9f49f6e7ea07d86b974c7def44c5b..8a4423f140f4f265c41186dd05114ebc375a656c 100644 (file)
@@ -1196,6 +1196,7 @@ bool WebProcess::markAllLayersVolatileIfPossible()
 void WebProcess::processSuspensionCleanupTimerFired()
 {
     if (markAllLayersVolatileIfPossible()) {
+        m_processSuspensionCleanupTimer.stop();
         parentProcessConnection()->send(Messages::WebProcessProxy::ProcessReadyToSuspend(), 0);
     }
 }