Diff
Modified: trunk/LayoutTests/ChangeLog (224795 => 224796)
--- trunk/LayoutTests/ChangeLog 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/LayoutTests/ChangeLog 2017-11-14 02:01:40 UTC (rev 224796)
@@ -1,3 +1,20 @@
+2017-11-13 Simon Fraser <[email protected]>
+
+ When navigating back to a page, compositing layers may not use accelerated drawing
+ https://bugs.webkit.org/show_bug.cgi?id=178749
+ rdar://problem/35158946
+
+ Reviewed by Dean Jackson.
+
+ Moved iframes/resources/page-cache-helper.html up to compositing/resources/go-back.html.
+
+ * compositing/accelerated-layers-after-back-expected.txt: Added.
+ * compositing/accelerated-layers-after-back.html: Added.
+ * compositing/iframes/page-cache-layer-tree.html:
+ * compositing/page-cache-back-crash.html:
+ * compositing/resources/go-back.html: Renamed from LayoutTests/compositing/iframes/resources/page-cache-helper.html.
+ * platform/ios/compositing/accelerated-layers-after-back-expected.txt: Added.
+
2017-11-13 Ryan Haddad <[email protected]>
Disable two Modern EME LayoutTests on mac-wk1 until the feature is enabled in DumpRenderTree.
Added: trunk/LayoutTests/compositing/accelerated-layers-after-back-expected.txt (0 => 224796)
--- trunk/LayoutTests/compositing/accelerated-layers-after-back-expected.txt (rev 0)
+++ trunk/LayoutTests/compositing/accelerated-layers-after-back-expected.txt 2017-11-14 02:01:40 UTC (rev 224796)
@@ -0,0 +1,45 @@
+This layer should use 'acceleratesDrawing' after going back to this page.
+
+Before:
+
+(GraphicsLayer
+ (anchor 0.00 0.00)
+ (bounds 800.00 600.00)
+ (children 1
+ (GraphicsLayer
+ (bounds 800.00 600.00)
+ (contentsOpaque 1)
+ (acceleratesDrawing 1)
+ (children 1
+ (GraphicsLayer
+ (position 18.00 10.00)
+ (bounds 222.00 222.00)
+ (drawsContent 1)
+ (acceleratesDrawing 1)
+ )
+ )
+ )
+ )
+)
+After:
+
+(GraphicsLayer
+ (anchor 0.00 0.00)
+ (bounds 785.00 653.00)
+ (children 1
+ (GraphicsLayer
+ (bounds 785.00 653.00)
+ (contentsOpaque 1)
+ (acceleratesDrawing 1)
+ (children 1
+ (GraphicsLayer
+ (position 18.00 10.00)
+ (bounds 222.00 222.00)
+ (drawsContent 1)
+ (acceleratesDrawing 1)
+ )
+ )
+ )
+ )
+)
+
Added: trunk/LayoutTests/compositing/accelerated-layers-after-back.html (0 => 224796)
--- trunk/LayoutTests/compositing/accelerated-layers-after-back.html (rev 0)
+++ trunk/LayoutTests/compositing/accelerated-layers-after-back.html 2017-11-14 02:01:40 UTC (rev 224796)
@@ -0,0 +1,67 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ useAcceleratedDrawing=true ] -->
+
+<html>
+<head>
+ <style>
+ .container {
+ position: relative;
+ height: 200px;
+ width: 200px;
+ margin: 10px;
+ padding: 10px;
+ border: 1px solid black;
+ will-change: transform;
+ }
+ </style>
+ <script>
+ var jsTestIsAsync = true;
+
+ if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+ window.testRunner.overridePreference("WebKitUsesPageCachePreferenceKey", 1);
+ }
+
+ function doOnFirstLoad()
+ {
+ if (window.internals)
+ document.getElementById('layers-before-navigate').innerText = internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_ACCELERATES_DRAWING);
+
+ setTimeout(function() {
+ window.location.href = '';
+ }, 0);
+ }
+
+ function doAfterBack()
+ {
+ if (window.internals)
+ document.getElementById('layers-after-back').innerText = internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_ACCELERATES_DRAWING);
+
+ if (window.testRunner)
+ testRunner.notifyDone();
+ }
+
+ window.addEventListener("pageshow", function(event) {
+ if (event.persisted)
+ setTimeout(doAfterBack, 0);
+ }, false);
+
+ function doTest()
+ {
+ doOnFirstLoad();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+<body>
+<div class="container">
+ <p>This layer should use 'acceleratesDrawing' after going back to this page.</p>
+</div>
+<h2>Before:</h2>
+<pre id="layers-before-navigate"></pre>
+<h2>After:</h2>
+<pre id="layers-after-back"></pre>
+
+</body>
+</html>
Modified: trunk/LayoutTests/compositing/iframes/page-cache-layer-tree.html (224795 => 224796)
--- trunk/LayoutTests/compositing/iframes/page-cache-layer-tree.html 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/LayoutTests/compositing/iframes/page-cache-layer-tree.html 2017-11-14 02:01:40 UTC (rev 224796)
@@ -73,7 +73,7 @@
// Force a back navigation back to this page.
window.addEventListener("load", function(event) {
setTimeout(function() {
- window.location.href = ""
+ window.location.href = ""
}, 0);
}, false);
</script>
Deleted: trunk/LayoutTests/compositing/iframes/resources/page-cache-helper.html (224795 => 224796)
--- trunk/LayoutTests/compositing/iframes/resources/page-cache-helper.html 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/LayoutTests/compositing/iframes/resources/page-cache-helper.html 2017-11-14 02:01:40 UTC (rev 224796)
@@ -1,8 +0,0 @@
-This page should go back.
-<script>
- window.addEventListener("load", function() {
- setTimeout(function() {
- history.back();
- }, 0);
- }, false);
-</script>
Modified: trunk/LayoutTests/compositing/page-cache-back-crash.html (224795 => 224796)
--- trunk/LayoutTests/compositing/page-cache-back-crash.html 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/LayoutTests/compositing/page-cache-back-crash.html 2017-11-14 02:01:40 UTC (rev 224796)
@@ -19,7 +19,7 @@
window.addEventListener("load", function() {
setTimeout(function() {
// Navigate to a helper page that will immediately navigate back here after loading.
- window.location.href = ""
+ window.location.href = ""
}, 0);
});
</script>
Copied: trunk/LayoutTests/compositing/resources/go-back.html (from rev 224795, trunk/LayoutTests/compositing/iframes/resources/page-cache-helper.html) (0 => 224796)
--- trunk/LayoutTests/compositing/resources/go-back.html (rev 0)
+++ trunk/LayoutTests/compositing/resources/go-back.html 2017-11-14 02:01:40 UTC (rev 224796)
@@ -0,0 +1,8 @@
+This page should go back.
+<script>
+ window.addEventListener("load", function() {
+ setTimeout(function() {
+ history.back();
+ }, 0);
+ }, false);
+</script>
Modified: trunk/LayoutTests/compositing/tiling/tiled-drawing-async-frame-scrolling.html (224795 => 224796)
--- trunk/LayoutTests/compositing/tiling/tiled-drawing-async-frame-scrolling.html 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/LayoutTests/compositing/tiling/tiled-drawing-async-frame-scrolling.html 2017-11-14 02:01:40 UTC (rev 224796)
@@ -9,7 +9,7 @@
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
- }
+ }
function doTest()
{
Added: trunk/LayoutTests/platform/ios/compositing/accelerated-layers-after-back-expected.txt (0 => 224796)
--- trunk/LayoutTests/platform/ios/compositing/accelerated-layers-after-back-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/ios/compositing/accelerated-layers-after-back-expected.txt 2017-11-14 02:01:40 UTC (rev 224796)
@@ -0,0 +1,45 @@
+This layer should use 'acceleratesDrawing' after going back to this page.
+
+Before:
+
+(GraphicsLayer
+ (anchor 0.00 0.00)
+ (bounds 800.00 600.00)
+ (children 1
+ (GraphicsLayer
+ (bounds 800.00 600.00)
+ (contentsOpaque 1)
+ (acceleratesDrawing 1)
+ (children 1
+ (GraphicsLayer
+ (position 18.00 10.00)
+ (bounds 222.00 222.00)
+ (drawsContent 1)
+ (acceleratesDrawing 1)
+ )
+ )
+ )
+ )
+)
+After:
+
+(GraphicsLayer
+ (anchor 0.00 0.00)
+ (bounds 800.00 638.00)
+ (children 1
+ (GraphicsLayer
+ (bounds 800.00 638.00)
+ (contentsOpaque 1)
+ (acceleratesDrawing 1)
+ (children 1
+ (GraphicsLayer
+ (position 18.00 10.00)
+ (bounds 222.00 222.00)
+ (drawsContent 1)
+ (acceleratesDrawing 1)
+ )
+ )
+ )
+ )
+)
+
Modified: trunk/Source/WebCore/ChangeLog (224795 => 224796)
--- trunk/Source/WebCore/ChangeLog 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/Source/WebCore/ChangeLog 2017-11-14 02:01:40 UTC (rev 224796)
@@ -1,3 +1,38 @@
+2017-11-13 Simon Fraser <[email protected]>
+
+ When navigating back to a page, compositing layers may not use accelerated drawing
+ https://bugs.webkit.org/show_bug.cgi?id=178749
+ rdar://problem/35158946
+
+ Reviewed by Dean Jackson.
+
+ There were two issues with setting GraphicsLayerCA's "acceleratesDrawing" state which
+ occurred on back navigation, related to the ordering of style recalcs and layout.
+
+ First, at style recalc time, we created a RenderLayerCompositor but hadn't yet called
+ its cacheAcceleratedCompositingFlags(), so any layers created during style update
+ didn't get accelerated drawing. Fix by making cacheAcceleratedCompositingFlags() internal
+ to RenderLayerCompositor and calling it from willRecalcStyle() and updateCompositingLayers().
+
+ We have to be careful to avoid m_forceCompositingMode flip-flopping between cacheAcceleratedCompositingFlags()
+ and cacheAcceleratedCompositingFlagsAfterLayout(), since, for subframes, it depends on layout.
+
+ Secondly, GraphicsLayerCA::commitLayerChangesBeforeSublayers() needs to updateAcceleratesDrawing()
+ before updating tiles, so that new tiles fetch the right acceleratesDrawing state from
+ the TileController.
+
+ Test: compositing/accelerated-layers-after-back.html
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::updateCompositingLayersAfterLayout):
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::willRecalcStyle):
+ (WebCore::RenderLayerCompositor::didRecalcStyleWithNoPendingLayout):
+ (WebCore::RenderLayerCompositor::updateCompositingLayers):
+ * rendering/RenderLayerCompositor.h:
+
2017-11-13 Youenn Fablet <[email protected]>
matchRegistration does not need to go to StorageProcess if no service worker is registered
Modified: trunk/Source/WebCore/page/FrameView.cpp (224795 => 224796)
--- trunk/Source/WebCore/page/FrameView.cpp 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/Source/WebCore/page/FrameView.cpp 2017-11-14 02:01:40 UTC (rev 224796)
@@ -799,8 +799,6 @@
if (!renderView)
return;
- // This call will make sure the cached hasAcceleratedCompositing is updated from the pref
- renderView->compositor().cacheAcceleratedCompositingFlags();
renderView->compositor().updateCompositingLayers(CompositingUpdateType::AfterLayout);
}
Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (224795 => 224796)
--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp 2017-11-14 02:01:40 UTC (rev 224796)
@@ -1758,6 +1758,9 @@
if (m_uncommittedChanges & CoverageRectChanged)
updateCoverage(commitState);
+ if (m_uncommittedChanges & AcceleratesDrawingChanged) // Needs to happen before TilingAreaChanged.
+ updateAcceleratesDrawing();
+
if (m_uncommittedChanges & TilingAreaChanged) // Needs to happen after CoverageRectChanged, ContentsScaleChanged
updateTiles();
@@ -1780,9 +1783,6 @@
if (m_uncommittedChanges & ContentsNeedsDisplay)
updateContentsNeedsDisplay();
- if (m_uncommittedChanges & AcceleratesDrawingChanged)
- updateAcceleratesDrawing();
-
if (m_uncommittedChanges & SupportsSubpixelAntialiasedTextChanged)
updateSupportsSubpixelAntialiasedText();
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (224795 => 224796)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2017-11-14 02:01:40 UTC (rev 224796)
@@ -299,15 +299,8 @@
void RenderLayerCompositor::cacheAcceleratedCompositingFlags()
{
- bool hasAcceleratedCompositing = false;
- bool showDebugBorders = false;
- bool showRepaintCounter = false;
- bool forceCompositingMode = false;
- bool acceleratedDrawingEnabled = false;
- bool displayListDrawingEnabled = false;
-
auto& settings = m_renderView.settings();
- hasAcceleratedCompositing = settings.acceleratedCompositingEnabled();
+ bool hasAcceleratedCompositing = settings.acceleratedCompositingEnabled();
// We allow the chrome to override the settings, in case the page is rendered
// on a chrome that doesn't allow accelerated compositing.
@@ -316,15 +309,15 @@
hasAcceleratedCompositing = m_compositingTriggers;
}
- showDebugBorders = settings.showDebugBorders();
- showRepaintCounter = settings.showRepaintCounter();
- forceCompositingMode = settings.forceCompositingMode() && hasAcceleratedCompositing;
+ bool showDebugBorders = settings.showDebugBorders();
+ bool showRepaintCounter = settings.showRepaintCounter();
+ bool acceleratedDrawingEnabled = settings.acceleratedDrawingEnabled();
+ bool displayListDrawingEnabled = settings.displayListDrawingEnabled();
- if (forceCompositingMode && !isMainFrameCompositor())
- forceCompositingMode = requiresCompositingForScrollableFrame();
-
- acceleratedDrawingEnabled = settings.acceleratedDrawingEnabled();
- displayListDrawingEnabled = settings.displayListDrawingEnabled();
+ // forceCompositingMode for subframes can only be computed after layout.
+ bool forceCompositingMode = m_forceCompositingMode;
+ if (isMainFrameCompositor())
+ forceCompositingMode = m_renderView.settings().forceCompositingMode() && hasAcceleratedCompositing;
if (hasAcceleratedCompositing != m_hasAcceleratedCompositing || showDebugBorders != m_showDebugBorders || showRepaintCounter != m_showRepaintCounter || forceCompositingMode != m_forceCompositingMode)
setCompositingLayersNeedRebuild();
@@ -331,9 +324,9 @@
bool debugBordersChanged = m_showDebugBorders != showDebugBorders;
m_hasAcceleratedCompositing = hasAcceleratedCompositing;
+ m_forceCompositingMode = forceCompositingMode;
m_showDebugBorders = showDebugBorders;
m_showRepaintCounter = showRepaintCounter;
- m_forceCompositingMode = forceCompositingMode;
m_acceleratedDrawingEnabled = acceleratedDrawingEnabled;
m_displayListDrawingEnabled = displayListDrawingEnabled;
@@ -349,6 +342,20 @@
}
}
+void RenderLayerCompositor::cacheAcceleratedCompositingFlagsAfterLayout()
+{
+ cacheAcceleratedCompositingFlags();
+
+ if (isMainFrameCompositor())
+ return;
+
+ bool forceCompositingMode = m_hasAcceleratedCompositing && m_renderView.settings().forceCompositingMode() && requiresCompositingForScrollableFrame();
+ if (forceCompositingMode != m_forceCompositingMode) {
+ m_forceCompositingMode = forceCompositingMode;
+ setCompositingLayersNeedRebuild();
+ }
+}
+
bool RenderLayerCompositor::canRender3DTransforms() const
{
return hasAcceleratedCompositing() && (m_compositingTriggers & ChromeClient::ThreeDTransformTrigger);
@@ -363,6 +370,7 @@
void RenderLayerCompositor::willRecalcStyle()
{
m_layerNeedsCompositingUpdate = false;
+ cacheAcceleratedCompositingFlags();
}
bool RenderLayerCompositor::didRecalcStyleWithNoPendingLayout()
@@ -370,7 +378,6 @@
if (!m_layerNeedsCompositingUpdate)
return false;
- cacheAcceleratedCompositingFlags();
return updateCompositingLayers(CompositingUpdateType::AfterStyleChange);
}
@@ -631,6 +638,9 @@
{
LOG_WITH_STREAM(Compositing, stream << "RenderLayerCompositor " << this << " updateCompositingLayers " << updateType << " root " << updateRoot);
+ if (updateType == CompositingUpdateType::AfterStyleChange || updateType == CompositingUpdateType::AfterLayout)
+ cacheAcceleratedCompositingFlagsAfterLayout(); // Some flags (e.g. forceCompositingMode) depend on layout.
+
m_updateCompositingLayersTimer.stop();
ASSERT(m_renderView.document().pageCacheState() == Document::NotInPageCache);
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.h (224795 => 224796)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.h 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.h 2017-11-14 02:01:40 UTC (rev 224796)
@@ -110,9 +110,6 @@
bool canRender3DTransforms() const;
- // Copy the accelerated compositing related flags from Settings
- void cacheAcceleratedCompositingFlags();
-
// Called when the layer hierarchy needs to be updated (compositing layers have been
// created, destroyed or re-parented).
void setCompositingLayersNeedRebuild(bool needRebuild = true);
@@ -346,6 +343,10 @@
// GraphicsLayerUpdaterClient implementation
void flushLayersSoon(GraphicsLayerUpdater&) override;
+ // Copy the accelerated compositing related flags from Settings
+ void cacheAcceleratedCompositingFlags();
+ void cacheAcceleratedCompositingFlagsAfterLayout();
+
// Whether the given RL needs a compositing layer.
bool needsToBeComposited(const RenderLayer&, RenderLayer::ViewportConstrainedNotCompositedReason* = nullptr) const;
// Whether the layer has an intrinsic need for compositing layer.
Modified: trunk/Source/WebKit/ChangeLog (224795 => 224796)
--- trunk/Source/WebKit/ChangeLog 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/Source/WebKit/ChangeLog 2017-11-14 02:01:40 UTC (rev 224796)
@@ -1,3 +1,17 @@
+2017-11-13 Simon Fraser <[email protected]>
+
+ When navigating back to a page, compositing layers may not use accelerated drawing
+ https://bugs.webkit.org/show_bug.cgi?id=178749
+ rdar://problem/35158946
+
+ Reviewed by Dean Jackson.
+
+ Avoid assertions when a test enables accelerated drawing (which we can't support
+ in the iOS simulator).
+
+ * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
+ (WebKit::RemoteLayerBackingStore::ensureBackingStore):
+
2017-11-13 Youenn Fablet <[email protected]>
matchRegistration does not need to go to StorageProcess if no service worker is registered
Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm (224795 => 224796)
--- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm 2017-11-14 02:01:40 UTC (rev 224796)
@@ -72,6 +72,9 @@
void RemoteLayerBackingStore::ensureBackingStore(FloatSize size, float scale, bool acceleratesDrawing, bool deepColor, bool isOpaque)
{
+#if !USE(IOSURFACE)
+ acceleratesDrawing = false;
+#endif
if (m_size == size && m_scale == scale && m_deepColor == deepColor && m_acceleratesDrawing == acceleratesDrawing && m_isOpaque == isOpaque)
return;
Modified: trunk/Tools/ChangeLog (224795 => 224796)
--- trunk/Tools/ChangeLog 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/Tools/ChangeLog 2017-11-14 02:01:40 UTC (rev 224796)
@@ -1,3 +1,25 @@
+2017-11-13 Simon Fraser <[email protected]>
+
+ When navigating back to a page, compositing layers may not use accelerated drawing
+ https://bugs.webkit.org/show_bug.cgi?id=178749
+ rdar://problem/35158946
+
+ Reviewed by Dean Jackson.
+
+ Fix WTR and DRT to parse "useAcceleratedDrawing" out of "webkit-test-runner" options
+ and use it to set the state of the web view.
+
+ * DumpRenderTree/TestOptions.h:
+ * DumpRenderTree/TestOptions.mm:
+ (TestOptions::TestOptions):
+ * DumpRenderTree/mac/DumpRenderTree.mm:
+ (setWebPreferencesForTestOptions):
+ * WebKitTestRunner/TestController.cpp:
+ (WTR::TestController::resetPreferencesToConsistentValues):
+ (WTR::updateTestOptionsFromTestHeader):
+ * WebKitTestRunner/TestOptions.h:
+ (WTR::TestOptions::hasSameInitializationOptions const):
+
2017-11-13 Basuke Suzuki <[email protected]>
[Windows] Fix Python error for subprocess.popen with close_fds
Modified: trunk/Tools/DumpRenderTree/TestOptions.h (224795 => 224796)
--- trunk/Tools/DumpRenderTree/TestOptions.h 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/Tools/DumpRenderTree/TestOptions.h 2017-11-14 02:01:40 UTC (rev 224796)
@@ -30,6 +30,7 @@
struct TestOptions {
bool enableAttachmentElement { false };
+ bool useAcceleratedDrawing { false };
bool enableIntersectionObserver { false };
bool enableMenuItemElement { false };
bool enableModernMediaControls { true };
Modified: trunk/Tools/DumpRenderTree/TestOptions.mm (224795 => 224796)
--- trunk/Tools/DumpRenderTree/TestOptions.mm 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/Tools/DumpRenderTree/TestOptions.mm 2017-11-14 02:01:40 UTC (rev 224796)
@@ -80,6 +80,8 @@
auto value = pairString.substr(equalsLocation + 1, pairEnd - (equalsLocation + 1));
if (key == "enableAttachmentElement")
this->enableAttachmentElement = parseBooleanTestHeaderValue(value);
+ if (key == "useAcceleratedDrawing")
+ this->useAcceleratedDrawing = parseBooleanTestHeaderValue(value);
else if (key == "enableIntersectionObserver")
this->enableIntersectionObserver = parseBooleanTestHeaderValue(value);
else if (key == "enableMenuItemElement")
Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (224795 => 224796)
--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm 2017-11-14 02:01:40 UTC (rev 224796)
@@ -982,6 +982,7 @@
WebPreferences *preferences = [WebPreferences standardPreferences];
preferences.attachmentElementEnabled = options.enableAttachmentElement;
+ preferences.acceleratedDrawingEnabled = options.useAcceleratedDrawing;
preferences.intersectionObserverEnabled = options.enableIntersectionObserver;
preferences.menuItemElementEnabled = options.enableMenuItemElement;
preferences.modernMediaControlsEnabled = options.enableModernMediaControls;
Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (224795 => 224796)
--- trunk/Tools/WebKitTestRunner/TestController.cpp 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp 2017-11-14 02:01:40 UTC (rev 224796)
@@ -721,7 +721,7 @@
WKPreferencesSetHiddenPageDOMTimerThrottlingEnabled(preferences, false);
WKPreferencesSetHiddenPageCSSAnimationSuspensionEnabled(preferences, false);
- WKPreferencesSetAcceleratedDrawingEnabled(preferences, m_shouldUseAcceleratedDrawing);
+ WKPreferencesSetAcceleratedDrawingEnabled(preferences, m_shouldUseAcceleratedDrawing || options.useAcceleratedDrawing);
// FIXME: We should be testing the default.
WKPreferencesSetStorageBlockingPolicy(preferences, kWKAllowAllStorage);
@@ -1025,6 +1025,8 @@
String(value.c_str()).split(",", false, testOptions.overrideLanguages);
if (key == "useThreadedScrolling")
testOptions.useThreadedScrolling = parseBooleanTestHeaderValue(value);
+ if (key == "useAcceleratedDrawing")
+ testOptions.useAcceleratedDrawing = parseBooleanTestHeaderValue(value);
if (key == "useFlexibleViewport")
testOptions.useFlexibleViewport = parseBooleanTestHeaderValue(value);
if (key == "useDataDetection")
Modified: trunk/Tools/WebKitTestRunner/TestOptions.h (224795 => 224796)
--- trunk/Tools/WebKitTestRunner/TestOptions.h 2017-11-14 00:55:41 UTC (rev 224795)
+++ trunk/Tools/WebKitTestRunner/TestOptions.h 2017-11-14 02:01:40 UTC (rev 224796)
@@ -33,6 +33,7 @@
struct TestOptions {
bool useThreadedScrolling { false };
+ bool useAcceleratedDrawing { false };
bool useRemoteLayerTree { false };
bool shouldShowWebView { false };
bool useFlexibleViewport { false };
@@ -66,6 +67,7 @@
bool hasSameInitializationOptions(const TestOptions& options) const
{
if (useThreadedScrolling != options.useThreadedScrolling
+ || useAcceleratedDrawing != options.useAcceleratedDrawing
|| overrideLanguages != options.overrideLanguages
|| useMockScrollbars != options.useMockScrollbars
|| needsSiteSpecificQuirks != options.needsSiteSpecificQuirks