Bug 1546139 - Add a reftest. r=kats
authorBotond Ballo <botond@mozilla.com>
Thu, 25 Apr 2019 14:25:48 +0000
changeset 530340 11a838d3eab47ea19397d714d22aaf21bdc56d3c
parent 530339 d441eb4ab6012d75af70ff90f3d40fe205c862a3
child 530341 4f70b98aa8705b6906b6bd2a3de66d374addb177
push id11265
push userffxbld-merge
push dateMon, 13 May 2019 10:53:39 +0000
treeherdermozilla-beta@77e0fe8dbdd3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerskats
bugs1546139
milestone68.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1546139 - Add a reftest. r=kats Differential Revision: https://phabricator.services.mozilla.com/D28729
layout/reftests/async-scrolling/dynamic-toolbar-fixed-bottom-1-ref.html
layout/reftests/async-scrolling/dynamic-toolbar-fixed-bottom-1.html
layout/reftests/async-scrolling/reftest.list
new file mode 100644
--- /dev/null
+++ b/layout/reftests/async-scrolling/dynamic-toolbar-fixed-bottom-1-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML>
+<html>
+<meta name="viewport" content="width=device-width">
+<style>
+html {
+    scrollbar-width: none;
+}
+#scrolled {
+    height: 2000px;
+    width: 100%;
+}
+#fixed {
+    width: 100%;
+    height: 200px;
+    position: fixed;
+    bottom: 0;
+    background: red;
+    margin-bottom: 50px;
+}
+</style>
+<body>
+  <div id="scrolled"></div>
+  <div id="fixed"></div>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/async-scrolling/dynamic-toolbar-fixed-bottom-1.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML>
+<!--
+  Tests that setting a fixed bottom margin in AsyncCompositionManager results
+  in the margin being applied to an element fixed to the bottom.
+
+  The fixed margin is specified as a test-pref in reftest.list.
+
+  The purpose of the fixed margin is to compensate for the transform that the
+  dynamic toolbar applies to the entire content area. We don't have a way of
+  simulating that transform in a reftest, so the fixed margin in isolation will
+  cause the fixed element to be offset from the bottom of the screen, and in
+  the ref page we use a regular CSS "margin-bottom" to match the rendering.
+-->
+<html>
+<meta name="viewport" content="width=device-width">
+<style>
+html {
+    scrollbar-width: none;
+}
+#scrolled {
+    height: 2000px;
+    width: 100%;
+}
+#fixed {
+    width: 100%;
+    height: 200px;
+    position: fixed;
+    bottom: 0;
+    background: red;
+}
+</style>
+<body>
+  <div id="scrolled"></div>
+  <div id="fixed"></div>
+</body>
+</html>
--- a/layout/reftests/async-scrolling/reftest.list
+++ b/layout/reftests/async-scrolling/reftest.list
@@ -88,8 +88,12 @@ skip-if(!asyncPan) == checkerboard-3.htm
 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
 skip-if(!Android) pref(apz.allow_zooming,true) == position-fixed-async-zoom-3.html position-fixed-async-zoom-3-ref.html
 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
+
+# for this test, apz.allow_zooming is needed to ensure we take the containerless scrolling codepath that creates
+# an async zoom container (since we are testing a regression in that codepath)
+skip-if(!Android) pref(apz.allow_zooming,true) test-pref(apz.fixed-margin-override.enabled,true) test-pref(apz.fixed-margin-override.bottom,50) == dynamic-toolbar-fixed-bottom-1.html dynamic-toolbar-fixed-bottom-1-ref.html