Bug 1434747 - Add a reftest for async-scrolling of fixed content inside a CSS filter. r=kats draft
authorBotond Ballo <botond@mozilla.com>
Mon, 29 Jan 2018 18:23:14 -0500
changeset 749730 8afbc717d8e086f7a407eb5f0090f30d62d9638b
parent 748403 117e0c0d1ebe2cf5bdffc3474744add2416fc511
push id97484
push userbballo@mozilla.com
push dateWed, 31 Jan 2018 22:14:29 +0000
reviewerskats
bugs1434747
milestone60.0a1
Bug 1434747 - Add a reftest for async-scrolling of fixed content inside a CSS filter. r=kats The test only passes with WebRender enabled. Passing without WebRender would require implementing CSS filters in the Gecko compositor. MozReview-Commit-ID: HPgxxuj5iJl
layout/reftests/async-scrolling/bg-fixed-in-css-filter-ref.html
layout/reftests/async-scrolling/bg-fixed-in-css-filter.html
layout/reftests/async-scrolling/reftest.list
new file mode 100644
--- /dev/null
+++ b/layout/reftests/async-scrolling/bg-fixed-in-css-filter-ref.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="UTF-8">
+    <title>Fixed background inside blur filter</title>
+    <style>
+        .scrollable {
+            width: 100px;
+            height: 100px;
+            overflow: hidden;
+        }
+        .bg {
+            width: 100px;
+            height: 100px;
+            background-image: url("repeatable-diagonal-gradient.png");
+            background-repeat: no-repeat;
+            background-attachment: fixed;
+        }
+        .blur {
+            filter: blur(10px);
+        }
+    </style>
+</head>
+<body>
+<div class="scrollable">
+    <div class="bg blur"></div>
+</div>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/async-scrolling/bg-fixed-in-css-filter.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html reftest-async-scroll>
+<head>
+    <meta charset="UTF-8">
+    <title>Fixed background inside blur filter</title>
+    <style>
+        .scrollable {
+            width: 100px;
+            height: 100px;
+            overflow: hidden;
+        }
+        .bg {
+            width: 100px;
+            height: 100px;
+            background-image: url("repeatable-diagonal-gradient.png");
+            background-repeat: no-repeat;
+            background-attachment: fixed;
+        }
+        .blur {
+            filter: blur(10px);
+        }
+    </style>
+</head>
+<body>
+<div class="scrollable"
+     reftest-displayport-x="0" reftest-displayport-y="0"
+     reftest-displayport-w="100" reftest-displayport-h="200"
+     reftest-async-scroll-x="0" reftest-async-scroll-y="100">
+    <div class="bg"></div>
+    <div class="bg blur"></div>
+</div>
+</body>
+</html>
--- a/layout/reftests/async-scrolling/reftest.list
+++ b/layout/reftests/async-scrolling/reftest.list
@@ -2,16 +2,18 @@ skip-if(!asyncPan) == bg-fixed-1.html bg
 skip-if(!asyncPan) == bg-fixed-cover-1.html bg-fixed-cover-1-ref.html
 skip-if(!asyncPan) == bg-fixed-cover-2.html bg-fixed-cover-2-ref.html
 skip-if(!asyncPan) == bg-fixed-cover-3.html bg-fixed-cover-3-ref.html
 skip-if(!asyncPan) == bg-fixed-child.html bg-fixed-child-ref.html
 skip-if(!asyncPan) == bg-fixed-child-clip-1.html bg-fixed-child-clip-ref.html
 skip-if(!asyncPan) == bg-fixed-child-clip-2.html bg-fixed-child-clip-ref.html
 fuzzy(1,246) fuzzy-if(skiaContent,2,170) fuzzy-if(browserIsRemote&&d2d,53,187) skip-if(!asyncPan) == bg-fixed-child-mask.html bg-fixed-child-mask-ref.html
 skip-if(!asyncPan) == bg-fixed-in-opacity.html bg-fixed-in-opacity-ref.html
+# Passing the test below without WebRender would require implementing CSS filters in the Gecko compositor.
+fails-if(!webrender) skip-if(!asyncPan) == bg-fixed-in-css-filter.html bg-fixed-in-css-filter-ref.html
 skip-if(!asyncPan) == bg-fixed-child-no-culling-1.html bg-fixed-child-no-culling-1-ref.html
 skip-if(!asyncPan) == bg-fixed-child-no-culling-2.html bg-fixed-child-no-culling-2-ref.html
 skip-if(!asyncPan) == bg-fixed-child-no-culling-3.html bg-fixed-child-no-culling-3-ref.html
 fuzzy-if(Android,2,4000) fuzzy-if(browserIsRemote&&cocoaWidget,2,179524) fuzzy-if(browserIsRemote&&winWidget,1,74590) fuzzy-if(gtkWidget&&layersGPUAccelerated,1,3528) skip-if(!asyncPan) == bg-fixed-transformed-image.html bg-fixed-transformed-image-ref.html
 skip-if(!asyncPan) == element-1.html element-1-ref.html
 pref(layers.force-active,true) skip-if(!asyncPan) == iframe-1.html iframe-1-ref.html
 skip-if(!asyncPan) == nested-1.html nested-1-ref.html
 skip-if(!asyncPan) == nested-2.html nested-2-ref.html