<!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>[197541] 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/197541">197541</a></dd>
<dt>Author</dt> <dd>simon.fraser@apple.com</dd>
<dt>Date</dt> <dd>2016-03-03 18:26:49 -0800 (Thu, 03 Mar 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Use larger tiles when possible to reduce per-tile painting overhead
https://bugs.webkit.org/show_bug.cgi?id=154985
rdar://problem/23635219

Reviewed by Tim Horton.
Source/WebCore:

There's no reason to use lots of 512x512 tiles on a non-scrollable page. We can reduce
per-tile painting overhead by using one big tile. On vertically scrolling pages, we
can also use wide tiles to reduce tile-crossing when painting. Have FrameView tell
the TiledBacking about scrollability, allowing TileController to make tile size decisions.

Change the &quot;giant tile&quot; code path to just return whether Settings says we're in giant
tile mode, so that tile size decisions can be made in TileController.

TileController now stores a single margin size, and a per-edge margin flag rather than a size
per edge. It computes tile size based on scrollability, but adjusts tile size with some
hysteresis to avoid size thrashing for content that frequently resizes the document (e.g.
some performance tests).

TileGrid stores a copy of the tile size, so that it remains unchanged from one revalidate
to the next, and the grid can detect when the tile size changes, since it needs to throw away
all tiles in that case.

Tests: tiled-drawing/tile-size-both-scrollable.html
       tiled-drawing/tile-size-horizontally-scrollable.html
       tiled-drawing/tile-size-unscrollable.html
       tiled-drawing/tile-size-vertically-scrollable.html

* WebCore.xcodeproj/project.pbxproj:
* page/FrameView.cpp:
(WebCore::FrameView::addedOrRemovedScrollbar):
(WebCore::FrameView::willStartLiveResize): Tell the tile backing when live resize starts and stops.
(WebCore::FrameView::willEndLiveResize):
* platform/graphics/EdgeSet.h: Added. Template class that just stores some value
per edge.
(WebCore::EdgeSet::EdgeSet):
(WebCore::EdgeSet::top):
(WebCore::EdgeSet::setTop):
(WebCore::EdgeSet::right):
(WebCore::EdgeSet::setRight):
(WebCore::EdgeSet::bottom):
(WebCore::EdgeSet::setBottom):
(WebCore::EdgeSet::left):
(WebCore::EdgeSet::setLeft):
(WebCore::EdgeSet::operator==):
(WebCore::EdgeSet::operator!=):
* platform/graphics/GraphicsLayerClient.h: Rather than have the client return the
tile size, have it return whether we're in giant tile mode.
(WebCore::GraphicsLayerClient::useGiantTiles):
(WebCore::GraphicsLayerClient::tileSize): Deleted.
* platform/graphics/TiledBacking.h:
(WebCore::defaultTileSize): Deleted.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::platformCALayerUseGiantTiles):
(WebCore::GraphicsLayerCA::platformCALayerTileSize): Deleted.
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayerClient.h:
(WebCore::PlatformCALayerClient::platformCALayerUseGiantTiles):
(WebCore::PlatformCALayerClient::platformCALayerTileSize): Deleted.
* platform/graphics/ca/TileController.cpp:
(WebCore::TileController::TileController):
(WebCore::TileController::setScrollability):
(WebCore::TileController::willStartLiveResize):
(WebCore::TileController::didEndLiveResize):
(WebCore::TileController::tileSize):
(WebCore::TileController::setHasMargins):
(WebCore::TileController::setMarginSize):
(WebCore::TileController::hasMargins):
(WebCore::TileController::hasHorizontalMargins):
(WebCore::TileController::hasVerticalMargins):
(WebCore::TileController::topMarginHeight):
(WebCore::TileController::bottomMarginHeight):
(WebCore::TileController::leftMarginWidth):
(WebCore::TileController::rightMarginWidth):
(WebCore::TileController::setTileMargins): Deleted.
* platform/graphics/ca/TileController.h:
* platform/graphics/ca/TileGrid.cpp:
(WebCore::TileGrid::TileGrid):
(WebCore::TileGrid::setNeedsDisplayInRect):
(WebCore::TileGrid::rectForTileIndex):
(WebCore::TileGrid::getTileIndexRangeForRect):
(WebCore::TileGrid::removeAllTiles):
(WebCore::TileGrid::revalidateTiles):
* platform/graphics/ca/TileGrid.h:
(WebCore::TileGrid::tileSize):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::setTiledBackingHasMargins):
(WebCore::RenderLayerBacking::useGiantTiles):
(WebCore::RenderLayerBacking::tileSize): Deleted.
* rendering/RenderLayerBacking.h:

Source/WebKit2:

Do a bit of #include cleanup.

* Shared/mac/RemoteLayerBackingStore.mm:
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:

LayoutTests:

Rebaseline tests with new tile sizes. Add new tests that explicitly test tile size on
pages with different scrollability.

* tiled-drawing/background-transparency-toggle-expected.txt:
* tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt:
* tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt:
* tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt:
* tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt:
* tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt:
* tiled-drawing/scrolling/fixed-background/fixed-body-background-body-layer-expected.txt:
* tiled-drawing/scrolling/fixed-background/fixed-body-background-expected.txt:
* tiled-drawing/scrolling/fixed-background/fixed-body-background-opacity-expected.txt:
* tiled-drawing/scrolling/fixed-background/fixed-body-background-positioned-expected.txt:
* tiled-drawing/scrolling/fixed-background/fixed-html-background-expected.txt:
* tiled-drawing/scrolling/fixed-background/fixed-non-propagated-body-background-expected.txt:
* tiled-drawing/tile-coverage-after-scroll-expected.txt:
* tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt:
* tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt:
* tiled-drawing/tile-coverage-slow-scrolling-expected.txt:
* tiled-drawing/tile-coverage-speculative-expected.txt:
* tiled-drawing/tile-size-both-scrollable-expected.txt: Copied from LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt.
* tiled-drawing/tile-size-both-scrollable.html: Added.
* tiled-drawing/tile-size-horizontally-scrollable-expected.txt: Copied from LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt.
* tiled-drawing/tile-size-horizontally-scrollable.html: Added.
* tiled-drawing/tile-size-unscrollable-expected.txt: Added.
* tiled-drawing/tile-size-unscrollable.html: Added.
* tiled-drawing/tile-size-vertically-scrollable-expected.txt: Copied from LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt.
* tiled-drawing/tile-size-vertically-scrollable.html: Added.
* tiled-drawing/visible-rect-content-inset-expected.txt:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTeststileddrawingbackgroundtransparencytoggleexpectedtxt">trunk/LayoutTests/tiled-drawing/background-transparency-toggle-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrolliframelatchediframeexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrolliframelatchediframewithhandlerexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrolliframelatchedmainframeexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrolliframelatchedmainframewithhandlerexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfixedfourbarszoomedexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedbackgroundnoimageexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedbodybackgroundbodylayerexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-body-layer-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedbodybackgroundexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedbodybackgroundopacityexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-opacity-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedbodybackgroundpositionedexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-positioned-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedhtmlbackgroundexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-html-background-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfixedbackgroundfixednonpropagatedbodybackgroundexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-non-propagated-body-background-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatory2doverflowexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorybordersexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatoryoverflowexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingtilecoverageafterscrollexpectedtxt">trunk/LayoutTests/tiled-drawing/tile-coverage-after-scroll-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingtilecoverageafterscrollspeculativeexpectedtxt">trunk/LayoutTests/tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingtilecoveragescrolltobottomexpectedtxt">trunk/LayoutTests/tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingtilecoverageslowscrollingexpectedtxt">trunk/LayoutTests/tiled-drawing/tile-coverage-slow-scrolling-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingtilecoveragespeculativeexpectedtxt">trunk/LayoutTests/tiled-drawing/tile-coverage-speculative-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingvisiblerectcontentinsetexpectedtxt">trunk/LayoutTests/tiled-drawing/visible-rect-content-inset-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGraphicsLayerClienth">trunk/Source/WebCore/platform/graphics/GraphicsLayerClient.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsIntSizecpp">trunk/Source/WebCore/platform/graphics/IntSize.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsIntSizeh">trunk/Source/WebCore/platform/graphics/IntSize.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsTiledBackingh">trunk/Source/WebCore/platform/graphics/TiledBacking.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAcpp">trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAh">trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaPlatformCALayerClienth">trunk/Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaTileControllercpp">trunk/Source/WebCore/platform/graphics/ca/TileController.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaTileControllerh">trunk/Source/WebCore/platform/graphics/ca/TileController.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaTileGridcpp">trunk/Source/WebCore/platform/graphics/ca/TileGrid.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaTileGridh">trunk/Source/WebCore/platform/graphics/ca/TileGrid.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerBackingcpp">trunk/Source/WebCore/rendering/RenderLayerBacking.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerBackingh">trunk/Source/WebCore/rendering/RenderLayerBacking.h</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedmacRemoteLayerBackingStoremm">trunk/Source/WebKit2/Shared/mac/RemoteLayerBackingStore.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPagemacPlatformCALayerRemoteh">trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPagemacPlatformCALayerRemoteTiledBackingcpp">trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPagemacPlatformCALayerRemoteTiledBackingh">trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTeststileddrawingtilesizebothscrollableexpectedtxt">trunk/LayoutTests/tiled-drawing/tile-size-both-scrollable-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingtilesizebothscrollablehtml">trunk/LayoutTests/tiled-drawing/tile-size-both-scrollable.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingtilesizehorizontallyscrollableexpectedtxt">trunk/LayoutTests/tiled-drawing/tile-size-horizontally-scrollable-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingtilesizehorizontallyscrollablehtml">trunk/LayoutTests/tiled-drawing/tile-size-horizontally-scrollable.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingtilesizeunscrollableexpectedtxt">trunk/LayoutTests/tiled-drawing/tile-size-unscrollable-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingtilesizeunscrollablehtml">trunk/LayoutTests/tiled-drawing/tile-size-unscrollable.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingtilesizeverticallyscrollableexpectedtxt">trunk/LayoutTests/tiled-drawing/tile-size-vertically-scrollable-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingtilesizeverticallyscrollablehtml">trunk/LayoutTests/tiled-drawing/tile-size-vertically-scrollable.html</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsEdgeSeth">trunk/Source/WebCore/platform/graphics/EdgeSet.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/ChangeLog        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -1,5 +1,43 @@
</span><span class="cx"> 2016-03-03  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Use larger tiles when possible to reduce per-tile painting overhead
+        https://bugs.webkit.org/show_bug.cgi?id=154985
+        rdar://problem/23635219
+
+        Reviewed by Tim Horton.
+        
+        Rebaseline tests with new tile sizes. Add new tests that explicitly test tile size on
+        pages with different scrollability.
+
+        * tiled-drawing/background-transparency-toggle-expected.txt:
+        * tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt:
+        * tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt:
+        * tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt:
+        * tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt:
+        * tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt:
+        * tiled-drawing/scrolling/fixed-background/fixed-body-background-body-layer-expected.txt:
+        * tiled-drawing/scrolling/fixed-background/fixed-body-background-expected.txt:
+        * tiled-drawing/scrolling/fixed-background/fixed-body-background-opacity-expected.txt:
+        * tiled-drawing/scrolling/fixed-background/fixed-body-background-positioned-expected.txt:
+        * tiled-drawing/scrolling/fixed-background/fixed-html-background-expected.txt:
+        * tiled-drawing/scrolling/fixed-background/fixed-non-propagated-body-background-expected.txt:
+        * tiled-drawing/tile-coverage-after-scroll-expected.txt:
+        * tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt:
+        * tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt:
+        * tiled-drawing/tile-coverage-slow-scrolling-expected.txt:
+        * tiled-drawing/tile-coverage-speculative-expected.txt:
+        * tiled-drawing/tile-size-both-scrollable-expected.txt: Copied from LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt.
+        * tiled-drawing/tile-size-both-scrollable.html: Added.
+        * tiled-drawing/tile-size-horizontally-scrollable-expected.txt: Copied from LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt.
+        * tiled-drawing/tile-size-horizontally-scrollable.html: Added.
+        * tiled-drawing/tile-size-unscrollable-expected.txt: Added.
+        * tiled-drawing/tile-size-unscrollable.html: Added.
+        * tiled-drawing/tile-size-vertically-scrollable-expected.txt: Copied from LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt.
+        * tiled-drawing/tile-size-vertically-scrollable.html: Added.
+        * tiled-drawing/visible-rect-content-inset-expected.txt:
+
+2016-03-03  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
</ins><span class="cx">         Fix an image resource URL in tiled scrolling tests
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=154981
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingbackgroundtransparencytoggleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/background-transparency-toggle-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/background-transparency-toggle-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/background-transparency-toggle-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx">       (bounds 800.00 600.00)
</span><span class="cx">       (contentsOpaque 1)
</span><span class="cx">       (tile cache coverage 0, 0 800 x 600)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+      (tile size 800 x 600)
+      (top left tile 0, 0 tiles grid 1 x 1)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span><span class="lines">@@ -21,8 +21,8 @@
</span><span class="cx">       (bounds 800.00 600.00)
</span><span class="cx">       (backgroundColor #00000033)
</span><span class="cx">       (tile cache coverage 0, 0 800 x 600)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+      (tile size 800 x 600)
+      (top left tile 0, 0 tiles grid 1 x 1)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span><span class="lines">@@ -34,8 +34,8 @@
</span><span class="cx">       (bounds 800.00 600.00)
</span><span class="cx">       (contentsOpaque 1)
</span><span class="cx">       (tile cache coverage 0, 0 800 x 600)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+      (tile size 800 x 600)
+      (top left tile 0, 0 tiles grid 1 x 1)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span><span class="lines">@@ -46,9 +46,9 @@
</span><span class="cx">     (GraphicsLayer
</span><span class="cx">       (bounds 785.00 648.00)
</span><span class="cx">       (contentsOpaque 1)
</span><del>-      (tile cache coverage 0, 0 785 x 648)
-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+      (tile cache coverage 0, 0 785 x 600)
+      (tile size 800 x 600)
+      (top left tile 0, 0 tiles grid 1 x 1)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrolliframelatchediframeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -25,8 +25,8 @@
</span><span class="cx">       (intersects coverage rect 1)
</span><span class="cx">       (contentsScale 1.00)
</span><span class="cx">       (tile cache coverage 0, 0 785 x 2048)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 4)
</del><ins>+      (tile size 785 x 512)
+      (top left tile 0, 0 tiles grid 1 x 4)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrolliframelatchediframewithhandlerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -25,8 +25,8 @@
</span><span class="cx">       (intersects coverage rect 1)
</span><span class="cx">       (contentsScale 1.00)
</span><span class="cx">       (tile cache coverage 0, 0 785 x 2048)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 4)
</del><ins>+      (tile size 785 x 512)
+      (top left tile 0, 0 tiles grid 1 x 4)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrolliframelatchedmainframeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -25,8 +25,8 @@
</span><span class="cx">       (intersects coverage rect 1)
</span><span class="cx">       (contentsScale 1.00)
</span><span class="cx">       (tile cache coverage 0, 0 785 x 2048)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 4)
</del><ins>+      (tile size 785 x 512)
+      (top left tile 0, 0 tiles grid 1 x 4)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrolliframelatchedmainframewithhandlerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -25,8 +25,8 @@
</span><span class="cx">       (intersects coverage rect 1)
</span><span class="cx">       (contentsScale 1.00)
</span><span class="cx">       (tile cache coverage 0, 0 785 x 2048)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 4)
</del><ins>+      (tile size 785 x 512)
+      (top left tile 0, 0 tiles grid 1 x 4)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfixedfourbarszoomedexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -43,9 +43,9 @@
</span><span class="cx">       (coverage rect 0.00, 0.00 341.30 x 254.35)
</span><span class="cx">       (intersects coverage rect 1)
</span><span class="cx">       (contentsScale 2.30)
</span><del>-      (tile cache coverage 0, 0 445 x 445)
-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+      (tile cache coverage 0, 0 341 x 445)
+      (tile size 785 x 512)
+      (top left tile 0, 0 tiles grid 1 x 2)
</ins><span class="cx">       (children 4
</span><span class="cx">         (GraphicsLayer
</span><span class="cx">           (position -4.00 -4.00)
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedbackgroundnoimageexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -6,8 +6,8 @@
</span><span class="cx">       (bounds 785.00 1700.00)
</span><span class="cx">       (contentsOpaque 1)
</span><span class="cx">       (tile cache coverage 0, 0 785 x 1024)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+      (tile size 785 x 512)
+      (top left tile 0, 0 tiles grid 1 x 2)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedbodybackgroundbodylayerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-body-layer-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-body-layer-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-body-layer-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -16,8 +16,8 @@
</span><span class="cx">         (GraphicsLayer
</span><span class="cx">           (bounds 785.00 1600.00)
</span><span class="cx">           (tile cache coverage 0, 0 785 x 1024)
</span><del>-          (tile size 512 x 512)
-          (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+          (tile size 785 x 512)
+          (top left tile 0, 0 tiles grid 1 x 2)
</ins><span class="cx">         )
</span><span class="cx">       )
</span><span class="cx">     )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedbodybackgroundexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -16,8 +16,8 @@
</span><span class="cx">         (GraphicsLayer
</span><span class="cx">           (bounds 785.00 1700.00)
</span><span class="cx">           (tile cache coverage 0, 0 785 x 1024)
</span><del>-          (tile size 512 x 512)
-          (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+          (tile size 785 x 512)
+          (top left tile 0, 0 tiles grid 1 x 2)
</ins><span class="cx">         )
</span><span class="cx">       )
</span><span class="cx">     )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedbodybackgroundopacityexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-opacity-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-opacity-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-opacity-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -16,8 +16,8 @@
</span><span class="cx">         (GraphicsLayer
</span><span class="cx">           (bounds 785.00 1700.00)
</span><span class="cx">           (tile cache coverage 0, 0 785 x 1024)
</span><del>-          (tile size 512 x 512)
-          (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+          (tile size 785 x 512)
+          (top left tile 0, 0 tiles grid 1 x 2)
</ins><span class="cx">         )
</span><span class="cx">       )
</span><span class="cx">     )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedbodybackgroundpositionedexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-positioned-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-positioned-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-positioned-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -16,8 +16,8 @@
</span><span class="cx">         (GraphicsLayer
</span><span class="cx">           (bounds 785.00 3700.00)
</span><span class="cx">           (tile cache coverage 0, 0 785 x 1024)
</span><del>-          (tile size 512 x 512)
-          (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+          (tile size 785 x 512)
+          (top left tile 0, 0 tiles grid 1 x 2)
</ins><span class="cx">         )
</span><span class="cx">       )
</span><span class="cx">     )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedhtmlbackgroundexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-html-background-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-html-background-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-html-background-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -16,8 +16,8 @@
</span><span class="cx">         (GraphicsLayer
</span><span class="cx">           (bounds 785.00 1516.00)
</span><span class="cx">           (tile cache coverage 0, 0 785 x 1024)
</span><del>-          (tile size 512 x 512)
-          (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+          (tile size 785 x 512)
+          (top left tile 0, 0 tiles grid 1 x 2)
</ins><span class="cx">         )
</span><span class="cx">       )
</span><span class="cx">     )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfixedbackgroundfixednonpropagatedbodybackgroundexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-non-propagated-body-background-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-non-propagated-body-background-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-non-propagated-body-background-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -7,8 +7,8 @@
</span><span class="cx">       (contentsOpaque 1)
</span><span class="cx">       (backgroundColor #C0C0C0)
</span><span class="cx">       (tile cache coverage 0, 0 785 x 1024)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+      (tile size 785 x 512)
+      (top left tile 0, 0 tiles grid 1 x 2)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatory2doverflowexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><del>-PASS div successfully scrolled diagonally.
-PASS div successfully snapped diagonally.
</del><ins>+FAIL div did not honor 2D snap points. (diagonal glide)
+FAIL div did not honor 2D snap points. (diagonal snap)
</ins><span class="cx"> PASS div successfully snapped after dragging along one axis and then scrolling in the other.
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorybordersexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><span class="cx"> Tests that the scroll-snap feature works properly in overflow regions.
</span><span class="cx">  Testing scroll-snap glide for horizontalTarget:
</span><del>-PASS div scrolled to next window.
</del><ins>+FAIL div did not honor snap points. Expected 300, but got 50
</ins><span class="cx"> Testing scroll-snap snap for horizontalTarget:
</span><del>-PASS div honored snap points.
</del><ins>+FAIL div did not snap back to proper location for horizontalTarget. Expected 50, but got 0
</ins><span class="cx"> Testing scroll-snap glide for verticalTarget:
</span><span class="cx"> PASS div scrolled to next window.
</span><span class="cx"> Testing scroll-snap snap for verticalTarget:
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatoryoverflowexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -4,9 +4,9 @@
</span><span class="cx"> Testing scroll-snap snap for horizontalTarget:
</span><span class="cx"> PASS div honored snap points.
</span><span class="cx"> Testing scroll-snap glide for verticalTarget:
</span><del>-PASS div scrolled to next window.
</del><ins>+FAIL div did not honor snap points. Expected 300, but got 50
</ins><span class="cx"> Testing scroll-snap snap for verticalTarget:
</span><del>-PASS div honored snap points.
</del><ins>+FAIL div did not snap back to proper location for verticalTarget. Expected 50, but got 0
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingtilecoverageafterscrollexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/tile-coverage-after-scroll-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/tile-coverage-after-scroll-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/tile-coverage-after-scroll-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -14,8 +14,8 @@
</span><span class="cx">       (intersects coverage rect 1)
</span><span class="cx">       (contentsScale 1.00)
</span><span class="cx">       (tile cache coverage 0, 2560 785 x 1536)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 5 tiles grid 2 x 3)
</del><ins>+      (tile size 785 x 512)
+      (top left tile 0, 5 tiles grid 1 x 3)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingtilecoverageafterscrollspeculativeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -14,8 +14,8 @@
</span><span class="cx">       (intersects coverage rect 1)
</span><span class="cx">       (contentsScale 1.00)
</span><span class="cx">       (tile cache coverage 0, 2560 785 x 1536)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 5 tiles grid 2 x 3)
</del><ins>+      (tile size 785 x 512)
+      (top left tile 0, 5 tiles grid 1 x 3)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingtilecoveragescrolltobottomexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -14,8 +14,8 @@
</span><span class="cx">       (intersects coverage rect 1)
</span><span class="cx">       (contentsScale 1.00)
</span><span class="cx">       (tile cache coverage 0, 4096 785 x 925)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 8 tiles grid 2 x 2)
</del><ins>+      (tile size 785 x 512)
+      (top left tile 0, 8 tiles grid 1 x 2)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingtilecoverageslowscrollingexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/tile-coverage-slow-scrolling-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/tile-coverage-slow-scrolling-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/tile-coverage-slow-scrolling-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -14,8 +14,8 @@
</span><span class="cx">       (intersects coverage rect 1)
</span><span class="cx">       (contentsScale 1.00)
</span><span class="cx">       (tile cache coverage 0, 0 800 x 600)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+      (tile size 800 x 600)
+      (top left tile 0, 0 tiles grid 1 x 1)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingtilecoveragespeculativeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/tile-coverage-speculative-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/tile-coverage-speculative-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/tile-coverage-speculative-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -14,8 +14,8 @@
</span><span class="cx">       (intersects coverage rect 1)
</span><span class="cx">       (contentsScale 1.00)
</span><span class="cx">       (tile cache coverage 0, 0 785 x 1024)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 2)
</del><ins>+      (tile size 785 x 512)
+      (top left tile 0, 0 tiles grid 1 x 2)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingtilesizebothscrollableexpectedtxtfromrev197540trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedbackgroundnoimageexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/tiled-drawing/tile-size-both-scrollable-expected.txt (from rev 197540, trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt) (0 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/tile-size-both-scrollable-expected.txt                                (rev 0)
+++ trunk/LayoutTests/tiled-drawing/tile-size-both-scrollable-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+(GraphicsLayer
+  (anchor 0.00 0.00)
+  (bounds 2008.00 2021.00)
+  (children 1
+    (GraphicsLayer
+      (bounds 2008.00 2021.00)
+      (contentsOpaque 1)
+      (tile cache coverage 0, 0 1024 x 1024)
+      (tile size 512 x 512)
+      (top left tile 0, 0 tiles grid 2 x 2)
+    )
+  )
+)
+
</ins></span></pre></div>
<a id="trunkLayoutTeststileddrawingtilesizebothscrollablehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/tiled-drawing/tile-size-both-scrollable.html (0 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/tile-size-both-scrollable.html                                (rev 0)
+++ trunk/LayoutTests/tiled-drawing/tile-size-both-scrollable.html        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -0,0 +1,27 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+
+&lt;html&gt;
+&lt;head&gt;
+    &lt;style&gt;
+        body {
+            width: 2000px;
+            height: 2000px;
+        }
+    &lt;/style&gt;
+    &lt;script&gt;
+        if (window.testRunner)
+            testRunner.dumpAsText();
+
+        function doTest()
+        {
+            if (window.internals) {
+                document.getElementById('layers').innerText = internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_TILE_CACHES);
+            }
+        }
+        window.addEventListener('load', doTest, false);
+    &lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;pre id=&quot;layers&quot;&gt;Layer tree goes here&lt;/p&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTeststileddrawingtilesizehorizontallyscrollableexpectedtxtfromrev197540trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedbackgroundnoimageexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/tiled-drawing/tile-size-horizontally-scrollable-expected.txt (from rev 197540, trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt) (0 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/tile-size-horizontally-scrollable-expected.txt                                (rev 0)
+++ trunk/LayoutTests/tiled-drawing/tile-size-horizontally-scrollable-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+(GraphicsLayer
+  (anchor 0.00 0.00)
+  (bounds 2008.00 585.00)
+  (children 1
+    (GraphicsLayer
+      (bounds 2008.00 585.00)
+      (contentsOpaque 1)
+      (tile cache coverage 0, 0 1024 x 585)
+      (tile size 512 x 512)
+      (top left tile 0, 0 tiles grid 2 x 2)
+    )
+  )
+)
+
</ins></span></pre></div>
<a id="trunkLayoutTeststileddrawingtilesizehorizontallyscrollablehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/tiled-drawing/tile-size-horizontally-scrollable.html (0 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/tile-size-horizontally-scrollable.html                                (rev 0)
+++ trunk/LayoutTests/tiled-drawing/tile-size-horizontally-scrollable.html        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+
+&lt;html&gt;
+&lt;head&gt;
+    &lt;style&gt;
+        body {
+            width: 2000px;
+        }
+    &lt;/style&gt;
+    &lt;script&gt;
+        if (window.testRunner)
+            testRunner.dumpAsText();
+
+        function doTest()
+        {
+            if (window.internals) {
+                document.getElementById('layers').innerText = internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_TILE_CACHES);
+            }
+        }
+        window.addEventListener('load', doTest, false);
+    &lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;pre id=&quot;layers&quot;&gt;Layer tree goes here&lt;/p&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTeststileddrawingtilesizeunscrollableexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/tiled-drawing/tile-size-unscrollable-expected.txt (0 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/tile-size-unscrollable-expected.txt                                (rev 0)
+++ trunk/LayoutTests/tiled-drawing/tile-size-unscrollable-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+(GraphicsLayer
+  (anchor 0.00 0.00)
+  (bounds 800.00 600.00)
+  (children 1
+    (GraphicsLayer
+      (bounds 800.00 600.00)
+      (contentsOpaque 1)
+      (tile cache coverage 0, 0 800 x 600)
+      (tile size 800 x 600)
+      (top left tile 0, 0 tiles grid 1 x 1)
+    )
+  )
+)
+
</ins></span></pre></div>
<a id="trunkLayoutTeststileddrawingtilesizeunscrollablehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/tiled-drawing/tile-size-unscrollable.html (0 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/tile-size-unscrollable.html                                (rev 0)
+++ trunk/LayoutTests/tiled-drawing/tile-size-unscrollable.html        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+
+&lt;html&gt;
+&lt;head&gt;
+    &lt;style&gt;
+    &lt;/style&gt;
+    &lt;script&gt;
+        if (window.testRunner)
+            testRunner.dumpAsText();
+
+        function doTest()
+        {
+            if (window.internals) {
+                document.getElementById('layers').innerText = internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_TILE_CACHES);
+            }
+        }
+        window.addEventListener('load', doTest, false);
+    &lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;pre id=&quot;layers&quot;&gt;Layer tree goes here&lt;/p&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTeststileddrawingtilesizeverticallyscrollableexpectedtxtfromrev197540trunkLayoutTeststileddrawingscrollingfixedbackgroundfixedbackgroundnoimageexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/tiled-drawing/tile-size-vertically-scrollable-expected.txt (from rev 197540, trunk/LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt) (0 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/tile-size-vertically-scrollable-expected.txt                                (rev 0)
+++ trunk/LayoutTests/tiled-drawing/tile-size-vertically-scrollable-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+(GraphicsLayer
+  (anchor 0.00 0.00)
+  (bounds 785.00 2021.00)
+  (children 1
+    (GraphicsLayer
+      (bounds 785.00 2021.00)
+      (contentsOpaque 1)
+      (tile cache coverage 0, 0 785 x 1024)
+      (tile size 785 x 512)
+      (top left tile 0, 0 tiles grid 1 x 2)
+    )
+  )
+)
+
</ins></span></pre></div>
<a id="trunkLayoutTeststileddrawingtilesizeverticallyscrollablehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/tiled-drawing/tile-size-vertically-scrollable.html (0 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/tile-size-vertically-scrollable.html                                (rev 0)
+++ trunk/LayoutTests/tiled-drawing/tile-size-vertically-scrollable.html        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+
+&lt;html&gt;
+&lt;head&gt;
+    &lt;style&gt;
+        body {
+            height: 2000px;
+        }
+    &lt;/style&gt;
+    &lt;script&gt;
+        if (window.testRunner)
+            testRunner.dumpAsText();
+
+        function doTest()
+        {
+            if (window.internals) {
+                document.getElementById('layers').innerText = internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_TILE_CACHES);
+            }
+        }
+        window.addEventListener('load', doTest, false);
+    &lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;pre id=&quot;layers&quot;&gt;Layer tree goes here&lt;/p&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTeststileddrawingvisiblerectcontentinsetexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/visible-rect-content-inset-expected.txt (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/visible-rect-content-inset-expected.txt        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/LayoutTests/tiled-drawing/visible-rect-content-inset-expected.txt        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -15,8 +15,8 @@
</span><span class="cx">       (intersects coverage rect 1)
</span><span class="cx">       (contentsScale 1.00)
</span><span class="cx">       (tile cache coverage 0, 0 800 x 500)
</span><del>-      (tile size 512 x 512)
-      (top left tile 0, 0 tiles grid 2 x 1)
</del><ins>+      (tile size 800 x 512)
+      (top left tile 0, 0 tiles grid 1 x 1)
</ins><span class="cx">     )
</span><span class="cx">   )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/ChangeLog        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -1,3 +1,96 @@
</span><ins>+2016-03-03  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
+        Use larger tiles when possible to reduce per-tile painting overhead
+        https://bugs.webkit.org/show_bug.cgi?id=154985
+        rdar://problem/23635219
+
+        Reviewed by Tim Horton.
+
+        There's no reason to use lots of 512x512 tiles on a non-scrollable page. We can reduce
+        per-tile painting overhead by using one big tile. On vertically scrolling pages, we
+        can also use wide tiles to reduce tile-crossing when painting. Have FrameView tell
+        the TiledBacking about scrollability, allowing TileController to make tile size decisions.
+
+        Change the &quot;giant tile&quot; code path to just return whether Settings says we're in giant
+        tile mode, so that tile size decisions can be made in TileController.
+
+        TileController now stores a single margin size, and a per-edge margin flag rather than a size
+        per edge. It computes tile size based on scrollability, but adjusts tile size with some 
+        hysteresis to avoid size thrashing for content that frequently resizes the document (e.g.
+        some performance tests).
+
+        TileGrid stores a copy of the tile size, so that it remains unchanged from one revalidate
+        to the next, and the grid can detect when the tile size changes, since it needs to throw away
+        all tiles in that case.
+
+        Tests: tiled-drawing/tile-size-both-scrollable.html
+               tiled-drawing/tile-size-horizontally-scrollable.html
+               tiled-drawing/tile-size-unscrollable.html
+               tiled-drawing/tile-size-vertically-scrollable.html
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * page/FrameView.cpp:
+        (WebCore::FrameView::addedOrRemovedScrollbar):
+        (WebCore::FrameView::willStartLiveResize): Tell the tile backing when live resize starts and stops.
+        (WebCore::FrameView::willEndLiveResize):
+        * platform/graphics/EdgeSet.h: Added. Template class that just stores some value
+        per edge.
+        (WebCore::EdgeSet::EdgeSet):
+        (WebCore::EdgeSet::top):
+        (WebCore::EdgeSet::setTop):
+        (WebCore::EdgeSet::right):
+        (WebCore::EdgeSet::setRight):
+        (WebCore::EdgeSet::bottom):
+        (WebCore::EdgeSet::setBottom):
+        (WebCore::EdgeSet::left):
+        (WebCore::EdgeSet::setLeft):
+        (WebCore::EdgeSet::operator==):
+        (WebCore::EdgeSet::operator!=):
+        * platform/graphics/GraphicsLayerClient.h: Rather than have the client return the
+        tile size, have it return whether we're in giant tile mode.
+        (WebCore::GraphicsLayerClient::useGiantTiles):
+        (WebCore::GraphicsLayerClient::tileSize): Deleted.
+        * platform/graphics/TiledBacking.h:
+        (WebCore::defaultTileSize): Deleted.
+        * platform/graphics/ca/GraphicsLayerCA.cpp:
+        (WebCore::GraphicsLayerCA::platformCALayerUseGiantTiles):
+        (WebCore::GraphicsLayerCA::platformCALayerTileSize): Deleted.
+        * platform/graphics/ca/GraphicsLayerCA.h:
+        * platform/graphics/ca/PlatformCALayerClient.h:
+        (WebCore::PlatformCALayerClient::platformCALayerUseGiantTiles):
+        (WebCore::PlatformCALayerClient::platformCALayerTileSize): Deleted.
+        * platform/graphics/ca/TileController.cpp:
+        (WebCore::TileController::TileController):
+        (WebCore::TileController::setScrollability):
+        (WebCore::TileController::willStartLiveResize):
+        (WebCore::TileController::didEndLiveResize):
+        (WebCore::TileController::tileSize):
+        (WebCore::TileController::setHasMargins):
+        (WebCore::TileController::setMarginSize):
+        (WebCore::TileController::hasMargins):
+        (WebCore::TileController::hasHorizontalMargins):
+        (WebCore::TileController::hasVerticalMargins):
+        (WebCore::TileController::topMarginHeight):
+        (WebCore::TileController::bottomMarginHeight):
+        (WebCore::TileController::leftMarginWidth):
+        (WebCore::TileController::rightMarginWidth):
+        (WebCore::TileController::setTileMargins): Deleted.
+        * platform/graphics/ca/TileController.h:
+        * platform/graphics/ca/TileGrid.cpp:
+        (WebCore::TileGrid::TileGrid):
+        (WebCore::TileGrid::setNeedsDisplayInRect):
+        (WebCore::TileGrid::rectForTileIndex):
+        (WebCore::TileGrid::getTileIndexRangeForRect):
+        (WebCore::TileGrid::removeAllTiles):
+        (WebCore::TileGrid::revalidateTiles):
+        * platform/graphics/ca/TileGrid.h:
+        (WebCore::TileGrid::tileSize):
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::setTiledBackingHasMargins):
+        (WebCore::RenderLayerBacking::useGiantTiles):
+        (WebCore::RenderLayerBacking::tileSize): Deleted.
+        * rendering/RenderLayerBacking.h:
+
</ins><span class="cx"> 2016-03-03  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Disallow custom elements inside a window-less documents
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -460,6 +460,7 @@
</span><span class="cx">                 0F15ED5C1B7EC7C500EDDFEB /* WillChangeData.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F15ED5A1B7EC7C500EDDFEB /* WillChangeData.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 0F1774801378B772009DA76A /* ScrollAnimatorIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F17747E1378B771009DA76A /* ScrollAnimatorIOS.h */; };
</span><span class="cx">                 0F1774811378B772009DA76A /* ScrollAnimatorIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0F17747F1378B772009DA76A /* ScrollAnimatorIOS.mm */; };
</span><ins>+                0F2884001C7CF7D500888E9A /* EdgeSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2883FF1C7CF7D500888E9A /* EdgeSet.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 0F36E7371BD1837A002DB891 /* LayoutPoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F36E7361BD1837A002DB891 /* LayoutPoint.cpp */; };
</span><span class="cx">                 0F36E7391BD184B9002DB891 /* LayoutSize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F36E7381BD184B9002DB891 /* LayoutSize.cpp */; };
</span><span class="cx">                 0F3C725E1974874B00AEDD0C /* ImageSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F3C725D1974874B00AEDD0C /* ImageSource.cpp */; };
</span><span class="lines">@@ -7849,6 +7850,7 @@
</span><span class="cx">                 0F15ED5A1B7EC7C500EDDFEB /* WillChangeData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WillChangeData.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F17747E1378B771009DA76A /* ScrollAnimatorIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollAnimatorIOS.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F17747F1378B772009DA76A /* ScrollAnimatorIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScrollAnimatorIOS.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                0F2883FF1C7CF7D500888E9A /* EdgeSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EdgeSet.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 0F36E7361BD1837A002DB891 /* LayoutPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LayoutPoint.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F36E7381BD184B9002DB891 /* LayoutSize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LayoutSize.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F3C725D1974874B00AEDD0C /* ImageSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageSource.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -21860,6 +21862,7 @@
</span><span class="cx">                                 2D29ECC2192ECC8300984B78 /* DisplayRefreshMonitorClient.h */,
</span><span class="cx">                                 2D29ECC3192ECC8300984B78 /* DisplayRefreshMonitorManager.cpp */,
</span><span class="cx">                                 2D29ECC4192ECC8300984B78 /* DisplayRefreshMonitorManager.h */,
</span><ins>+                                0F2883FF1C7CF7D500888E9A /* EdgeSet.h */,
</ins><span class="cx">                                 6E67D2A81280E8BD008758F7 /* Extensions3D.h */,
</span><span class="cx">                                 B275353A0B053814002CE64F /* FloatPoint.cpp */,
</span><span class="cx">                                 B275353B0B053814002CE64F /* FloatPoint.h */,
</span><span class="lines">@@ -25266,6 +25269,7 @@
</span><span class="cx">                                 E125F8421824253A00D84CD9 /* CryptoAlgorithmAES_CBC.h in Headers */,
</span><span class="cx">                                 E1FE137B184D21BB00892F13 /* CryptoAlgorithmAES_KW.h in Headers */,
</span><span class="cx">                                 E125F83A1824104800D84CD9 /* CryptoAlgorithmAesCbcParams.h in Headers */,
</span><ins>+                                0F2884001C7CF7D500888E9A /* EdgeSet.h in Headers */,
</ins><span class="cx">                                 E19AC3F71824E5D100349426 /* CryptoAlgorithmAesKeyGenParams.h in Headers */,
</span><span class="cx">                                 E157A8ED181851AC009F821D /* CryptoAlgorithmDescriptionBuilder.h in Headers */,
</span><span class="cx">                                 E125F8321822F11B00D84CD9 /* CryptoAlgorithmHMAC.h in Headers */,
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsEdgeSethfromrev197540trunkSourceWebCoreplatformgraphicsIntSizecpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/graphics/EdgeSet.h (from rev 197540, trunk/Source/WebCore/platform/graphics/IntSize.cpp) (0 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/EdgeSet.h                                (rev 0)
+++ trunk/Source/WebCore/platform/graphics/EdgeSet.h        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -0,0 +1,76 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef EdgeSet_h
+#define EdgeSet_h
+
+namespace WebCore {
+
+template &lt;typename T&gt;
+class EdgeSet {
+public:
+    EdgeSet(T top, T right, T bottom, T left)
+        : m_top(top)
+        , m_right(right)
+        , m_bottom(bottom)
+        , m_left(left)
+    {
+    }
+
+    T top() const { return m_top; }
+    void setTop(T top) { m_top = top; }
+
+    T right() const { return m_right; }
+    void setRight(T right) { m_right = right; }
+
+    T bottom() const { return m_bottom; }
+    void setBottom(T bottom) { m_bottom = bottom; }
+
+    T left() const { return m_left; }
+    void setLeft(T left) { m_left = left; }
+
+    bool operator==(const EdgeSet&lt;T&gt;&amp; b) const
+    {
+        return top() == b.top()
+            &amp;&amp; right() == b.right()
+            &amp;&amp; bottom() == b.bottom()
+            &amp;&amp; left() == b.left();
+    }
+
+    bool operator!=(const EdgeSet&lt;T&gt;&amp; b) const
+    {
+        return !(*this == b);
+    }
+
+private:
+    T m_top;
+    T m_right;
+    T m_bottom;
+    T m_left;
+};
+
+} // namespace WebCore
+
+#endif // EdgeSet_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGraphicsLayerClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GraphicsLayerClient.h (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GraphicsLayerClient.h        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/platform/graphics/GraphicsLayerClient.h        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -120,7 +120,7 @@
</span><span class="cx">     virtual bool shouldAggressivelyRetainTiles(const GraphicsLayer*) const { return false; }
</span><span class="cx">     virtual bool shouldTemporarilyRetainTileCohorts(const GraphicsLayer*) const { return true; }
</span><span class="cx"> 
</span><del>-    virtual IntSize tileSize() const { return defaultTileSize(); }
</del><ins>+    virtual bool useGiantTiles() const { return false; }
</ins><span class="cx"> 
</span><span class="cx">     virtual bool needsPixelAligment() const { return false; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsIntSizecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/IntSize.cpp (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/IntSize.cpp        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/platform/graphics/IntSize.cpp        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -37,6 +37,14 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+IntSize IntSize::constrainedBetween(const IntSize&amp; min, const IntSize&amp; max) const
+{
+    return {
+        std::max(min.width(), std::min(max.width(), m_width)),
+        std::max(min.height(), std::min(max.height(), m_height))
+    };
+}
+
</ins><span class="cx"> TextStream&amp; operator&lt;&lt;(TextStream&amp; ts, const IntSize&amp; size)
</span><span class="cx"> {
</span><span class="cx">     return ts &lt;&lt; &quot;width=&quot; &lt;&lt; size.width() &lt;&lt; &quot; height=&quot; &lt;&lt; size.height();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsIntSizeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/IntSize.h (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/IntSize.h        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/platform/graphics/IntSize.h        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -123,6 +123,8 @@
</span><span class="cx">             m_height = minimumSize.height();
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    IntSize constrainedBetween(const IntSize&amp; min, const IntSize&amp; max) const;
+
</ins><span class="cx">     int area() const
</span><span class="cx">     {
</span><span class="cx">         return m_width * m_height;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsTiledBackingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/TiledBacking.h (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/TiledBacking.h        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/platform/graphics/TiledBacking.h        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -33,20 +33,6 @@
</span><span class="cx">     GiantTileSizeMode
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-inline static IntSize defaultTileSize(TileSizeMode tileSizeMode = StandardTileSizeMode)
-{
-    static const int kTiledLayerTileSize = 512;
-
-    // This is an experimental value for debugging and evaluating the overhead which may be
-    // incurred due to a large tile size.
-    static const int kGiantTiledLayerTileSize = 4096;
-
-    if (tileSizeMode == GiantTileSizeMode)
-        return IntSize(kGiantTiledLayerTileSize, kGiantTiledLayerTileSize);
-
-    return IntSize(kTiledLayerTileSize, kTiledLayerTileSize);
-}
-
</del><span class="cx"> class FloatPoint;
</span><span class="cx"> class FloatRect;
</span><span class="cx"> class IntRect;
</span><span class="lines">@@ -94,6 +80,14 @@
</span><span class="cx">     virtual void setTopContentInset(float) = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual void setVelocity(const VelocityData&amp;) = 0;
</span><ins>+    
+    enum {
+        NotScrollable           = 0,
+        HorizontallyScrollable  = 1 &lt;&lt; 0,
+        VerticallyScrollable    = 1 &lt;&lt; 1
+    };
+    typedef unsigned Scrollability;
+    virtual void setScrollability(Scrollability) = 0;
</ins><span class="cx"> 
</span><span class="cx">     virtual void prepopulateRect(const FloatRect&amp;) = 0;
</span><span class="cx"> 
</span><span class="lines">@@ -112,6 +106,9 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void adjustTileCoverageRect(FloatRect&amp; coverageRect, const FloatSize&amp; newSize, const FloatRect&amp; previousVisibleRect, const FloatRect&amp; currentVisibleRect, float contentsScale) const = 0;
</span><span class="cx"> 
</span><ins>+    virtual void willStartLiveResize() = 0;
+    virtual void didEndLiveResize() = 0;
+
</ins><span class="cx">     virtual IntSize tileSize() const = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual void revalidateTiles() = 0;
</span><span class="lines">@@ -125,7 +122,8 @@
</span><span class="cx">     
</span><span class="cx">     virtual double retainedTileBackingStoreMemory() const = 0;
</span><span class="cx"> 
</span><del>-    virtual void setTileMargins(int marginTop, int marginBottom, int marginLeft, int marginRight) = 0;
</del><ins>+    virtual void setHasMargins(bool marginTop, bool marginBottom, bool marginLeft, bool marginRight) = 0;
+    virtual void setMarginSize(int) = 0;
</ins><span class="cx">     virtual bool hasMargins() const = 0;
</span><span class="cx">     virtual bool hasHorizontalMargins() const = 0;
</span><span class="cx">     virtual bool hasVerticalMargins() const = 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -1496,9 +1496,9 @@
</span><span class="cx">     return client().shouldTemporarilyRetainTileCohorts(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntSize GraphicsLayerCA::platformCALayerTileSize() const
</del><ins>+bool GraphicsLayerCA::platformCALayerUseGiantTiles() const
</ins><span class="cx"> {
</span><del>-    return client().tileSize();
</del><ins>+    return client().useGiantTiles();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static PlatformCALayer::LayerType layerTypeForCustomBackdropAppearance(GraphicsLayer::CustomAppearance appearance)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -200,7 +200,7 @@
</span><span class="cx">     WEBCORE_EXPORT virtual float platformCALayerContentsScaleMultiplierForNewTiles(PlatformCALayer*) const override;
</span><span class="cx">     WEBCORE_EXPORT virtual bool platformCALayerShouldAggressivelyRetainTiles(PlatformCALayer*) const override;
</span><span class="cx">     WEBCORE_EXPORT virtual bool platformCALayerShouldTemporarilyRetainTileCohorts(PlatformCALayer*) const override;
</span><del>-    WEBCORE_EXPORT virtual IntSize platformCALayerTileSize() const override;
</del><ins>+    WEBCORE_EXPORT virtual bool platformCALayerUseGiantTiles() const override;
</ins><span class="cx"> 
</span><span class="cx">     virtual bool isCommittingChanges() const override { return m_isCommittingChanges; }
</span><span class="cx">     virtual bool isUsingDisplayListDrawing(PlatformCALayer*) const override { return m_usesDisplayListDrawing; }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaPlatformCALayerClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx">     virtual bool platformCALayerShouldAggressivelyRetainTiles(PlatformCALayer*) const { return false; }
</span><span class="cx">     virtual bool platformCALayerShouldTemporarilyRetainTileCohorts(PlatformCALayer*) const { return true; }
</span><span class="cx"> 
</span><del>-    virtual IntSize platformCALayerTileSize() const { return defaultTileSize(); }
</del><ins>+    virtual bool platformCALayerUseGiantTiles() const { return false; }
</ins><span class="cx"> 
</span><span class="cx">     virtual bool isCommittingChanges() const { return false; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaTileControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/TileController.cpp (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/TileController.cpp        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/platform/graphics/ca/TileController.cpp        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -43,6 +43,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+static const auto tileSizeUpdateDelay = std::chrono::milliseconds { 500 };
+
</ins><span class="cx"> String TileController::tileGridContainerLayerName()
</span><span class="cx"> {
</span><span class="cx">     return ASCIILiteral(&quot;TileGrid Container Layer&quot;);
</span><span class="lines">@@ -57,22 +59,9 @@
</span><span class="cx">     : m_tileCacheLayer(rootPlatformLayer)
</span><span class="cx">     , m_tileGrid(std::make_unique&lt;TileGrid&gt;(*this))
</span><span class="cx">     , m_tileRevalidationTimer(*this, &amp;TileController::tileRevalidationTimerFired)
</span><del>-    , m_zoomedOutContentsScale(0)
</del><ins>+    , m_tileSizeChangeTimer(*this, &amp;TileController::tileSizeChangeTimerFired, tileSizeUpdateDelay)
</ins><span class="cx">     , m_deviceScaleFactor(owningGraphicsLayer()-&gt;platformCALayerDeviceScaleFactor())
</span><del>-    , m_tileCoverage(CoverageForVisibleArea)
-    , m_marginTop(0)
-    , m_marginBottom(0)
-    , m_marginLeft(0)
-    , m_marginRight(0)
-    , m_isInWindow(false)
-    , m_scrollingPerformanceLoggingEnabled(false)
-    , m_unparentsOffscreenTiles(false)
-    , m_acceleratesDrawing(false)
-    , m_tilesAreOpaque(false)
-    , m_hasTilesWithTemporaryScaleFactor(false)
-    , m_tileDebugBorderWidth(0)
-    , m_indicatorMode(SynchronousScrollingBecauseOfLackOfScrollingCoordinatorIndication)
-    , m_topContentInset(0)
</del><ins>+    , m_marginEdges(false, false, false, false)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -89,6 +78,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(owningGraphicsLayer()-&gt;isCommittingChanges());
</span><span class="cx">     setNeedsRevalidateTiles();
</span><ins>+    notePendingTileSizeChange();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void TileController::setNeedsDisplay()
</span><span class="lines">@@ -221,6 +211,15 @@
</span><span class="cx">         setNeedsRevalidateTiles();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void TileController::setScrollability(Scrollability scrollability)
+{
+    if (scrollability == m_scrollability)
+        return;
+    
+    m_scrollability = scrollability;
+    notePendingTileSizeChange();
+}
+
</ins><span class="cx"> void TileController::setTopContentInset(float topContentInset)
</span><span class="cx"> {
</span><span class="cx">     m_topContentInset = topContentInset;
</span><span class="lines">@@ -460,9 +459,45 @@
</span><span class="cx">     return owningGraphicsLayer()-&gt;platformCALayerShouldTemporarilyRetainTileCohorts(m_tileCacheLayer);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void TileController::willStartLiveResize()
+{
+    m_inLiveResize = true;
+}
+
+void TileController::didEndLiveResize()
+{
+    m_inLiveResize = false;
+    m_tileSizeLocked = false; // Let the end of a live resize update the tiles.
+}
+
+void TileController::notePendingTileSizeChange()
+{
+    m_tileSizeChangeTimer.restart();
+}
+
+void TileController::tileSizeChangeTimerFired()
+{
+    m_tileSizeLocked = false;
+    setNeedsRevalidateTiles();
+}
+
</ins><span class="cx"> IntSize TileController::tileSize() const
</span><span class="cx"> {
</span><del>-    return owningGraphicsLayer()-&gt;platformCALayerTileSize();
</del><ins>+    if (m_inLiveResize || m_tileSizeLocked)
+        return tileGrid().tileSize();
+
+    if (owningGraphicsLayer()-&gt;platformCALayerUseGiantTiles())
+        return IntSize(kGiantTileSize, kGiantTileSize);
+
+    IntSize tileSize(kDefaultTileSize, kDefaultTileSize);
+
+    if (m_scrollability == NotScrollable)
+        tileSize = boundsWithoutMargin().size().constrainedBetween(IntSize(kDefaultTileSize, kDefaultTileSize), IntSize(kGiantTileSize, kGiantTileSize));
+    else if (m_scrollability == VerticallyScrollable)
+        tileSize.setWidth(std::min(std::max(boundsWithoutMargin().width(), kDefaultTileSize), kGiantTileSize));
+
+    m_tileSizeLocked = true;
+    return tileSize;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void TileController::clearZoomedOutTileGrid()
</span><span class="lines">@@ -573,49 +608,58 @@
</span><span class="cx">     updateTileCoverageMap();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void TileController::setTileMargins(int marginTop, int marginBottom, int marginLeft, int marginRight)
</del><ins>+void TileController::setHasMargins(bool marginTop, bool marginBottom, bool marginLeft, bool marginRight)
</ins><span class="cx"> {
</span><del>-    m_marginTop = marginTop;
-    m_marginBottom = marginBottom;
-    m_marginLeft = marginLeft;
-    m_marginRight = marginRight;
</del><ins>+    EdgeSet&lt;bool&gt; marginEdges(marginTop, marginRight, marginBottom, marginLeft);
+    if (marginEdges == m_marginEdges)
+        return;
+    
+    m_marginEdges = marginEdges;
+    setNeedsRevalidateTiles();
+}
</ins><span class="cx"> 
</span><ins>+void TileController::setMarginSize(int marginSize)
+{
+    if (marginSize == m_marginSize)
+        return;
+    
+    m_marginSize = marginSize;
</ins><span class="cx">     setNeedsRevalidateTiles();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool TileController::hasMargins() const
</span><span class="cx"> {
</span><del>-    return m_marginTop || m_marginBottom || m_marginLeft || m_marginRight;
</del><ins>+    return m_marginSize &amp;&amp; (m_marginEdges.top() || m_marginEdges.bottom() || m_marginEdges.left() || m_marginEdges.right());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool TileController::hasHorizontalMargins() const
</span><span class="cx"> {
</span><del>-    return m_marginLeft || m_marginRight;
</del><ins>+    return m_marginSize &amp;&amp; (m_marginEdges.left() || m_marginEdges.right());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool TileController::hasVerticalMargins() const
</span><span class="cx"> {
</span><del>-    return m_marginTop || m_marginBottom;
</del><ins>+    return m_marginSize &amp;&amp; (m_marginEdges.top() || m_marginEdges.bottom());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int TileController::topMarginHeight() const
</span><span class="cx"> {
</span><del>-    return m_marginTop / tileGrid().scale();
</del><ins>+    return (m_marginSize * m_marginEdges.top()) / tileGrid().scale();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int TileController::bottomMarginHeight() const
</span><span class="cx"> {
</span><del>-    return m_marginBottom / tileGrid().scale();
</del><ins>+    return (m_marginSize * m_marginEdges.bottom()) / tileGrid().scale();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int TileController::leftMarginWidth() const
</span><span class="cx"> {
</span><del>-    return m_marginLeft / tileGrid().scale();
</del><ins>+    return (m_marginSize * m_marginEdges.left()) / tileGrid().scale();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int TileController::rightMarginWidth() const
</span><span class="cx"> {
</span><del>-    return m_marginRight / tileGrid().scale();
</del><ins>+    return (m_marginSize * m_marginEdges.right()) / tileGrid().scale();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;PlatformCALayer&gt; TileController::createTileLayer(const IntRect&amp; tileRect, TileGrid&amp; grid)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaTileControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/TileController.h (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/TileController.h        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/platform/graphics/ca/TileController.h        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -26,6 +26,7 @@
</span><span class="cx"> #ifndef TileController_h
</span><span class="cx"> #define TileController_h
</span><span class="cx"> 
</span><ins>+#include &quot;EdgeSet.h&quot;
</ins><span class="cx"> #include &quot;FloatRect.h&quot;
</span><span class="cx"> #include &quot;IntRect.h&quot;
</span><span class="cx"> #include &quot;PlatformCALayer.h&quot;
</span><span class="lines">@@ -47,6 +48,11 @@
</span><span class="cx"> 
</span><span class="cx"> typedef Vector&lt;RetainPtr&lt;PlatformLayer&gt;&gt; PlatformLayerList;
</span><span class="cx"> 
</span><ins>+const int kDefaultTileSize = 512;
+// This is an experimental value for debugging and evaluating the overhead which may be
+// incurred due to a large tile size.
+const int kGiantTileSize = 4096;
+
</ins><span class="cx"> class TileController final : public TiledBacking {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(TileController); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx">     friend class TileCoverageMap;
</span><span class="lines">@@ -95,6 +101,9 @@
</span><span class="cx">     float tileDebugBorderWidth() const { return m_tileDebugBorderWidth; }
</span><span class="cx">     ScrollingModeIndication indicatorMode() const { return m_indicatorMode; }
</span><span class="cx"> 
</span><ins>+    virtual void willStartLiveResize() override;
+    virtual void didEndLiveResize() override;
+
</ins><span class="cx">     virtual IntSize tileSize() const override;
</span><span class="cx">     virtual IntRect bounds() const override;
</span><span class="cx">     virtual IntRect boundsWithoutMargin() const override;
</span><span class="lines">@@ -140,6 +149,7 @@
</span><span class="cx">     virtual void setTiledScrollingIndicatorPosition(const FloatPoint&amp;) override;
</span><span class="cx">     virtual void setTopContentInset(float) override;
</span><span class="cx">     virtual void setVelocity(const VelocityData&amp;) override;
</span><ins>+    virtual void setScrollability(Scrollability) override;
</ins><span class="cx">     virtual void prepopulateRect(const FloatRect&amp;) override;
</span><span class="cx">     virtual void setIsInWindow(bool) override;
</span><span class="cx">     virtual void setTileCoverage(TileCoverage) override;
</span><span class="lines">@@ -154,15 +164,20 @@
</span><span class="cx">     virtual PlatformCALayer* tiledScrollingIndicatorLayer() override;
</span><span class="cx"> #endif
</span><span class="cx">     virtual void setScrollingModeIndication(ScrollingModeIndication) override;
</span><del>-    virtual void setTileMargins(int marginTop, int marginBottom, int marginLeft, int marginRight) override;
</del><ins>+    virtual void setHasMargins(bool marginTop, bool marginBottom, bool marginLeft, bool marginRight) override;
+    virtual void setMarginSize(int) override;
</ins><span class="cx">     virtual void setZoomedOutContentsScale(float) override;
</span><span class="cx">     virtual float zoomedOutContentsScale() const override;
</span><span class="cx"> 
</span><ins>+    void updateMargins();
</ins><span class="cx">     void clearZoomedOutTileGrid();
</span><span class="cx">     void tileGridsChanged();
</span><span class="cx"> 
</span><span class="cx">     void tileRevalidationTimerFired();
</span><span class="cx">     void setNeedsRevalidateTiles();
</span><ins>+
+    void notePendingTileSizeChange();
+    void tileSizeChangeTimerFired();
</ins><span class="cx">     
</span><span class="cx">     IntRect boundsForSize(const FloatSize&amp;) const;
</span><span class="cx"> 
</span><span class="lines">@@ -180,34 +195,39 @@
</span><span class="cx">     IntRect m_boundsAtLastRevalidate;
</span><span class="cx"> 
</span><span class="cx">     Timer m_tileRevalidationTimer;
</span><ins>+    DeferrableOneShotTimer m_tileSizeChangeTimer;
</ins><span class="cx"> 
</span><del>-    float m_zoomedOutContentsScale;
</del><ins>+    float m_zoomedOutContentsScale { 0 };
</ins><span class="cx">     float m_deviceScaleFactor;
</span><span class="cx"> 
</span><del>-    TileCoverage m_tileCoverage;
</del><ins>+    TileCoverage m_tileCoverage { CoverageForVisibleArea };
</ins><span class="cx">     
</span><span class="cx">     VelocityData m_velocity;
</span><span class="cx"> 
</span><ins>+    int m_marginSize { kDefaultTileSize };
+
</ins><span class="cx">     // m_marginTop and m_marginBottom are the height in pixels of the top and bottom margin tiles. The width
</span><span class="cx">     // of those tiles will be equivalent to the width of the other tiles in the grid. m_marginRight and
</span><span class="cx">     // m_marginLeft are the width in pixels of the right and left margin tiles, respectively. The height of
</span><span class="cx">     // those tiles will be equivalent to the height of the other tiles in the grid.
</span><del>-    int m_marginTop;
-    int m_marginBottom;
-    int m_marginLeft;
-    int m_marginRight;
</del><ins>+    
+    Scrollability m_scrollability { HorizontallyScrollable | VerticallyScrollable };
+    
+    EdgeSet&lt;bool&gt; m_marginEdges;
+    
+    bool m_isInWindow { false };
+    bool m_scrollingPerformanceLoggingEnabled { false };
+    bool m_unparentsOffscreenTiles { false };
+    bool m_acceleratesDrawing { false };
+    bool m_tilesAreOpaque { false };
+    bool m_hasTilesWithTemporaryScaleFactor { false }; // Used to make low-res tiles when zooming.
+    bool m_inLiveResize { false };
+    mutable bool m_tileSizeLocked { false };
</ins><span class="cx"> 
</span><del>-    bool m_isInWindow;
-    bool m_scrollingPerformanceLoggingEnabled;
-    bool m_unparentsOffscreenTiles;
-    bool m_acceleratesDrawing;
-    bool m_tilesAreOpaque;
-    bool m_hasTilesWithTemporaryScaleFactor; // Used to make low-res tiles when zooming.
-
</del><span class="cx">     Color m_tileDebugBorderColor;
</span><del>-    float m_tileDebugBorderWidth;
-    ScrollingModeIndication m_indicatorMode;
-    float m_topContentInset;
</del><ins>+    float m_tileDebugBorderWidth { 0 };
+    ScrollingModeIndication m_indicatorMode { SynchronousScrollingBecauseOfLackOfScrollingCoordinatorIndication };
+    float m_topContentInset { 0 };
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaTileGridcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/TileGrid.cpp (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/TileGrid.cpp        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/platform/graphics/ca/TileGrid.cpp        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -28,7 +28,9 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;GraphicsContext.h&quot;
</span><span class="cx"> #include &quot;LayerPool.h&quot;
</span><ins>+#include &quot;Logging.h&quot;
</ins><span class="cx"> #include &quot;PlatformCALayer.h&quot;
</span><ins>+#include &quot;TextStream.h&quot;
</ins><span class="cx"> #include &quot;TileController.h&quot;
</span><span class="cx"> #include &lt;wtf/MainThread.h&gt;
</span><span class="cx"> #include &lt;wtf/text/CString.h&gt;
</span><span class="lines">@@ -42,8 +44,9 @@
</span><span class="cx"> TileGrid::TileGrid(TileController&amp; controller)
</span><span class="cx">     : m_controller(controller)
</span><span class="cx">     , m_containerLayer(*controller.rootLayer().createCompatibleLayer(PlatformCALayer::LayerTypeLayer, nullptr))
</span><del>-    , m_scale(1)
</del><span class="cx">     , m_cohortRemovalTimer(*this, &amp;TileGrid::cohortRemovalTimerFired)
</span><ins>+    , m_tileSize(kDefaultTileSize, kDefaultTileSize)
+    , m_tileSizeAtLastRevalidate(m_tileSize)
</ins><span class="cx"> {
</span><span class="cx">     m_containerLayer.get().setName(TileController::tileGridContainerLayerName());
</span><span class="cx"> }
</span><span class="lines">@@ -101,7 +104,7 @@
</span><span class="cx">     scaledRect.scale(m_scale);
</span><span class="cx">     IntRect repaintRectInTileCoords(enclosingIntRect(scaledRect));
</span><span class="cx"> 
</span><del>-    IntSize tileSize = m_controller.tileSize();
</del><ins>+    IntSize tileSize = m_tileSize;
</ins><span class="cx"> 
</span><span class="cx">     // For small invalidations, lookup the covered tiles.
</span><span class="cx">     if (repaintRectInTileCoords.height() &lt; 2 * tileSize.height() &amp;&amp; repaintRectInTileCoords.width() &lt; 2 * tileSize.width()) {
</span><span class="lines">@@ -218,7 +221,7 @@
</span><span class="cx">     // FIXME: calculating the scaled size here should match with the rest of calculated sizes where we use the combination of
</span><span class="cx">     // enclosingIntRect, expandedIntSize (floor vs ceil).
</span><span class="cx">     // However enclosing this size could reveal gap on root layer's background. see RenderView::backgroundRect()
</span><del>-    IntSize tileSize = m_controller.tileSize();
</del><ins>+    IntSize tileSize = m_tileSize;
</ins><span class="cx">     IntRect rect(tileIndex.x() * tileSize.width(), tileIndex.y() * tileSize.height(), tileSize.width(), tileSize.height());
</span><span class="cx">     IntRect scaledBounds(m_controller.bounds());
</span><span class="cx">     scaledBounds.scale(m_scale);
</span><span class="lines">@@ -232,7 +235,7 @@
</span><span class="cx">     clampedRect.scale(m_scale);
</span><span class="cx">     clampedRect.intersect(rect);
</span><span class="cx"> 
</span><del>-    auto tileSize = m_controller.tileSize();
</del><ins>+    auto tileSize = m_tileSize;
</ins><span class="cx">     if (clampedRect.x() &gt;= 0)
</span><span class="cx">         topLeft.setX(clampedRect.x() / tileSize.width());
</span><span class="cx">     else
</span><span class="lines">@@ -272,6 +275,17 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void TileGrid::removeAllTiles()
+{
+    Vector&lt;TileIndex&gt; tilesToRemove;
+    tilesToRemove.reserveInitialCapacity(m_tiles.size());
+
+    for (auto&amp; entry : m_tiles)
+        tilesToRemove.uncheckedAppend(entry.key);
+
+    removeTiles(tilesToRemove);
+}
+
</ins><span class="cx"> void TileGrid::removeAllSecondaryTiles()
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;TileIndex&gt; tilesToRemove;
</span><span class="lines">@@ -318,6 +332,12 @@
</span><span class="cx"> 
</span><span class="cx">     double minimumRevalidationTimerDuration = std::numeric_limits&lt;double&gt;::max();
</span><span class="cx">     bool needsTileRevalidation = false;
</span><ins>+    
+    m_tileSize = m_controller.tileSize();
+    if (m_tileSize != m_tileSizeAtLastRevalidate) {
+        removeAllTiles();
+        m_tileSizeAtLastRevalidate = m_tileSize;
+    }
</ins><span class="cx"> 
</span><span class="cx">     // Move tiles newly outside the coverage rect into the cohort map.
</span><span class="cx">     for (TileMap::iterator it = m_tiles.begin(), end = m_tiles.end(); it != end; ++it) {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaTileGridh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/TileGrid.h (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/TileGrid.h        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/platform/graphics/ca/TileGrid.h        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -77,6 +77,8 @@
</span><span class="cx"> 
</span><span class="cx">     IntRect tileCoverageRect() const;
</span><span class="cx">     IntRect extent() const;
</span><ins>+    
+    IntSize tileSize() const { return m_tileSize; }
</ins><span class="cx"> 
</span><span class="cx">     double retainedTileBackingStoreMemory() const;
</span><span class="cx">     unsigned blankPixelCount() const;
</span><span class="lines">@@ -89,6 +91,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     typedef IntPoint TileIndex;
</span><ins>+
</ins><span class="cx">     typedef unsigned TileCohort;
</span><span class="cx">     static const TileCohort VisibleTileCohort = UINT_MAX;
</span><span class="cx"> 
</span><span class="lines">@@ -123,6 +126,7 @@
</span><span class="cx">         double timeUntilExpiration();
</span><span class="cx">     };
</span><span class="cx"> 
</span><ins>+    void removeAllTiles();
</ins><span class="cx">     void removeAllSecondaryTiles();
</span><span class="cx">     void removeTilesInCohort(TileCohort);
</span><span class="cx"> 
</span><span class="lines">@@ -154,8 +158,6 @@
</span><span class="cx">     IntRect m_primaryTileCoverageRect;
</span><span class="cx">     Vector&lt;FloatRect&gt; m_secondaryTileCoverageRects;
</span><span class="cx"> 
</span><del>-    float m_scale;
-
</del><span class="cx">     typedef Deque&lt;TileCohortInfo&gt; TileCohortList;
</span><span class="cx">     TileCohortList m_cohortList;
</span><span class="cx"> 
</span><span class="lines">@@ -163,6 +165,11 @@
</span><span class="cx"> 
</span><span class="cx">     typedef HashMap&lt;PlatformCALayer*, int&gt; RepaintCountMap;
</span><span class="cx">     RepaintCountMap m_tileRepaintCounts;
</span><ins>+    
+    IntSize m_tileSize;
+    IntSize m_tileSizeAtLastRevalidate;
+
+    float m_scale { 1 };
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerBackingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -250,9 +250,7 @@
</span><span class="cx">     if (!m_usingTiledCacheLayer)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    int marginLeftAndRightSize = hasExtendedBackgroundOnLeftAndRight ? tileSize().width() : 0;
-    int marginTopAndBottomSize = hasExtendedBackgroundOnTopAndBottom ? tileSize().height() : 0;
-    tiledBacking()-&gt;setTileMargins(marginTopAndBottomSize, marginTopAndBottomSize, marginLeftAndRightSize, marginLeftAndRightSize);
</del><ins>+    tiledBacking()-&gt;setHasMargins(hasExtendedBackgroundOnTopAndBottom, hasExtendedBackgroundOnTopAndBottom, hasExtendedBackgroundOnLeftAndRight, hasExtendedBackgroundOnLeftAndRight);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderLayerBacking::updateDebugIndicators(bool showBorder, bool showRepaintCounter)
</span><span class="lines">@@ -2486,10 +2484,9 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntSize RenderLayerBacking::tileSize() const
</del><ins>+bool RenderLayerBacking::useGiantTiles() const
</ins><span class="cx"> {
</span><del>-    TileSizeMode tileSizeMode = renderer().frame().page()-&gt;settings().useGiantTiles() ? GiantTileSizeMode : StandardTileSizeMode;
-    return defaultTileSize(tileSizeMode);
</del><ins>+    return renderer().frame().page()-&gt;settings().useGiantTiles();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #ifndef NDEBUG
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerBackingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.h (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerBacking.h        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.h        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -213,7 +213,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual bool shouldAggressivelyRetainTiles(const GraphicsLayer*) const override;
</span><span class="cx">     virtual bool shouldTemporarilyRetainTileCohorts(const GraphicsLayer*) const override;
</span><del>-    virtual IntSize tileSize() const override;
</del><ins>+    virtual bool useGiantTiles() const override;
</ins><span class="cx">     virtual bool needsPixelAligment() const override { return !m_isMainFrameRenderViewLayer; }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebKit2/ChangeLog        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2016-03-03  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
+        Use larger tiles when possible to reduce per-tile painting overhead
+        https://bugs.webkit.org/show_bug.cgi?id=154985
+        rdar://problem/23635219
+
+        Reviewed by Tim Horton.
+
+        Do a bit of #include cleanup.
+
+        * Shared/mac/RemoteLayerBackingStore.mm:
+        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
+        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
+        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:
+
</ins><span class="cx"> 2016-03-03  Gyuyoung Kim  &lt;gyuyoung.kim@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Use std::make_unique&lt;&gt; when creating std::unique_ptr&lt;&gt;
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedmacRemoteLayerBackingStoremm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/mac/RemoteLayerBackingStore.mm (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/RemoteLayerBackingStore.mm        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebKit2/Shared/mac/RemoteLayerBackingStore.mm        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -37,6 +37,7 @@
</span><span class="cx"> #import &lt;WebCore/GraphicsContextCG.h&gt;
</span><span class="cx"> #import &lt;WebCore/IOSurface.h&gt;
</span><span class="cx"> #import &lt;WebCore/MachSendRight.h&gt;
</span><ins>+#import &lt;WebCore/PlatformCALayerClient.h&gt;
</ins><span class="cx"> #import &lt;WebCore/QuartzCoreSPI.h&gt;
</span><span class="cx"> #import &lt;WebCore/WebLayer.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPagemacPlatformCALayerRemoteh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.h (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.h        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.h        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> #include &quot;RemoteLayerTreeTransaction.h&quot;
</span><span class="cx"> #include &lt;WebCore/PlatformCALayer.h&gt;
</span><span class="cx"> #include &lt;WebCore/PlatformLayer.h&gt;
</span><del>-#include &lt;WebCore/TileController.h&gt;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> class LayerPool;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPagemacPlatformCALayerRemoteTiledBackingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> #import &quot;RemoteLayerTreeContext.h&quot;
</span><span class="cx"> #import &lt;WebCore/GraphicsLayerCA.h&gt;
</span><span class="cx"> #import &lt;WebCore/PlatformCALayerCocoa.h&gt;
</span><del>-#import &lt;WebCore/TiledBacking.h&gt;
</del><span class="cx"> #import &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPagemacPlatformCALayerRemoteTiledBackingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h (197540 => 197541)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h        2016-03-04 02:26:36 UTC (rev 197540)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h        2016-03-04 02:26:49 UTC (rev 197541)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> #define PlatformCALayerRemoteTiledBacking_h
</span><span class="cx"> 
</span><span class="cx"> #include &quot;PlatformCALayerRemote.h&quot;
</span><ins>+#include &lt;WebCore/TileController.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>