Title: [211845] trunk
Revision
211845
Author
rn...@webkit.org
Date
2017-02-07 16:58:02 -0800 (Tue, 07 Feb 2017)

Log Message

WebContent process repeatedly jetsams on BuzzFeed's Another Round page
https://bugs.webkit.org/show_bug.cgi?id=167830
<rdar://problem/30187368>

Reviewed by Simon Fraser.

Source/WebCore:

The jetsams on https://www.buzzfeed.com/anotherround were caused by WebKit creating the backing store
for every iframe's layer on the page regardless of whether they're in the viewport or not.

This was caused by GraphicsLayerCA's setVisibleAndCoverageRects not setting CoverageRectChanged on
m_uncommittedChanges on the very first call. Fixed the bug by initializing m_uncommittedChanges
to always have CoverageRectChanged so that the coverage rect would get updated properly.

Unfortunately, no new tests since somehow the backing store doesn't get created inside the test runner.

* platform/graphics/ca/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA):

LayoutTests:

Rebaseline the test now that some overlay repaints are avoided properly by updating the overlay coverage rects.

* platform/ios-simulator-wk2/pageoverlay/overlay-remove-reinsert-view-expected.txt:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (211844 => 211845)


--- trunk/LayoutTests/ChangeLog	2017-02-08 00:47:20 UTC (rev 211844)
+++ trunk/LayoutTests/ChangeLog	2017-02-08 00:58:02 UTC (rev 211845)
@@ -1,3 +1,15 @@
+2017-02-07  Ryosuke Niwa  <rn...@webkit.org>
+
+        WebContent process repeatedly jetsams on BuzzFeed's Another Round page
+        https://bugs.webkit.org/show_bug.cgi?id=167830
+        <rdar://problem/30187368>
+
+        Reviewed by Simon Fraser.
+
+        Rebaseline the test now that some overlay repaints are avoided properly by updating the overlay coverage rects.
+
+        * platform/ios-simulator-wk2/pageoverlay/overlay-remove-reinsert-view-expected.txt:
+
 2017-02-07  Ryan Haddad  <ryanhad...@apple.com>
 
         Mark mathml/opentype/large-operators-displaystyle-dynamic.html as flaky on Sierra WK2 Release.

Modified: trunk/LayoutTests/platform/ios-simulator-wk2/pageoverlay/overlay-remove-reinsert-view-expected.txt (211844 => 211845)


--- trunk/LayoutTests/platform/ios-simulator-wk2/pageoverlay/overlay-remove-reinsert-view-expected.txt	2017-02-08 00:47:20 UTC (rev 211844)
+++ trunk/LayoutTests/platform/ios-simulator-wk2/pageoverlay/overlay-remove-reinsert-view-expected.txt	2017-02-08 00:58:02 UTC (rev 211845)
@@ -2,8 +2,6 @@
 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (512, 0, 512, 512)
 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (0, 512, 512, 512)
 CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (512, 512, 512, 512)
-CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (0, 0, 800, 600)
-CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (0, 0, 800, 600)
 Initial layers
 
 View-relative:

Modified: trunk/Source/WebCore/ChangeLog (211844 => 211845)


--- trunk/Source/WebCore/ChangeLog	2017-02-08 00:47:20 UTC (rev 211844)
+++ trunk/Source/WebCore/ChangeLog	2017-02-08 00:58:02 UTC (rev 211845)
@@ -1,3 +1,23 @@
+2017-02-06  Ryosuke Niwa  <rn...@webkit.org>
+
+        WebContent process repeatedly jetsams on BuzzFeed's Another Round page
+        https://bugs.webkit.org/show_bug.cgi?id=167830
+        <rdar://problem/30187368>
+
+        Reviewed by Simon Fraser.
+
+        The jetsams on https://www.buzzfeed.com/anotherround were caused by WebKit creating the backing store
+        for every iframe's layer on the page regardless of whether they're in the viewport or not.
+
+        This was caused by GraphicsLayerCA's setVisibleAndCoverageRects not setting CoverageRectChanged on
+        m_uncommittedChanges on the very first call. Fixed the bug by initializing m_uncommittedChanges
+        to always have CoverageRectChanged so that the coverage rect would get updated properly.
+
+        Unfortunately, no new tests since somehow the backing store doesn't get created inside the test runner.
+
+        * platform/graphics/ca/GraphicsLayerCA.h:
+        (WebCore::GraphicsLayerCA):
+
 2017-02-07  Youenn Fablet  <youe...@gmail.com>
 
         [WebRTC] LibWebRTCEndpoint should not own objects that should be destroyed on the main thread

Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h (211844 => 211845)


--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h	2017-02-08 00:47:20 UTC (rev 211844)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h	2017-02-08 00:58:02 UTC (rev 211845)
@@ -587,7 +587,7 @@
 
     FloatSize m_pixelAlignmentOffset;
 
-    LayerChangeFlags m_uncommittedChanges { 0 };
+    LayerChangeFlags m_uncommittedChanges { CoverageRectChanged };
     bool m_isCommittingChanges { false };
 };
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to