<!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>[166802] tags/Safari-538.26.3/Source</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/166802">166802</a></dd>
<dt>Author</dt> <dd>lforschler@apple.com</dd>
<dt>Date</dt> <dd>2014-04-04 15:06:20 -0700 (Fri, 04 Apr 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Merged <a href="http://trac.webkit.org/projects/webkit/changeset/166516">r166516</a>.  </pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#tagsSafari538263SourceWebCoreChangeLog">tags/Safari-538.26.3/Source/WebCore/ChangeLog</a></li>
<li><a href="#tagsSafari538263SourceWebCoreWebCoreexpin">tags/Safari-538.26.3/Source/WebCore/WebCore.exp.in</a></li>
<li><a href="#tagsSafari538263SourceWebCorepageSettingscpp">tags/Safari-538.26.3/Source/WebCore/page/Settings.cpp</a></li>
<li><a href="#tagsSafari538263SourceWebCorepageSettingsh">tags/Safari-538.26.3/Source/WebCore/page/Settings.h</a></li>
<li><a href="#tagsSafari538263SourceWebCorepageSettingsin">tags/Safari-538.26.3/Source/WebCore/page/Settings.in</a></li>
<li><a href="#tagsSafari538263SourceWebCoreplatformgraphicsGraphicsLayerClienth">tags/Safari-538.26.3/Source/WebCore/platform/graphics/GraphicsLayerClient.h</a></li>
<li><a href="#tagsSafari538263SourceWebCoreplatformgraphicsTiledBackingh">tags/Safari-538.26.3/Source/WebCore/platform/graphics/TiledBacking.h</a></li>
<li><a href="#tagsSafari538263SourceWebCoreplatformgraphicscaGraphicsLayerCAcpp">tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp</a></li>
<li><a href="#tagsSafari538263SourceWebCoreplatformgraphicscaGraphicsLayerCAh">tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h</a></li>
<li><a href="#tagsSafari538263SourceWebCoreplatformgraphicscaPlatformCALayerClienth">tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h</a></li>
<li><a href="#tagsSafari538263SourceWebCoreplatformgraphicscamacTileControllerh">tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/mac/TileController.h</a></li>
<li><a href="#tagsSafari538263SourceWebCoreplatformgraphicscamacTileControllermm">tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/mac/TileController.mm</a></li>
<li><a href="#tagsSafari538263SourceWebCorerenderingRenderLayerBackingcpp">tags/Safari-538.26.3/Source/WebCore/rendering/RenderLayerBacking.cpp</a></li>
<li><a href="#tagsSafari538263SourceWebCorerenderingRenderLayerBackingh">tags/Safari-538.26.3/Source/WebCore/rendering/RenderLayerBacking.h</a></li>
<li><a href="#tagsSafari538263SourceWebKit2ChangeLog">tags/Safari-538.26.3/Source/WebKit2/ChangeLog</a></li>
<li><a href="#tagsSafari538263SourceWebKit2SharedWebPreferencesStoreh">tags/Safari-538.26.3/Source/WebKit2/Shared/WebPreferencesStore.h</a></li>
<li><a href="#tagsSafari538263SourceWebKit2WebProcessWebPageWebPagecpp">tags/Safari-538.26.3/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#tagsSafari538263SourceWebKit2WebProcessWebPagemacTiledCoreAnimationDrawingAreamm">tags/Safari-538.26.3/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="tagsSafari538263SourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/ChangeLog (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/ChangeLog        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/ChangeLog        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -1,3 +1,54 @@
</span><ins>+2014-04-04  Lucas Forschler  &lt;lforschler@apple.com&gt;
+
+        Merge r166516
+
+    2014-03-31  Tim Horton  &lt;timothy_horton@apple.com&gt;
+
+            [iOS WebKit2] Disable tile cohort retention for now
+            https://bugs.webkit.org/show_bug.cgi?id=130926
+            &lt;rdar://problem/16465413&gt;
+
+            Reviewed by Simon Fraser.
+
+            * WebCore.exp.in:
+            * page/Settings.cpp:
+            (WebCore::Settings::Settings):
+            (WebCore::Settings::setScrollingPerformanceLoggingEnabled):
+            (WebCore::Settings::setAggressiveTileRetentionEnabled): Deleted.
+            * page/Settings.h:
+            (WebCore::Settings::aggressiveTileRetentionEnabled): Deleted.
+            * page/Settings.in:
+            Use Settings.in for these simple settings.
+
+            * platform/graphics/GraphicsLayerClient.h:
+            (WebCore::GraphicsLayerClient::shouldAggressivelyRetainTiles):
+            (WebCore::GraphicsLayerClient::shouldTemporarilyRetainTileCohorts):
+            * platform/graphics/TiledBacking.h:
+            * platform/graphics/ca/GraphicsLayerCA.cpp:
+            (WebCore::GraphicsLayerCA::platformCALayerShouldAggressivelyRetainTiles):
+            (WebCore::GraphicsLayerCA::platformCALayerShouldTemporarilyRetainTileCohorts):
+            * platform/graphics/ca/GraphicsLayerCA.h:
+            * platform/graphics/ca/PlatformCALayerClient.h:
+            (WebCore::PlatformCALayerClient::platformCALayerShouldAggressivelyRetainTiles):
+            (WebCore::PlatformCALayerClient::platformCALayerShouldTemporarilyRetainTileCohorts):
+            * rendering/RenderLayerBacking.cpp:
+            (WebCore::RenderLayerBacking::shouldAggressivelyRetainTiles):
+            (WebCore::RenderLayerBacking::shouldTemporarilyRetainTileCohorts):
+            * rendering/RenderLayerBacking.h:
+            Plumb the two tile-retention settings through to TileController in a pull manner
+            instead of a push manner, as there were some cases (especially on iOS) where
+            the settings weren't always getting pushed down.
+
+            * platform/graphics/ca/mac/TileController.h:
+            * platform/graphics/ca/mac/TileController.mm:
+            (WebCore::TileController::TileController):
+            (WebCore::TileController::tileRevalidationTimerFired):
+            (WebCore::TileController::revalidateTiles):
+            (WebCore::TileController::drawTileMapContents):
+            Aggressive tile retention wins over temporary retention. If we aren't
+            using temporary (cohort) retention, throw away the cohort as soon as it
+            is created.
+
</ins><span class="cx"> 2014-04-03  Lucas Forschler  &lt;lforschler@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Merge r166714
</span></span></pre></div>
<a id="tagsSafari538263SourceWebCoreWebCoreexpin"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/WebCore.exp.in (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/WebCore.exp.in        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/WebCore.exp.in        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -1282,7 +1282,6 @@
</span><span class="cx"> __ZN7WebCore8Settings32setAcceleratedCompositingEnabledEb
</span><span class="cx"> __ZN7WebCore8Settings32setNeedsAdobeFrameReloadingQuirkEb
</span><span class="cx"> __ZN7WebCore8Settings32setScreenFontSubstitutionEnabledEb
</span><del>-__ZN7WebCore8Settings33setAggressiveTileRetentionEnabledEb
</del><span class="cx"> __ZN7WebCore8Settings33setFontFallbackPrefersPictographsEb
</span><span class="cx"> __ZN7WebCore8Settings35setBackgroundShouldExtendBeyondPageEb
</span><span class="cx"> __ZN7WebCore8Settings37setScrollingPerformanceLoggingEnabledEb
</span><span class="lines">@@ -1650,7 +1649,9 @@
</span><span class="cx"> __ZNK7WebCore15GraphicsLayerCA30visibleRectChangeRequiresFlushERKNS_9FloatRectE
</span><span class="cx"> __ZNK7WebCore15GraphicsLayerCA32platformCALayerDeviceScaleFactorEv
</span><span class="cx"> __ZNK7WebCore15GraphicsLayerCA33platformCALayerShowRepaintCounterEPNS_15PlatformCALayerE
</span><ins>+__ZNK7WebCore15GraphicsLayerCA44platformCALayerShouldAggressivelyRetainTilesEPNS_15PlatformCALayerE
</ins><span class="cx"> __ZNK7WebCore15GraphicsLayerCA49platformCALayerContentsScaleMultiplierForNewTilesEPNS_15PlatformCALayerE
</span><ins>+__ZNK7WebCore15GraphicsLayerCA49platformCALayerShouldTemporarilyRetainTileCohortsEPNS_15PlatformCALayerE
</ins><span class="cx"> __ZNK7WebCore15ProgressTracker17estimatedProgressEv
</span><span class="cx"> __ZNK7WebCore15ProtectionSpace10serverTypeEv
</span><span class="cx"> __ZNK7WebCore15ProtectionSpace26receivesCredentialSecurelyEv
</span><span class="lines">@@ -1960,7 +1961,9 @@
</span><span class="cx"> __ZThn???_NK7WebCore15GraphicsLayerCA26platformCALayerExposedRectEv
</span><span class="cx"> __ZThn???_NK7WebCore15GraphicsLayerCA32platformCALayerDeviceScaleFactorEv
</span><span class="cx"> __ZThn???_NK7WebCore15GraphicsLayerCA33platformCALayerShowRepaintCounterEPNS_15PlatformCALayerE
</span><ins>+__ZThn???_NK7WebCore15GraphicsLayerCA44platformCALayerShouldAggressivelyRetainTilesEPNS_15PlatformCALayerE
</ins><span class="cx"> __ZThn???_NK7WebCore15GraphicsLayerCA49platformCALayerContentsScaleMultiplierForNewTilesEPNS_15PlatformCALayerE
</span><ins>+__ZThn???_NK7WebCore15GraphicsLayerCA49platformCALayerShouldTemporarilyRetainTileCohortsEPNS_15PlatformCALayerE
</ins><span class="cx"> _filenameByFixingIllegalCharacters
</span><span class="cx"> _hasCaseInsensitivePrefix
</span><span class="cx"> _hasCaseInsensitiveSubstring
</span></span></pre></div>
<a id="tagsSafari538263SourceWebCorepageSettingscpp"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/page/Settings.cpp (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/page/Settings.cpp        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/page/Settings.cpp        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -186,7 +186,6 @@
</span><span class="cx">     , m_touchEventEmulationEnabled(false)
</span><span class="cx"> #endif
</span><span class="cx">     , m_scrollingPerformanceLoggingEnabled(false)
</span><del>-    , m_aggressiveTileRetentionEnabled(false)
</del><span class="cx">     , m_timeWithoutMouseMovementBeforeHidingControls(3)
</span><span class="cx">     , m_setImageLoadingSettingsTimer(this, &amp;Settings::imageLoadingSettingsTimerFired)
</span><span class="cx"> #if ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING)
</span><span class="lines">@@ -628,11 +627,6 @@
</span><span class="cx">     if (m_page-&gt;mainFrame().view())
</span><span class="cx">         m_page-&gt;mainFrame().view()-&gt;setScrollingPerformanceLoggingEnabled(enabled);
</span><span class="cx"> }
</span><del>-    
-void Settings::setAggressiveTileRetentionEnabled(bool enabled)
-{
-    m_aggressiveTileRetentionEnabled = enabled;
-}
</del><span class="cx"> 
</span><span class="cx"> void Settings::setMockScrollbarsEnabled(bool flag)
</span><span class="cx"> {
</span></span></pre></div>
<a id="tagsSafari538263SourceWebCorepageSettingsh"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/page/Settings.h (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/page/Settings.h        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/page/Settings.h        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -233,9 +233,6 @@
</span><span class="cx"> 
</span><span class="cx">     void setScrollingPerformanceLoggingEnabled(bool);
</span><span class="cx">     bool scrollingPerformanceLoggingEnabled() { return m_scrollingPerformanceLoggingEnabled; }
</span><del>-        
-    void setAggressiveTileRetentionEnabled(bool);
-    bool aggressiveTileRetentionEnabled() { return m_aggressiveTileRetentionEnabled; }
</del><span class="cx"> 
</span><span class="cx">     static void setShouldRespectPriorityInCSSAttributeSetters(bool);
</span><span class="cx">     static bool shouldRespectPriorityInCSSAttributeSetters();
</span><span class="lines">@@ -317,7 +314,6 @@
</span><span class="cx">     bool m_touchEventEmulationEnabled : 1;
</span><span class="cx"> #endif
</span><span class="cx">     bool m_scrollingPerformanceLoggingEnabled : 1;
</span><del>-    bool m_aggressiveTileRetentionEnabled : 1;
</del><span class="cx"> 
</span><span class="cx">     double m_timeWithoutMouseMovementBeforeHidingControls;
</span><span class="cx"> 
</span></span></pre></div>
<a id="tagsSafari538263SourceWebCorepageSettingsin"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/page/Settings.in (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/page/Settings.in        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/page/Settings.in        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -220,3 +220,6 @@
</span><span class="cx"> alwaysUseBaselineOfPrimaryFont initial=false
</span><span class="cx"> 
</span><span class="cx"> enableInheritURIQueryComponent initial=false
</span><ins>+
+aggressiveTileRetentionEnabled initial=false
+temporaryTileCohortRetentionEnabled initial=true
</ins></span></pre></div>
<a id="tagsSafari538263SourceWebCoreplatformgraphicsGraphicsLayerClienth"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/platform/graphics/GraphicsLayerClient.h (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/platform/graphics/GraphicsLayerClient.h        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/platform/graphics/GraphicsLayerClient.h        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -95,6 +95,9 @@
</span><span class="cx">     virtual bool shouldSkipLayerInDump(const GraphicsLayer*) const { return false; }
</span><span class="cx">     virtual bool shouldDumpPropertyForLayer(const GraphicsLayer*, const char*) const { return true; }
</span><span class="cx"> 
</span><ins>+    virtual bool shouldAggressivelyRetainTiles(const GraphicsLayer*) const { return false; }
+    virtual bool shouldTemporarilyRetainTileCohorts(const GraphicsLayer*) const { return true; }
+
</ins><span class="cx"> #if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
</span><span class="cx">     virtual bool mediaLayerMustBeUpdatedOnMainThread() const { return false; }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="tagsSafari538263SourceWebCoreplatformgraphicsTiledBackingh"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/platform/graphics/TiledBacking.h (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/platform/graphics/TiledBacking.h        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/platform/graphics/TiledBacking.h        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -75,9 +75,6 @@
</span><span class="cx">     virtual void setScrollingPerformanceLoggingEnabled(bool) = 0;
</span><span class="cx">     virtual bool scrollingPerformanceLoggingEnabled() const = 0;
</span><span class="cx">     
</span><del>-    virtual void setAggressivelyRetainsTiles(bool) = 0;
-    virtual bool aggressivelyRetainsTiles() const = 0;
-    
</del><span class="cx">     virtual void setUnparentsOffscreenTiles(bool) = 0;
</span><span class="cx">     virtual bool unparentsOffscreenTiles() const = 0;
</span><span class="cx">     
</span></span></pre></div>
<a id="tagsSafari538263SourceWebCoreplatformgraphicscaGraphicsLayerCAcpp"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -1294,6 +1294,20 @@
</span><span class="cx">     return client() ? client()-&gt;contentsScaleMultiplierForNewTiles(this) : 1;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool GraphicsLayerCA::platformCALayerShouldAggressivelyRetainTiles(PlatformCALayer*) const
+{
+    if (GraphicsLayerClient* layerClient = client())
+        return layerClient-&gt;shouldAggressivelyRetainTiles(this);
+    return false;
+}
+
+bool GraphicsLayerCA::platformCALayerShouldTemporarilyRetainTileCohorts(PlatformCALayer*) const
+{
+    if (GraphicsLayerClient* layerClient = client())
+        return layerClient-&gt;shouldTemporarilyRetainTileCohorts(this);
+    return true;
+}
+
</ins><span class="cx"> void GraphicsLayerCA::commitLayerChangesBeforeSublayers(CommitState&amp; commitState, float pageScaleFactor, const FloatPoint&amp; positionRelativeToBase, const FloatRect&amp; oldVisibleRect, TransformationMatrix* transformFromRoot)
</span><span class="cx"> {
</span><span class="cx">     ++commitState.treeDepth;
</span></span></pre></div>
<a id="tagsSafari538263SourceWebCoreplatformgraphicscaGraphicsLayerCAh"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -193,6 +193,8 @@
</span><span class="cx">     virtual void platformCALayerSetNeedsToRevalidateTiles() override;
</span><span class="cx">     virtual float platformCALayerDeviceScaleFactor() const override;
</span><span class="cx">     virtual float platformCALayerContentsScaleMultiplierForNewTiles(PlatformCALayer*) const override;
</span><ins>+    virtual bool platformCALayerShouldAggressivelyRetainTiles(PlatformCALayer*) const override;
+    virtual bool platformCALayerShouldTemporarilyRetainTileCohorts(PlatformCALayer*) const override;
</ins><span class="cx"> 
</span><span class="cx">     virtual bool isCommittingChanges() const override { return m_isCommittingChanges; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="tagsSafari538263SourceWebCoreplatformgraphicscaPlatformCALayerClienth"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -54,6 +54,9 @@
</span><span class="cx">     virtual float platformCALayerDeviceScaleFactor() const = 0;
</span><span class="cx">     virtual float platformCALayerContentsScaleMultiplierForNewTiles(PlatformCALayer*) const { return 1; }
</span><span class="cx"> 
</span><ins>+    virtual bool platformCALayerShouldAggressivelyRetainTiles(PlatformCALayer*) const { return false; }
+    virtual bool platformCALayerShouldTemporarilyRetainTileCohorts(PlatformCALayer*) const { return true; }
+
</ins><span class="cx">     virtual bool isCommittingChanges() const { return false; }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span></span></pre></div>
<a id="tagsSafari538263SourceWebCoreplatformgraphicscamacTileControllerh"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/mac/TileController.h (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/mac/TileController.h        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/mac/TileController.h        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -118,8 +118,6 @@
</span><span class="cx">     virtual IntRect tileGridExtent() const override;
</span><span class="cx">     virtual void setScrollingPerformanceLoggingEnabled(bool flag) override { m_scrollingPerformanceLoggingEnabled = flag; }
</span><span class="cx">     virtual bool scrollingPerformanceLoggingEnabled() const override { return m_scrollingPerformanceLoggingEnabled; }
</span><del>-    virtual void setAggressivelyRetainsTiles(bool flag) override { m_aggressivelyRetainsTiles = flag; }
-    virtual bool aggressivelyRetainsTiles() const override { return m_aggressivelyRetainsTiles; }
</del><span class="cx">     virtual void setUnparentsOffscreenTiles(bool flag) override { m_unparentsOffscreenTiles = flag; }
</span><span class="cx">     virtual bool unparentsOffscreenTiles() const override { return m_unparentsOffscreenTiles; }
</span><span class="cx">     virtual double retainedTileBackingStoreMemory() const override;
</span><span class="lines">@@ -245,7 +243,6 @@
</span><span class="cx"> 
</span><span class="cx">     bool m_isInWindow;
</span><span class="cx">     bool m_scrollingPerformanceLoggingEnabled;
</span><del>-    bool m_aggressivelyRetainsTiles;
</del><span class="cx">     bool m_unparentsOffscreenTiles;
</span><span class="cx">     bool m_acceleratesDrawing;
</span><span class="cx">     bool m_tilesAreOpaque;
</span></span></pre></div>
<a id="tagsSafari538263SourceWebCoreplatformgraphicscamacTileControllermm"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/mac/TileController.mm (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/mac/TileController.mm        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/platform/graphics/ca/mac/TileController.mm        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -67,7 +67,6 @@
</span><span class="cx">     , m_marginRight(0)
</span><span class="cx">     , m_isInWindow(false)
</span><span class="cx">     , m_scrollingPerformanceLoggingEnabled(false)
</span><del>-    , m_aggressivelyRetainsTiles(false)
</del><span class="cx">     , m_unparentsOffscreenTiles(false)
</span><span class="cx">     , m_acceleratesDrawing(false)
</span><span class="cx">     , m_tilesAreOpaque(false)
</span><span class="lines">@@ -543,7 +542,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    TileValidationPolicyFlags foregroundValidationPolicy = m_aggressivelyRetainsTiles ? 0 : PruneSecondaryTiles;
</del><ins>+    TileValidationPolicyFlags foregroundValidationPolicy = owningGraphicsLayer()-&gt;platformCALayerShouldAggressivelyRetainTiles(m_tileCacheLayer) ? 0 : PruneSecondaryTiles;
</ins><span class="cx">     TileValidationPolicyFlags backgroundValidationPolicy = foregroundValidationPolicy | UnparentAllTiles;
</span><span class="cx"> 
</span><span class="cx">     revalidateTiles(foregroundValidationPolicy, backgroundValidationPolicy);
</span><span class="lines">@@ -698,8 +697,12 @@
</span><span class="cx">     if (tilesInCohort)
</span><span class="cx">         startedNewCohort(currCohort);
</span><span class="cx"> 
</span><del>-    if (!m_aggressivelyRetainsTiles)
-        scheduleCohortRemoval();
</del><ins>+    if (!owningGraphicsLayer()-&gt;platformCALayerShouldAggressivelyRetainTiles(m_tileCacheLayer)) {
+        if (owningGraphicsLayer()-&gt;platformCALayerShouldTemporarilyRetainTileCohorts(m_tileCacheLayer))
+            scheduleCohortRemoval();
+        else if (tilesInCohort)
+            removeTilesInCohort(currCohort);
+    }
</ins><span class="cx"> 
</span><span class="cx">     // Ensure primary tile coverage tiles.
</span><span class="cx">     m_primaryTileCoverageRect = ensureTilesForRect(tileCoverageRect, CoverageType::PrimaryTiles);
</span><span class="lines">@@ -1114,7 +1117,7 @@
</span><span class="cx">         TileCohort newestCohort = newestTileCohort();
</span><span class="cx">         TileCohort oldestCohort = oldestTileCohort();
</span><span class="cx"> 
</span><del>-        if (!m_aggressivelyRetainsTiles &amp;&amp; tileInfo.cohort != VisibleTileCohort &amp;&amp; newestCohort &gt; oldestCohort) {
</del><ins>+        if (!owningGraphicsLayer()-&gt;platformCALayerShouldAggressivelyRetainTiles(m_tileCacheLayer) &amp;&amp; tileInfo.cohort != VisibleTileCohort &amp;&amp; newestCohort &gt; oldestCohort) {
</ins><span class="cx">             float cohortProportion = static_cast&lt;float&gt;((newestCohort - tileInfo.cohort)) / (newestCohort - oldestCohort);
</span><span class="cx">             CGContextSetRGBFillColor(context, red, green, blue, 1 - cohortProportion);
</span><span class="cx">         } else
</span></span></pre></div>
<a id="tagsSafari538263SourceWebCorerenderingRenderLayerBackingcpp"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/rendering/RenderLayerBacking.cpp (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/rendering/RenderLayerBacking.cpp        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/rendering/RenderLayerBacking.cpp        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -2315,6 +2315,25 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool RenderLayerBacking::shouldAggressivelyRetainTiles(const GraphicsLayer*) const
+{
+    // Only the main frame TileController has enough information about in-window state to
+    // correctly implement aggressive tile retention.
+    if (!m_isMainFrameRenderViewLayer)
+        return false;
+
+    if (Page* page = renderer().frame().page())
+        return page-&gt;settings().aggressiveTileRetentionEnabled();
+    return false;
+}
+
+bool RenderLayerBacking::shouldTemporarilyRetainTileCohorts(const GraphicsLayer*) const
+{
+    if (Page* page = renderer().frame().page())
+        return page-&gt;settings().temporaryTileCohortRetentionEnabled();
+    return true;
+}
+
</ins><span class="cx"> #ifndef NDEBUG
</span><span class="cx"> void RenderLayerBacking::verifyNotPainting()
</span><span class="cx"> {
</span></span></pre></div>
<a id="tagsSafari538263SourceWebCorerenderingRenderLayerBackingh"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebCore/rendering/RenderLayerBacking.h (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebCore/rendering/RenderLayerBacking.h        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebCore/rendering/RenderLayerBacking.h        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -187,6 +187,9 @@
</span><span class="cx">     virtual bool shouldSkipLayerInDump(const GraphicsLayer*) const override;
</span><span class="cx">     virtual bool shouldDumpPropertyForLayer(const GraphicsLayer*, const char* propertyName) const override;
</span><span class="cx"> 
</span><ins>+    virtual bool shouldAggressivelyRetainTiles(const GraphicsLayer*) const override;
+    virtual bool shouldTemporarilyRetainTileCohorts(const GraphicsLayer*) const override;
+
</ins><span class="cx"> #if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
</span><span class="cx">     virtual bool mediaLayerMustBeUpdatedOnMainThread() const override;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="tagsSafari538263SourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebKit2/ChangeLog (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebKit2/ChangeLog        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebKit2/ChangeLog        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -1,3 +1,27 @@
</span><ins>+2014-04-04  Lucas Forschler  &lt;lforschler@apple.com&gt;
+
+        Merge r166516
+
+    2014-03-31  Tim Horton  &lt;timothy_horton@apple.com&gt;
+
+            [iOS WebKit2] Disable tile cohort retention for now
+            https://bugs.webkit.org/show_bug.cgi?id=130926
+            &lt;rdar://problem/16465413&gt;
+
+            Reviewed by Simon Fraser.
+
+            * Shared/WebPreferencesStore.h:
+            * WebProcess/WebPage/WebPage.cpp:
+            (WebKit::WebPage::updatePreferences):
+            Add a preference for temporary tile cohort retention (essentially, provide a setting
+            that means that we will never retain tiles at all once they leave the tile coverage rect).
+            Defaults to true to maintain existing behavior, except for iOS WebKit2, where
+            it defaults to false because we don't have the requisite support for purgeable tiles yet.
+
+            * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+            (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
+            (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
+
</ins><span class="cx"> 2014-04-03  Lucas Forschler  &lt;lforschler@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Merge r166735
</span></span></pre></div>
<a id="tagsSafari538263SourceWebKit2SharedWebPreferencesStoreh"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebKit2/Shared/WebPreferencesStore.h (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebKit2/Shared/WebPreferencesStore.h        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebKit2/Shared/WebPreferencesStore.h        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -74,6 +74,7 @@
</span><span class="cx"> #define DEFAULT_PASSWORD_ECHO_ENABLED true
</span><span class="cx"> #define DEFAULT_MEDIA_PLAYBACK_ALLOWS_INLINE false
</span><span class="cx"> #define DEFAULT_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE true
</span><ins>+#define DEFAULT_TEMPORARY_TILE_COHORT_RETENTION_ENABLED false
</ins><span class="cx"> #else
</span><span class="cx"> #define DEFAULT_FRAME_FLATTENING_ENABLED false
</span><span class="cx"> #define DEFAULT_SHOULD_PRINT_BACKGROUNDS false
</span><span class="lines">@@ -84,6 +85,7 @@
</span><span class="cx"> #define DEFAULT_PASSWORD_ECHO_ENABLED false
</span><span class="cx"> #define DEFAULT_MEDIA_PLAYBACK_ALLOWS_INLINE true
</span><span class="cx"> #define DEFAULT_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE false
</span><ins>+#define DEFAULT_TEMPORARY_TILE_COHORT_RETENTION_ENABLED true
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS) &amp;&amp; !PLATFORM(IOS_SIMULATOR)
</span><span class="lines">@@ -187,6 +189,7 @@
</span><span class="cx">     macro(UsesEncodingDetector, usesEncodingDetector, Bool, bool, false) \
</span><span class="cx">     macro(TextAutosizingEnabled, textAutosizingEnabled, Bool, bool, false) \
</span><span class="cx">     macro(AggressiveTileRetentionEnabled, aggressiveTileRetentionEnabled, Bool, bool, false) \
</span><ins>+    macro(TemporaryTileCohortRetentionEnabled, temporaryTileCohortRetentionEnabled, Bool, bool, DEFAULT_TEMPORARY_TILE_COHORT_RETENTION_ENABLED) \
</ins><span class="cx">     macro(QTKitEnabled, isQTKitEnabled, Bool, bool, true) \
</span><span class="cx">     macro(LogsPageMessagesToSystemConsoleEnabled, logsPageMessagesToSystemConsoleEnabled, Bool, bool, false) \
</span><span class="cx">     macro(PageVisibilityBasedProcessSuppressionEnabled, pageVisibilityBasedProcessSuppressionEnabled, Bool, bool, true) \
</span></span></pre></div>
<a id="tagsSafari538263SourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -2551,6 +2551,7 @@
</span><span class="cx">     settings.setShowRepaintCounter(store.getBoolValueForKey(WebPreferencesKey::compositingRepaintCountersVisibleKey()));
</span><span class="cx">     settings.setShowTiledScrollingIndicator(store.getBoolValueForKey(WebPreferencesKey::tiledScrollingIndicatorVisibleKey()));
</span><span class="cx">     settings.setAggressiveTileRetentionEnabled(store.getBoolValueForKey(WebPreferencesKey::aggressiveTileRetentionEnabledKey()));
</span><ins>+    settings.setTemporaryTileCohortRetentionEnabled(store.getBoolValueForKey(WebPreferencesKey::temporaryTileCohortRetentionEnabledKey()));
</ins><span class="cx">     RuntimeEnabledFeatures::sharedFeatures().setCSSRegionsEnabled(store.getBoolValueForKey(WebPreferencesKey::cssRegionsEnabledKey()));
</span><span class="cx">     RuntimeEnabledFeatures::sharedFeatures().setCSSCompositingEnabled(store.getBoolValueForKey(WebPreferencesKey::cssCompositingEnabledKey()));
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span></span></pre></div>
<a id="tagsSafari538263SourceWebKit2WebProcessWebPagemacTiledCoreAnimationDrawingAreamm"></a>
<div class="modfile"><h4>Modified: tags/Safari-538.26.3/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm (166801 => 166802)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-538.26.3/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm        2014-04-04 22:03:22 UTC (rev 166801)
+++ tags/Safari-538.26.3/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm        2014-04-04 22:06:20 UTC (rev 166802)
</span><span class="lines">@@ -260,9 +260,6 @@
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    if (TiledBacking* tiledBacking = mainFrameTiledBacking())
-        tiledBacking-&gt;setAggressivelyRetainsTiles(settings.aggressiveTileRetentionEnabled());
-
</del><span class="cx">     for (PageOverlayLayerMap::iterator it = m_pageOverlayLayers.begin(), end = m_pageOverlayLayers.end(); it != end; ++it) {
</span><span class="cx">         it-&gt;value-&gt;setAcceleratesDrawing(settings.acceleratedDrawingEnabled());
</span><span class="cx">         it-&gt;value-&gt;setShowDebugBorder(settings.showDebugBorders());
</span><span class="lines">@@ -583,9 +580,6 @@
</span><span class="cx">     for (PageOverlayLayerMap::iterator it = m_pageOverlayLayers.begin(), end = m_pageOverlayLayers.end(); it != end; ++it)
</span><span class="cx">         [m_hostingLayer addSublayer:it-&gt;value-&gt;platformLayer()];
</span><span class="cx"> 
</span><del>-    if (TiledBacking* tiledBacking = mainFrameTiledBacking())
-        tiledBacking-&gt;setAggressivelyRetainsTiles(m_webPage-&gt;corePage()-&gt;settings().aggressiveTileRetentionEnabled());
-
</del><span class="cx">     updateDebugInfoLayer(m_webPage-&gt;corePage()-&gt;settings().showTiledScrollingIndicator());
</span><span class="cx"> 
</span><span class="cx">     [CATransaction commit];
</span></span></pre>
</div>
</div>

</body>
</html>