<!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 <lforschler@apple.com>
+
+ Merge r166516
+
+ 2014-03-31 Tim Horton <timothy_horton@apple.com>
+
+ [iOS WebKit2] Disable tile cohort retention for now
+ https://bugs.webkit.org/show_bug.cgi?id=130926
+ <rdar://problem/16465413>
+
+ 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 <lforschler@apple.com>
</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, &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->mainFrame().view())
</span><span class="cx"> m_page->mainFrame().view()->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()->contentsScaleMultiplierForNewTiles(this) : 1;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+bool GraphicsLayerCA::platformCALayerShouldAggressivelyRetainTiles(PlatformCALayer*) const
+{
+ if (GraphicsLayerClient* layerClient = client())
+ return layerClient->shouldAggressivelyRetainTiles(this);
+ return false;
+}
+
+bool GraphicsLayerCA::platformCALayerShouldTemporarilyRetainTileCohorts(PlatformCALayer*) const
+{
+ if (GraphicsLayerClient* layerClient = client())
+ return layerClient->shouldTemporarilyRetainTileCohorts(this);
+ return true;
+}
+
</ins><span class="cx"> void GraphicsLayerCA::commitLayerChangesBeforeSublayers(CommitState& commitState, float pageScaleFactor, const FloatPoint& positionRelativeToBase, const FloatRect& 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()->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()->platformCALayerShouldAggressivelyRetainTiles(m_tileCacheLayer)) {
+ if (owningGraphicsLayer()->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 && tileInfo.cohort != VisibleTileCohort && newestCohort > oldestCohort) {
</del><ins>+ if (!owningGraphicsLayer()->platformCALayerShouldAggressivelyRetainTiles(m_tileCacheLayer) && tileInfo.cohort != VisibleTileCohort && newestCohort > oldestCohort) {
</ins><span class="cx"> float cohortProportion = static_cast<float>((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->settings().aggressiveTileRetentionEnabled();
+ return false;
+}
+
+bool RenderLayerBacking::shouldTemporarilyRetainTileCohorts(const GraphicsLayer*) const
+{
+ if (Page* page = renderer().frame().page())
+ return page->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 <lforschler@apple.com>
+
+ Merge r166516
+
+ 2014-03-31 Tim Horton <timothy_horton@apple.com>
+
+ [iOS WebKit2] Disable tile cohort retention for now
+ https://bugs.webkit.org/show_bug.cgi?id=130926
+ <rdar://problem/16465413>
+
+ 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 <lforschler@apple.com>
</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) && !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->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->value->setAcceleratesDrawing(settings.acceleratedDrawingEnabled());
</span><span class="cx"> it->value->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->value->platformLayer()];
</span><span class="cx">
</span><del>- if (TiledBacking* tiledBacking = mainFrameTiledBacking())
- tiledBacking->setAggressivelyRetainsTiles(m_webPage->corePage()->settings().aggressiveTileRetentionEnabled());
-
</del><span class="cx"> updateDebugInfoLayer(m_webPage->corePage()->settings().showTiledScrollingIndicator());
</span><span class="cx">
</span><span class="cx"> [CATransaction commit];
</span></span></pre>
</div>
</div>
</body>
</html>