Bug 1465616 - Add failing fixed-position async-zoom reftests. r?botond draft
authorKashav Madan <kshvmdn@gmail.com>
Fri, 03 Aug 2018 14:20:53 -0400
changeset 830113 5bc06f9e584857c04e0bdf7af61882fe613e9fe0
parent 830112 1021f8858ff53c93b718cb2c8f4265dbe99a8f91
push id118813
push userbmo:kshvmdn@gmail.com
push dateSun, 19 Aug 2018 00:42:00 +0000
reviewersbotond
bugs1465616
milestone63.0a1
Bug 1465616 - Add failing fixed-position async-zoom reftests. r?botond When async-zooming, the compositor applies an invalid offset transformation to position:fixed elements, causing them to be positioned incorrectly until a repaint occurs. MozReview-Commit-ID: IZEN1gtpbIA
layout/reftests/async-scrolling/position-fixed-async-zoom-3-ref.html
layout/reftests/async-scrolling/position-fixed-async-zoom-3.html
layout/reftests/async-scrolling/position-fixed-async-zoom-4-ref.html
layout/reftests/async-scrolling/position-fixed-async-zoom-4.html
layout/reftests/async-scrolling/reftest.list
new file mode 100644
--- /dev/null
+++ b/layout/reftests/async-scrolling/position-fixed-async-zoom-3-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta name="viewport" content="width=device-width, initial-scale=2.0">
+  <style>
+    body {
+      height: 3000px;
+      margin: 0;
+      overflow: hidden;
+    }
+    div {
+      position: fixed;
+      top: 20px;
+      right: 20px;
+      height: 100px;
+      width: 100px;
+      background: blue;
+    }
+  </style>
+</head>
+<body>
+  <div></div>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/async-scrolling/position-fixed-async-zoom-3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html reftest-async-scroll
+      reftest-displayport-x="0" reftest-displayport-y="0"
+      reftest-displayport-w="800" reftest-displayport-h="1000"
+      reftest-async-zoom="2.0">
+<head>
+  <style>
+    body {
+      height: 3000px;
+      margin: 0;
+      overflow: hidden;
+    }
+    div {
+      position: fixed;
+      top: 20px;
+      right: 20px;
+      height: 100px;
+      width: 100px;
+      background: blue;
+    }
+  </style>
+</head>
+<body>
+  <div></div>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/async-scrolling/position-fixed-async-zoom-4-ref.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta name="viewport" content="width=device-width, initial-scale=2.0">
+  <style>
+    body {
+      height: 3000px;
+      margin: 0;
+      overflow: hidden;
+    }
+    div {
+      position: fixed;
+      height: 100px;
+      width: 100px;
+    }
+    div.top-left {
+      top: 20px;
+      left: 20px;
+      background: red;
+    }
+    div.top-right {
+      top: 20px;
+      right: 20px;
+      background: blue;
+    }
+    div.bottom-left {
+      bottom: 20px;
+      left: 20px;
+      background: green;
+    }
+    div.bottom-right {
+      bottom: 20px;
+      right: 20px;
+      background: purple;
+    }
+  </style>
+</head>
+<body>
+  <div class="top-left"></div>
+  <div class="top-right"></div>
+  <div class="bottom-left"></div>
+  <div class="bottom-right"></div>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/async-scrolling/position-fixed-async-zoom-4.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html reftest-async-scroll
+      reftest-displayport-x="0" reftest-displayport-y="0"
+      reftest-displayport-w="800" reftest-displayport-h="1000"
+      reftest-async-zoom="2.0">
+<head>
+  <style>
+    body {
+      height: 3000px;
+      margin: 0;
+      overflow: hidden;
+    }
+    div {
+      position: fixed;
+      height: 100px;
+      width: 100px;
+    }
+    div.top-left {
+      top: 20px;
+      left: 20px;
+      background: red;
+    }
+    div.top-right {
+      top: 20px;
+      right: 20px;
+      background: blue;
+    }
+    div.bottom-left {
+      bottom: 20px;
+      left: 20px;
+      background: green;
+    }
+    div.bottom-right {
+      bottom: 20px;
+      right: 20px;
+      background: purple;
+    }
+  </style>
+</head>
+<body>
+  <div class="top-left"></div>
+  <div class="top-right"></div>
+  <div class="bottom-left"></div>
+  <div class="bottom-right"></div>
+</body>
+</html>
--- a/layout/reftests/async-scrolling/reftest.list
+++ b/layout/reftests/async-scrolling/reftest.list
@@ -74,10 +74,12 @@ fuzzy-if(Android,0-2,0-4) skip-if(!async
 default-preferences pref(layers.low-precision-buffer,false)
 skip-if(!asyncPan) == checkerboard-1.html checkerboard-1-ref.html
 skip-if(!asyncPan) == checkerboard-2.html checkerboard-2-ref.html
 skip-if(!asyncPan) == checkerboard-3.html checkerboard-3-ref.html
 default-preferences
 
 skip-if(!Android) pref(apz.allow_zooming,true) == position-fixed-async-zoom-1.html position-fixed-async-zoom-1-ref.html
 skip-if(!Android) pref(apz.allow_zooming,true) == position-fixed-async-zoom-2.html position-fixed-async-zoom-2-ref.html
+fails skip-if(!Android) pref(apz.allow_zooming,true) == position-fixed-async-zoom-3.html position-fixed-async-zoom-3-ref.html
+fails skip-if(!Android) pref(apz.allow_zooming,true) == position-fixed-async-zoom-4.html position-fixed-async-zoom-4-ref.html
 skip-if(!Android) pref(apz.allow_zooming,true) == position-sticky-async-zoom-1.html position-sticky-async-zoom-1-ref.html
 skip-if(!Android) pref(apz.allow_zooming,true) == position-sticky-async-zoom-2.html position-sticky-async-zoom-2-ref.html