<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[211845] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/211845">211845</a></dd>
<dt>Author</dt> <dd>rniwa@webkit.org</dd>
<dt>Date</dt> <dd>2017-02-07 16:58:02 -0800 (Tue, 07 Feb 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>WebContent process repeatedly jetsams on BuzzFeed's Another Round page
https://bugs.webkit.org/show_bug.cgi?id=167830
&lt;rdar://problem/30187368&gt;

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:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorwk2pageoverlayoverlayremovereinsertviewexpectedtxt">trunk/LayoutTests/platform/ios-simulator-wk2/pageoverlay/overlay-remove-reinsert-view-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAh">trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (211844 => 211845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2017-02-08 00:47:20 UTC (rev 211844)
+++ trunk/LayoutTests/ChangeLog        2017-02-08 00:58:02 UTC (rev 211845)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2017-02-07  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
+
+        WebContent process repeatedly jetsams on BuzzFeed's Another Round page
+        https://bugs.webkit.org/show_bug.cgi?id=167830
+        &lt;rdar://problem/30187368&gt;
+
+        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:
+
</ins><span class="cx"> 2017-02-07  Ryan Haddad  &lt;ryanhaddad@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Mark mathml/opentype/large-operators-displaystyle-dynamic.html as flaky on Sierra WK2 Release.
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatorwk2pageoverlayoverlayremovereinsertviewexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator-wk2/pageoverlay/overlay-remove-reinsert-view-expected.txt (211844 => 211845)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -2,8 +2,6 @@
</span><span class="cx"> CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (512, 0, 512, 512)
</span><span class="cx"> CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (0, 512, 512, 512)
</span><span class="cx"> CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (512, 512, 512, 512)
</span><del>-CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (0, 0, 800, 600)
-CONSOLE MESSAGE: MockPageOverlayClient::drawRect dirtyRect (0, 0, 800, 600)
</del><span class="cx"> Initial layers
</span><span class="cx"> 
</span><span class="cx"> View-relative:
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (211844 => 211845)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2017-02-06  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
+
+        WebContent process repeatedly jetsams on BuzzFeed's Another Round page
+        https://bugs.webkit.org/show_bug.cgi?id=167830
+        &lt;rdar://problem/30187368&gt;
+
+        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):
+
</ins><span class="cx"> 2017-02-07  Youenn Fablet  &lt;youennf@gmail.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [WebRTC] LibWebRTCEndpoint should not own objects that should be destroyed on the main thread
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h (211844 => 211845)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -587,7 +587,7 @@
</span><span class="cx"> 
</span><span class="cx">     FloatSize m_pixelAlignmentOffset;
</span><span class="cx"> 
</span><del>-    LayerChangeFlags m_uncommittedChanges { 0 };
</del><ins>+    LayerChangeFlags m_uncommittedChanges { CoverageRectChanged };
</ins><span class="cx">     bool m_isCommittingChanges { false };
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>