Only send Messages::WebPageProxy::DidSaveToPageCache once when entering page cache.
authorakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Dec 2016 03:48:49 +0000 (03:48 +0000)
committerakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Dec 2016 03:48:49 +0000 (03:48 +0000)
<https://webkit.org/b/165887>

Reviewed by Brady Eidson.

We were sending one of these IPC messages per frame when a page enters the page cache,
and we really only need one, so only do it for the main frame.

(This message is used to adopt the page cache on the UI process side, in case another
web process currently owns the cache. That happens in WebProcessPool::processDidCachePage().)

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::didSaveToPageCache):

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

Source/WebKit2/ChangeLog
Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp

index 0c5e1d8..64cbda5 100644 (file)
@@ -1,3 +1,19 @@
+2016-12-14  Andreas Kling  <akling@apple.com>
+
+        Only send Messages::WebPageProxy::DidSaveToPageCache once when entering page cache.
+        <https://webkit.org/b/165887>
+
+        Reviewed by Brady Eidson.
+
+        We were sending one of these IPC messages per frame when a page enters the page cache,
+        and we really only need one, so only do it for the main frame.
+
+        (This message is used to adopt the page cache on the UI process side, in case another
+        web process currently owns the cache. That happens in WebProcessPool::processDidCachePage().)
+
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::didSaveToPageCache):
+
 2016-12-14  Simon Fraser  <simon.fraser@apple.com>
 
         Fix cause of viewport-related flakiness in iOS tests
index 84df264..2c57ace 100644 (file)
@@ -1370,7 +1370,8 @@ void WebFrameLoaderClient::didSaveToPageCache()
     if (!webPage)
         return;
 
-    webPage->send(Messages::WebPageProxy::DidSaveToPageCache());
+    if (m_frame->isMainFrame())
+        webPage->send(Messages::WebPageProxy::DidSaveToPageCache());
 }
 
 void WebFrameLoaderClient::didRestoreFromPageCache()