Title: [209865] trunk/Source
Revision
209865
Author
[email protected]
Date
2016-12-15 10:37:18 -0800 (Thu, 15 Dec 2016)

Log Message

Always clear RenderLayer backing stores when going into page cache.
<https://webkit.org/b/165901>

Reviewed by Simon Fraser.

Source/WebCore:

We were already doing this for the iOS and GTK+ ports, let's do it everywhere
for consistency, and a bit of memory usage improvement.

This patch just removes the setting and always calls FrameView::clearBackingStores()
when there is composited content going into page cache.

* history/CachedFrame.cpp:
(WebCore::CachedFrame::CachedFrame):
* history/PageCache.h:
(WebCore::PageCache::shouldClearBackingStores): Deleted.
(WebCore::PageCache::setShouldClearBackingStores): Deleted.

Source/WebKit/mac:

* WebView/WebView.mm:
(+[WebView _setCacheModel:]):

Source/WebKit2:

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (209864 => 209865)


--- trunk/Source/WebCore/ChangeLog	2016-12-15 17:25:53 UTC (rev 209864)
+++ trunk/Source/WebCore/ChangeLog	2016-12-15 18:37:18 UTC (rev 209865)
@@ -1,3 +1,22 @@
+2016-12-15  Andreas Kling  <[email protected]>
+
+        Always clear RenderLayer backing stores when going into page cache.
+        <https://webkit.org/b/165901>
+
+        Reviewed by Simon Fraser.
+
+        We were already doing this for the iOS and GTK+ ports, let's do it everywhere
+        for consistency, and a bit of memory usage improvement.
+
+        This patch just removes the setting and always calls FrameView::clearBackingStores()
+        when there is composited content going into page cache.
+
+        * history/CachedFrame.cpp:
+        (WebCore::CachedFrame::CachedFrame):
+        * history/PageCache.h:
+        (WebCore::PageCache::shouldClearBackingStores): Deleted.
+        (WebCore::PageCache::setShouldClearBackingStores): Deleted.
+
 2016-12-15  Darin Adler  <[email protected]>
 
         Remove custom binding for MediaDevices

Modified: trunk/Source/WebCore/history/CachedFrame.cpp (209864 => 209865)


--- trunk/Source/WebCore/history/CachedFrame.cpp	2016-12-15 17:25:53 UTC (rev 209864)
+++ trunk/Source/WebCore/history/CachedFrame.cpp	2016-12-15 18:37:18 UTC (rev 209865)
@@ -164,7 +164,7 @@
 
     frame.loader().client().savePlatformDataToCachedFrame(this);
 
-    if (m_isComposited && PageCache::singleton().shouldClearBackingStores())
+    if (m_isComposited)
         frame.view()->clearBackingStores();
 
     // documentWillSuspendForPageCache() can set up a layout timer on the FrameView, so clear timers after that.

Modified: trunk/Source/WebCore/history/PageCache.h (209864 => 209865)


--- trunk/Source/WebCore/history/PageCache.h	2016-12-15 17:25:53 UTC (rev 209864)
+++ trunk/Source/WebCore/history/PageCache.h	2016-12-15 18:37:18 UTC (rev 209865)
@@ -66,9 +66,6 @@
     void markPagesForCaptionPreferencesChanged();
 #endif
 
-    bool shouldClearBackingStores() const { return m_shouldClearBackingStores; }
-    void setShouldClearBackingStores(bool flag) { m_shouldClearBackingStores = flag; }
-
 private:
     PageCache() = default; // Use singleton() instead.
     ~PageCache() = delete; // Make sure nobody accidentally calls delete -- WebCore does not delete singletons.
@@ -79,7 +76,6 @@
 
     ListHashSet<RefPtr<HistoryItem>> m_items;
     unsigned m_maxSize {0};
-    bool m_shouldClearBackingStores {false};
 
     friend class WTF::NeverDestroyed<PageCache>;
 };

Modified: trunk/Source/WebKit/mac/ChangeLog (209864 => 209865)


--- trunk/Source/WebKit/mac/ChangeLog	2016-12-15 17:25:53 UTC (rev 209864)
+++ trunk/Source/WebKit/mac/ChangeLog	2016-12-15 18:37:18 UTC (rev 209865)
@@ -1,3 +1,13 @@
+2016-12-15  Andreas Kling  <[email protected]>
+
+        Always clear RenderLayer backing stores when going into page cache.
+        <https://webkit.org/b/165901>
+
+        Reviewed by Simon Fraser.
+
+        * WebView/WebView.mm:
+        (+[WebView _setCacheModel:]):
+
 2016-12-12  Alex Christensen  <[email protected]>
 
         Remove unused workaround for Silverlight

Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (209864 => 209865)


--- trunk/Source/WebKit/mac/WebView/WebView.mm	2016-12-15 17:25:53 UTC (rev 209864)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm	2016-12-15 18:37:18 UTC (rev 209865)
@@ -8520,7 +8520,6 @@
     auto& pageCache = PageCache::singleton();
     pageCache.setMaxSize(pageCacheSize);
 #if PLATFORM(IOS)
-    pageCache.setShouldClearBackingStores(true);
     nsurlCacheMemoryCapacity = std::max(nsurlCacheMemoryCapacity, [nsurlCache memoryCapacity]);
     CFURLCacheRef cfCache;
     if ([nsurlCache respondsToSelector:@selector(_CFURLCache)] && (cfCache = [nsurlCache _CFURLCache]))

Modified: trunk/Source/WebKit2/ChangeLog (209864 => 209865)


--- trunk/Source/WebKit2/ChangeLog	2016-12-15 17:25:53 UTC (rev 209864)
+++ trunk/Source/WebKit2/ChangeLog	2016-12-15 18:37:18 UTC (rev 209865)
@@ -1,3 +1,13 @@
+2016-12-15  Andreas Kling  <[email protected]>
+
+        Always clear RenderLayer backing stores when going into page cache.
+        <https://webkit.org/b/165901>
+
+        Reviewed by Simon Fraser.
+
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::WebProcess):
+
 2016-12-15  Darin Adler  <[email protected]>
 
         Remove custom binding for MediaDevices

Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (209864 => 209865)


--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp	2016-12-15 17:25:53 UTC (rev 209864)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp	2016-12-15 18:37:18 UTC (rev 209865)
@@ -203,10 +203,6 @@
     RuntimeEnabledFeatures::sharedFeatures().setWebkitIndexedDBEnabled(true);
 #endif
 
-#if PLATFORM(IOS) || PLATFORM(GTK)
-    PageCache::singleton().setShouldClearBackingStores(true);
-#endif
-
     ResourceLoadObserver::sharedObserver().setStatisticsStore(m_resourceLoadStatisticsStorage.copyRef());
     m_resourceLoadStatisticsStorage->setNotificationCallback([this] {
         if (m_statisticsChangedTimer.isActive())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to