Bug 1403559 - Remove random-if(webrender) annotations for layers-specific reftests and instead skip the layers checks in the reftest harness. r=mstange
MozReview-Commit-ID: 8Xtx3aGIx8
--- a/layout/reftests/async-scrolling/reftest.list
+++ b/layout/reftests/async-scrolling/reftest.list
@@ -43,18 +43,18 @@ fuzzy-if(Android,6,4) skip-if(!asyncPan)
fuzzy-if(Android,6,4) skip == offscreen-clipped-blendmode-3.html offscreen-clipped-blendmode-ref.html # bug 1251588 - wrong AGR on mix-blend-mode item
fuzzy-if(Android,6,4) skip-if(!asyncPan) == offscreen-clipped-blendmode-4.html offscreen-clipped-blendmode-ref.html
fuzzy-if(Android,7,4) skip-if(!asyncPan) == perspective-scrolling-1.html perspective-scrolling-1-ref.html
fuzzy-if(Android,7,4) skip-if(!asyncPan) == perspective-scrolling-2.html perspective-scrolling-2-ref.html
fuzzy-if(Android,7,4) fails-if(webrender) skip-if(!asyncPan) == perspective-scrolling-3.html perspective-scrolling-3-ref.html # bug 1361720 for webrender
fuzzy-if(Android,7,4) skip-if(!asyncPan) == perspective-scrolling-4.html perspective-scrolling-4-ref.html
pref(apz.disable_for_scroll_linked_effects,true) skip-if(!asyncPan) == disable-apz-for-sle-pages.html disable-apz-for-sle-pages-ref.html
fuzzy-if(browserIsRemote&&d2d,1,19) skip-if(!asyncPan) == background-blend-mode-1.html background-blend-mode-1-ref.html
-random-if(webrender) skip-if(Android||!asyncPan) != opaque-fractional-displayport-1.html about:blank # test is specific to "layers" and not valid with webrender
-random-if(webrender) skip-if(Android||!asyncPan) != opaque-fractional-displayport-2.html about:blank # test is specific to "layers" and not valid with webrender
+skip-if(Android||!asyncPan) != opaque-fractional-displayport-1.html about:blank
+skip-if(Android||!asyncPan) != opaque-fractional-displayport-2.html about:blank
fuzzy-if(Android,6,4) fails-if(webrender) skip-if(!asyncPan) == fixed-pos-scrolled-clip-1.html fixed-pos-scrolled-clip-1-ref.html # bug 1373802 for webrender
fuzzy-if(Android,6,8) fails-if(webrender) skip-if(!asyncPan) == fixed-pos-scrolled-clip-2.html fixed-pos-scrolled-clip-2-ref.html # bug 1373802 for webrender
fuzzy-if(Android,6,8) fails-if(webrender) skip-if(!asyncPan) == fixed-pos-scrolled-clip-3.html fixed-pos-scrolled-clip-3-ref.html # bug 1373802 for webrender
fuzzy-if(Android,6,8) fails-if(webrender) skip-if(!asyncPan) == fixed-pos-scrolled-clip-4.html fixed-pos-scrolled-clip-4-ref.html # bug 1373802 for webrender
fuzzy-if(Android,6,4) skip-if(!asyncPan) == position-sticky-scrolled-clip-1.html position-sticky-scrolled-clip-1-ref.html
fuzzy-if(Android,6,4) skip == position-sticky-scrolled-clip-2.html position-sticky-scrolled-clip-2-ref.html # bug ?????? - incorrectly applying clip to sticky contents
# for the following tests, we want to disable the low-precision buffer
--- a/layout/reftests/css-animations/reftest.list
+++ b/layout/reftests/css-animations/reftest.list
@@ -32,20 +32,20 @@ test-pref(layers.offmainthreadcompositio
== stacking-context-transform-none-animation-with-backface-visibility.html stacking-context-animation-ref.html
== stacking-context-transform-none-animation-with-preserve-3d.html stacking-context-animation-ref.html
== stacking-context-transform-none-with-fill-backwards.html stacking-context-animation-ref.html
== stacking-context-transform-none-with-fill-forwards.html stacking-context-animation-ref.html
== stacking-context-opacity-1-in-delay.html stacking-context-animation-ref.html
== stacking-context-opacity-removing-important-in-delay.html stacking-context-animation-ref.html
== stacking-context-transform-none-in-delay.html stacking-context-animation-ref.html
== stacking-context-transform-removing-important-in-delay.html stacking-context-animation-ref.html
-fails == background-position-in-delay.html background-position-ref.html # This test fails the reftest-opaque-layer check since animating background-position currently creates an active layer from its delay phse, and reftest-opaque-layer only handles items assigned to PaintedLayers.
-fails-if(webrender) == background-position-after-finish.html background-position-ref.html
-fails == background-position-running.html background-position-ref.html # This test fails the reftest-opaque-layer check since animating background-position currently creates an active layer, and reftest-opaque-layer only handles items assigned to PaintedLayers.
-fails == background-position-important.html background-position-ref.html # This test fails the reftest-opaque-layer check since animating background-position overridden by a non-animated !important style also creates an active layer, and reftest-opaque-layer only handles items that are assigned to PaintedLayers.
+fails-if(layerChecksEnabled) == background-position-in-delay.html background-position-ref.html # This test fails the reftest-opaque-layer check since animating background-position currently creates an active layer from its delay phse, and reftest-opaque-layer only handles items assigned to PaintedLayers.
+== background-position-after-finish.html background-position-ref.html
+fails-if(layerChecksEnabled) == background-position-running.html background-position-ref.html # This test fails the reftest-opaque-layer check since animating background-position currently creates an active layer, and reftest-opaque-layer only handles items assigned to PaintedLayers.
+fails-if(layerChecksEnabled) == background-position-important.html background-position-ref.html # This test fails the reftest-opaque-layer check since animating background-position overridden by a non-animated !important style also creates an active layer, and reftest-opaque-layer only handles items that are assigned to PaintedLayers.
== mask-position-after-finish-1a.html mask-anim-ref.html
== mask-position-after-finish-1b.html mask-anim-ref.html
== mask-position-in-delay-1a.html mask-anim-ref.html
== mask-position-in-delay-1b.html mask-anim-ref.html
== mask-size-after-finish-1a.html mask-anim-ref.html
== mask-size-after-finish-1b.html mask-anim-ref.html
== mask-size-in-delay-1a.html mask-anim-ref.html
--- a/layout/reftests/invalidation/reftest.list
+++ b/layout/reftests/invalidation/reftest.list
@@ -38,44 +38,41 @@ pref(layout.animated-image-layers.enable
== filter-userspace-offset.svg?offsetContainer=foreignObject&mask=boundingBox filter-userspace-offset.svg
== filter-userspace-offset.svg?offsetContainer=rect&mask=userSpace-at100 filter-userspace-offset.svg
== filter-userspace-offset.svg?offsetContainer=use&mask=userSpace-atZero filter-userspace-offset.svg
== filter-userspace-offset.svg?offsetContainer=innerSVG&mask=userSpace-atZero filter-userspace-offset.svg
== filter-userspace-offset.svg?offsetContainer=foreignObject&mask=userSpace-at100 filter-userspace-offset.svg
== filter-userspace-offset.svg?offsetContainer=rect&filter=matrix-fillPaint-boundingBox filter-userspace-offset.svg
== filter-userspace-offset.svg?offsetContainer=rect&filter=matrix-fillPaint-userSpace-at100 filter-userspace-offset.svg
-# All the tests marked with random-if(webrender) are specific to "layers" and therefore not really valid with WebRender enabled.
-# We are marking them random-if so that we ensure they don't crash, but allow any non-crash result.
-
fails-if(webrender) != scroll-inactive-layers.html about:blank
fails-if(webrender) != scroll-inactive-layers-2.html about:blank
!= inactive-layertree-visible-region-1.html about:blank
!= inactive-layertree-visible-region-2.html about:blank
!= transform-floating-point-invalidation.html about:blank
!= transform-floating-point-invalidation.html?reverse about:blank
!= nudge-to-integer-invalidation.html about:blank
!= nudge-to-integer-invalidation.html?reverse about:blank
!= clipped-animated-transform-1.html about:blank
-random-if(webrender) != paintedlayer-recycling-1.html about:blank
-random-if(webrender) != paintedlayer-recycling-2.html about:blank
-pref(layers.single-tile.enabled,false) random-if(webrender) != paintedlayer-recycling-3.html about:blank
-random-if(webrender) != paintedlayer-recycling-4.html about:blank
-random-if(webrender) != paintedlayer-recycling-5.html about:blank
-random-if(webrender) != paintedlayer-recycling-6.html about:blank
-random-if(webrender) != paintedlayer-recycling-7.html about:blank
+!= paintedlayer-recycling-1.html about:blank
+!= paintedlayer-recycling-2.html about:blank
+pref(layers.single-tile.enabled,false) != paintedlayer-recycling-3.html about:blank
+!= paintedlayer-recycling-4.html about:blank
+!= paintedlayer-recycling-5.html about:blank
+!= paintedlayer-recycling-6.html about:blank
+!= paintedlayer-recycling-7.html about:blank
!= masklayer-1.html about:blank
!= masklayer-2.html about:blank
-random-if(webrender) != layer-splitting-1.html about:blank
-random-if(webrender) != layer-splitting-2.html about:blank
-random-if(webrender) != layer-splitting-3.html about:blank
-random-if(webrender) != layer-splitting-4.html about:blank
-random-if(webrender) != layer-splitting-5.html about:blank
-random-if(webrender) != layer-splitting-6.html about:blank
-random-if(webrender) != layer-splitting-7.html about:blank
+!= layer-splitting-1.html about:blank
+!= layer-splitting-2.html about:blank
+!= layer-splitting-3.html about:blank
+!= layer-splitting-4.html about:blank
+!= layer-splitting-5.html about:blank
+!= layer-splitting-6.html about:blank
+!= layer-splitting-7.html about:blank
fuzzy-if(gtkWidget,2,4) fuzzy-if(asyncPan,2,3955) fuzzy-if(OSX,179,30) fuzzy-if(skiaContent,16,3230) == image-scrolling-zoom-1.html image-scrolling-zoom-1-ref.html
!= image-scrolling-zoom-1-ref.html image-scrolling-zoom-1-notref.html
pref(layers.single-tile.enabled,false) != fast-scrolling.html about:blank
== background-position-1.html background-position-1-ref.html
== background-position-2a.html background-position-2-ref.html
== background-position-2b.html background-position-2-ref.html
== background-position-2c.html background-position-2-ref.html
== background-position-2d.html background-position-2-ref.html
--- a/layout/reftests/layers/reftest.list
+++ b/layout/reftests/layers/reftest.list
@@ -1,44 +1,38 @@
== move-to-background-1.html move-to-background-1-ref.html
fuzzy-if(cocoaWidget,2,6) random-if(Android) == component-alpha-exit-1.html component-alpha-exit-1-ref.html # bug 760275
-# The pull-background-* tests are specific to "layers" and are not valid with WebRender.
-# We mark them random-if to make sure they don't crash, but allow any result.
-random-if(webrender) != pull-background-1.html about:blank
-random-if(webrender) skip-if(styloVsGecko) != pull-background-2.html about:blank # skip styloVsGecko for imperceptible pixel rounding differences between Stylo and Gecko
-random-if(webrender) != pull-background-3.html about:blank
-random-if(webrender) != pull-background-4.html about:blank
-random-if(webrender) fuzzy-if(styloVsGecko,1,1) != pull-background-5.html about:blank
-random-if(webrender) != pull-background-6.html about:blank
+!= pull-background-1.html about:blank
+skip-if(styloVsGecko) != pull-background-2.html about:blank # skip styloVsGecko for imperceptible pixel rounding differences between Stylo and Gecko
+!= pull-background-3.html about:blank
+!= pull-background-4.html about:blank
+fuzzy-if(styloVsGecko,1,1) != pull-background-5.html about:blank
+!= pull-background-6.html about:blank
# The animated-position tests are disabled for intermittent failures / passes, bug 1150941
skip != pull-background-animated-position-1.html about:blank # Fails with event regions
skip != pull-background-animated-position-2.html about:blank
skip != pull-background-animated-position-3.html about:blank # Fails because PaintedLayer item assignment doesn't recognize overflow:hidden clips
skip != pull-background-animated-position-4.html about:blank # Fails because PaintedLayer item assignment and background pulling don't recognize overflow:hidden clips
skip != pull-background-animated-position-5.html about:blank # Fails because ownLayer bounds don't anticipate changes of animated contents, but doesn't fail with event regions
-# The pull-background-displayport-* tests are specific to "layers" and are not valid with webrender.
-# We mark them random-if to make sure they don't crash, but allow any result.
-random-if(webrender) skip-if(!asyncPan) != pull-background-displayport-1.html about:blank
-random-if(webrender) skip-if(!asyncPan) skip-if(styloVsGecko) != pull-background-displayport-2.html about:blank # skip styloVsGecko for imperceptible pixel rounding differences between Stylo and Gecko
-random-if(webrender) skip-if(!asyncPan) != pull-background-displayport-3.html about:blank # fails with non-overlay scrollbars and event regions due to bug 1148515
-random-if(webrender) skip-if(!asyncPan) != pull-background-displayport-4.html about:blank # fails with non-overlay scrollbars and event regions due to bug 1148515
-random-if(webrender) skip-if(!asyncPan) fuzzy-if(styloVsGecko,1,1) != pull-background-displayport-5.html about:blank
-random-if(webrender) skip-if(!asyncPan) != pull-background-displayport-6.html about:blank # fails with non-overlay scrollbars and event regions due to bug 1148515
+skip-if(!asyncPan) != pull-background-displayport-1.html about:blank
+skip-if(!asyncPan) skip-if(styloVsGecko) != pull-background-displayport-2.html about:blank # skip styloVsGecko for imperceptible pixel rounding differences between Stylo and Gecko
+skip-if(!asyncPan) != pull-background-displayport-3.html about:blank # fails with non-overlay scrollbars and event regions due to bug 1148515
+skip-if(!asyncPan) != pull-background-displayport-4.html about:blank # fails with non-overlay scrollbars and event regions due to bug 1148515
+skip-if(!asyncPan) fuzzy-if(styloVsGecko,1,1) != pull-background-displayport-5.html about:blank
+skip-if(!asyncPan) != pull-background-displayport-6.html about:blank # fails with non-overlay scrollbars and event regions due to bug 1148515
fuzzy(2,30150) == opacity-blending.html opacity-blending-ref.html
fuzzy(16,5) == mask-layer-transform.html mask-layer-transform-ref.html
fuzzy-if(gtkWidget,1,17) fuzzy-if(Android,3,4) == forced-bg-color-outside-visible-region.html forced-bg-color-outside-visible-region-ref.html
-# The following tests are random-if(webrender) because they are specific to
-# "layers" and are not valid with webrender
-random-if(webrender) != layerize-over-fixed-bg-1.html about:blank
-skip-if(!asyncPan) random-if(webrender) != fixed-pos-scrolled-clip-layerize.html about:blank
-skip-if(!asyncPan) random-if(webrender) == fixed-pos-scrolled-clip-opacity-layerize.html fixed-pos-scrolled-clip-opacity-inside-layerize.html
+!= layerize-over-fixed-bg-1.html about:blank
+skip-if(!asyncPan) != fixed-pos-scrolled-clip-layerize.html about:blank
+skip-if(!asyncPan) == fixed-pos-scrolled-clip-opacity-layerize.html fixed-pos-scrolled-clip-opacity-inside-layerize.html
# These tests check whether the GPU process is working. We expect it to work if:
# E10S is enabled, and
# Direct2D 1.1 works (as a proxy for Windows 7 SP1 + Platform Update or higher), OR
# The GPU process has been forced on.
# If these conditions are met, but the GPU process is not on, these tests will turn on
# and compare false.
skip-if(!browserIsRemote||!d2d||gpuProcess) == data:text/plain,FAIL about:blank
--- a/layout/reftests/reftest-sanity/reftest.list
+++ b/layout/reftests/reftest-sanity/reftest.list
@@ -161,51 +161,47 @@ fuzzy(1,0-2) skip-if(styloVsGecko) != fu
# they are both overfuzzed
# fuzzy(3-4,250000) == fuzzy.html fuzzy-ref.html
# fuzzy(1,250001-250002) == fuzzy.html fuzzy-ref.html
#
# When using 565 fuzzy.html and fuzzy-ref.html will compare as equal
fails fuzzy-if(false,2,1) random-if(Android) == fuzzy.html fuzzy-ref.html
# Test that reftest-no-paint fails correctly.
-# Since this is a "layers"-specific test, we allow any non-crash result with WebRender.
-fails random-if(webrender) == reftest-no-paint.html reftest-no-paint-ref.html
+fails-if(layerChecksEnabled) == reftest-no-paint.html reftest-no-paint-ref.html
skip-if(!asyncPan||!browserIsRemote) == async-scroll-1a.html async-scroll-1-ref.html
# Disable low-res painting for this test as it will cause more to
# be drawn than we want.
default-preferences pref(layers.low-precision-buffer,false)
skip-if(!asyncPan||!browserIsRemote) != async-scroll-1b.html async-scroll-1-ref.html
default-preferences
skip-if(!Android) pref(apz.allow_zooming,true) != async-zoom-1.html async-zoom-1-ref.html
fuzzy(112,800) skip-if(!Android) pref(apz.allow_zooming,true) == async-zoom-2.html async-zoom-2-ref.html
# reftest-opaque-layer
-# Since this is a "layers"-specific test, we allow any non-crash result with WebRender.
-random-if(webrender) == reftest-opaque-layer-pass.html reftest-opaque-layer-pass.html
-random-if(webrender) != reftest-opaque-layer-pass.html about:blank
-random-if(webrender) != about:blank reftest-opaque-layer-pass.html
-fails random-if(webrender) == reftest-opaque-layer-fail.html reftest-opaque-layer-fail.html
+== reftest-opaque-layer-pass.html reftest-opaque-layer-pass.html
+!= reftest-opaque-layer-pass.html about:blank
+!= about:blank reftest-opaque-layer-pass.html
+fails-if(layerChecksEnabled) == reftest-opaque-layer-fail.html reftest-opaque-layer-fail.html
# If reftest-opaque-layer fails (no matter whether it fails in the test or in the reference),
# it shouldn't matter whether the test matches the reference.
-# Since this is a "layers"-specific test, we allow any non-crash result with WebRender.
-fails random-if(webrender) != reftest-opaque-layer-fail.html reftest-opaque-layer-fail.html
-fails random-if(webrender) == reftest-opaque-layer-fail.html about:blank
-fails random-if(webrender) == about:blank reftest-opaque-layer-fail.html
-fails random-if(webrender) != reftest-opaque-layer-fail.html about:blank
-fails random-if(webrender) != about:blank reftest-opaque-layer-fail.html
+fails != reftest-opaque-layer-fail.html reftest-opaque-layer-fail.html
+fails == reftest-opaque-layer-fail.html about:blank
+fails == about:blank reftest-opaque-layer-fail.html
+fails-if(layerChecksEnabled) != reftest-opaque-layer-fail.html about:blank
+fails-if(layerChecksEnabled) != about:blank reftest-opaque-layer-fail.html
# reftest-opaque-layer and reftest-wait
-# Since this is a "layers"-specific test, we allow any non-crash result with WebRender.
-random-if(webrender) == reftest-opaque-layer-wait-pass.html reftest-opaque-layer-pass.html
-random-if(webrender) != reftest-opaque-layer-wait-pass.html about:blank
-fails random-if(webrender) == reftest-opaque-layer-wait-fail.html reftest-opaque-layer-fail.html
-fails random-if(webrender) != reftest-opaque-layer-wait-fail.html about:blank
+== reftest-opaque-layer-wait-pass.html reftest-opaque-layer-pass.html
+!= reftest-opaque-layer-wait-pass.html about:blank
+fails-if(layerChecksEnabled) == reftest-opaque-layer-wait-fail.html reftest-opaque-layer-fail.html
+fails-if(layerChecksEnabled) != reftest-opaque-layer-wait-fail.html about:blank
# reftest-assigned-layer
-random-if(webrender) != reftest-assigned-layer-pass.html about:blank
-fails random-if(webrender) != reftest-assigned-layer-fail-1.html about:blank
-fails random-if(webrender) != reftest-assigned-layer-fail-2.html about:blank
-fails random-if(webrender) != reftest-assigned-layer-fail-3.html about:blank
-fails random-if(webrender) != reftest-assigned-layer-fail-4.html about:blank
+!= reftest-assigned-layer-pass.html about:blank
+fails-if(layerChecksEnabled) != reftest-assigned-layer-fail-1.html about:blank
+fails-if(layerChecksEnabled) != reftest-assigned-layer-fail-2.html about:blank
+fails-if(layerChecksEnabled) != reftest-assigned-layer-fail-3.html about:blank
+fails-if(layerChecksEnabled) != reftest-assigned-layer-fail-4.html about:blank
--- a/layout/tools/reftest/reftest-content.js
+++ b/layout/tools/reftest/reftest-content.js
@@ -843,16 +843,21 @@ function OnDocumentLoad(event)
}
}
function CheckLayerAssertions(contentRootElement)
{
if (!contentRootElement) {
return;
}
+ if (gIsWebRenderEnabled) {
+ // WebRender doesn't use layers, so let's not try checking layers
+ // assertions.
+ return;
+ }
var opaqueLayerElements = getOpaqueLayerElements(contentRootElement);
for (var i = 0; i < opaqueLayerElements.length; ++i) {
var elem = opaqueLayerElements[i];
try {
if (!windowUtils().isPartOfOpaqueLayer(elem)) {
SendFailedOpaqueLayer(elementDescription(elem) + ' is not part of an opaque layer');
}
--- a/layout/tools/reftest/reftest.jsm
+++ b/layout/tools/reftest/reftest.jsm
@@ -722,16 +722,17 @@ function BuildConditionSandbox(aURL) {
sandbox.layersOpenGL =
gWindowUtils.layerManagerType == "OpenGL";
sandbox.webrender =
gWindowUtils.layerManagerType == "WebRender";
sandbox.layersOMTC =
gWindowUtils.layerManagerRemote == true;
sandbox.advancedLayers =
gWindowUtils.usingAdvancedLayers == true;
+ sandbox.layerChecksEnabled = !sandbox.webrender;
// Shortcuts for widget toolkits.
sandbox.Android = xr.OS == "Android";
sandbox.cocoaWidget = xr.widgetToolkit == "cocoa";
sandbox.gtkWidget = xr.widgetToolkit == "gtk2"
|| xr.widgetToolkit == "gtk3";
sandbox.qtWidget = xr.widgetToolkit == "qt";
sandbox.winWidget = xr.widgetToolkit == "windows";