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
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