diff options
Diffstat (limited to 'gfx/layers/apz/test/mochitest/helper_hittest_fixed_in_scrolled_transform.html')
-rw-r--r-- | gfx/layers/apz/test/mochitest/helper_hittest_fixed_in_scrolled_transform.html | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/gfx/layers/apz/test/mochitest/helper_hittest_fixed_in_scrolled_transform.html b/gfx/layers/apz/test/mochitest/helper_hittest_fixed_in_scrolled_transform.html new file mode 100644 index 0000000000..93d1e6064d --- /dev/null +++ b/gfx/layers/apz/test/mochitest/helper_hittest_fixed_in_scrolled_transform.html @@ -0,0 +1,91 @@ +<!DOCTYPE HTML> +<html> +<head> + <title>Hit-testing on the special setup from fixed-pos-scrolled-clip-3.html</title> + <script type="application/javascript" src="apz_test_utils.js"></script> + <script type="application/javascript" src="apz_test_native_event_utils.js"></script> + <script src="/tests/SimpleTest/paint_listener.js"></script> + <meta name="viewport" content="width=device-width"/> +<style> +body { + margin: 0; + height: 4000px; +} + +.transform { + transform: translate(10px, 10px); + width: 500px; +} + +.subframe { + height: 600px; + overflow: auto; + box-shadow: 0 0 0 2px black; +} + +.scrolled { + height: 4000px; + position: relative; +} + +.absoluteClip { + position: absolute; + top: 300px; + left: 100px; + width: 200px; + height: 200px; + background: red; + clip: rect(auto auto auto auto); +} + +.fixed { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: linear-gradient(lime, lime) black 0 100px no-repeat; + background-size: 100% 200px; +} +</style> +</head> +<body> +<!-- This is lifted from layout/reftests/async-scrolling/fixed-pos-scrolled-clip-3.html --> +<div class="transform"> + <div class="subframe"> + <div class="scrolled"> + <div class="absoluteClip"> + <div class="fixed"></div> + </div> + </div> + </div> +</div> +</body> +<script type="application/javascript"> + +async function test() { + var config = getHitTestConfig(); + var utils = config.utils; + + // layerize the scrollable frame + var subframe = document.querySelector(".subframe"); + utils.setDisplayPortForElement(0, 0, 800, 2000, subframe, 1); + await promiseApzFlushedRepaints(); + + var target = document.querySelector(".absoluteClip"); + // The fixed item is fixed with respect to the transform, which is + // outside the subframe, so we should scroll the root scroll frame, + // not the subframe. + checkHitResult(hitTest(centerOf(target)), + APZHitResultFlags.VISIBLE, + utils.getViewId(document.scrollingElement), + utils.getLayersId(), + "fixed item inside a scrolling transform"); +} + +waitUntilApzStable() +.then(test) +.then(subtestDone, subtestFailed); + +</script> +</html> |