mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 21:31:04 +00:00
Backed out 1 changesets (bug 1379458) for causing devtools failures on nsGfxScrollFrame.cpp. CLOSED TREE
Backed out changeset 61a605c335b0 (bug 1379458)
This commit is contained in:
parent
a6e947b231
commit
d0ed38c548
@ -1,88 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>APZ overscroll handoff for fixed elements</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>
|
||||
html, body {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#main {
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#spacer {
|
||||
height: 5000px;
|
||||
}
|
||||
|
||||
#fixed {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
background: red;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#long {
|
||||
height: 250px;
|
||||
width: 50%;
|
||||
position: absolute;
|
||||
background: green;
|
||||
top: 0;
|
||||
left: 25%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="main">
|
||||
<div id="spacer">
|
||||
</div>
|
||||
<div id="fixed">
|
||||
<div id="long">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script type="application/javascript">
|
||||
|
||||
async function test() {
|
||||
// Scroll to the bottom of the fixed position element that should not
|
||||
// allow overscroll handoff.
|
||||
fixed.scrollTop = fixed.scrollHeight;
|
||||
|
||||
// After scrolling to bottom tick the refresh driver.
|
||||
await promiseFrame();
|
||||
|
||||
info("Start: fixed=" + fixed.scrollTop + " main=" + main.scrollTop);
|
||||
|
||||
// Async scroll the fixed element by 200 pixels using the mouse-wheel.
|
||||
// This should not handoff the overscroll.
|
||||
await promiseMoveMouseAndScrollWheelOver(fixed, 50, 50, false, 200);
|
||||
|
||||
// Make sure scrolling that has happened is propagated to the main thread.
|
||||
await promiseApzFlushedRepaints();
|
||||
|
||||
// Try another gesture to ensure the overscroll handoff runs.
|
||||
await promiseMoveMouseAndScrollWheelOver(fixed, 50, 50, false, 200);
|
||||
await promiseApzFlushedRepaints();
|
||||
|
||||
info("After scroll: fixed=" + fixed.scrollTop + " main=" + main.scrollTop);
|
||||
|
||||
// Ensure that the main element has not scrolled.
|
||||
is(main.scrollTop, 0, "The overscroll should not handoff");
|
||||
}
|
||||
|
||||
waitUntilApzStable()
|
||||
.then(test)
|
||||
.then(subtestDone, subtestFailed);
|
||||
|
||||
</script>
|
||||
</html>
|
@ -1,65 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<head>
|
||||
<title>APZ overscroll handoff for fixed elements</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>
|
||||
html, body {
|
||||
margin: 0;
|
||||
}
|
||||
html {
|
||||
overflow: auto;
|
||||
background: blue;
|
||||
}
|
||||
.spacer {
|
||||
height: 2000px;
|
||||
}
|
||||
#fixed {
|
||||
position: fixed;
|
||||
overflow: auto;
|
||||
background: red;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<div id="fixed">
|
||||
<div class="spacer"></div>
|
||||
</div>
|
||||
<div class="spacer"></div>
|
||||
<script type="application/javascript">
|
||||
|
||||
async function test() {
|
||||
// Scroll to the bottom of the fixed position element that should
|
||||
// allow overscroll handoff.
|
||||
fixed.scrollTop = fixed.scrollHeight;
|
||||
|
||||
// After scrolling to bottom tick the refresh driver.
|
||||
await promiseFrame();
|
||||
|
||||
info("Start: fixed=" + fixed.scrollTop + " window=" + window.scrollY);
|
||||
|
||||
// Async scroll the fixed element by 200 pixels using the mouse-wheel.
|
||||
// This should handoff the overscroll to the window.
|
||||
await promiseMoveMouseAndScrollWheelOver(fixed, 50, 50, false, 200);
|
||||
|
||||
// Make sure scrolling that has happened is propagated to the main thread.
|
||||
await promiseApzFlushedRepaints();
|
||||
|
||||
// Try another gesture to ensure the overscroll handoff runs.
|
||||
await promiseMoveMouseAndScrollWheelOver(fixed, 50, 50, false, 200);
|
||||
await promiseApzFlushedRepaints();
|
||||
|
||||
// Ensure that the window has scrolled.
|
||||
isnot(window.scrollY, 0, "The overscroll should not handoff");
|
||||
}
|
||||
|
||||
waitUntilApzStable()
|
||||
.then(test)
|
||||
.then(subtestDone, subtestFailed);
|
||||
|
||||
</script>
|
@ -1,77 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<head>
|
||||
<title>APZ overscroll handoff for fixed elements</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>
|
||||
html, body {
|
||||
margin: 0;
|
||||
}
|
||||
#scrolled {
|
||||
overflow: auto;
|
||||
background: blue;
|
||||
width: 400px;
|
||||
height: 400px;
|
||||
}
|
||||
.spacer {
|
||||
height: 2000px;
|
||||
}
|
||||
#fixed {
|
||||
position: fixed;
|
||||
background: red;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
#subframe {
|
||||
overflow: auto;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<div id="scrolled">
|
||||
<div id="fixed">
|
||||
<div id="subframe">
|
||||
<div id="firstspacer" class="spacer"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="secondspacer" class="spacer"></div>
|
||||
</div>
|
||||
<script type="application/javascript">
|
||||
|
||||
async function test() {
|
||||
// Scroll to the bottom of the fixed position element that should not
|
||||
// allow overscroll handoff.
|
||||
subframe.scrollTop = subframe.scrollHeight;
|
||||
|
||||
// After scrolling to bottom tick the refresh driver.
|
||||
await promiseFrame();
|
||||
|
||||
info("Before scroll: subframe=" + subframe.scrollTop + " scrolled=" +
|
||||
scrolled.scrollTop);
|
||||
|
||||
// Async scroll the fixed element by 200 pixels using the mouse-wheel.
|
||||
// This should not handoff the overscroll.
|
||||
await promiseMoveMouseAndScrollWheelOver(subframe, 50, 50, false, 200);
|
||||
|
||||
// Make sure scrolling that has happened is propagated to the main thread.
|
||||
await promiseApzFlushedRepaints();
|
||||
|
||||
// Try another gesture to ensure the overscroll handoff runs.
|
||||
await promiseMoveMouseAndScrollWheelOver(subframe, 50, 50, false, 200);
|
||||
await promiseApzFlushedRepaints();
|
||||
|
||||
info("After scroll: subframe=" + subframe.scrollTop + " scrolled=" +
|
||||
scrolled.scrollTop);
|
||||
|
||||
// Ensure that the scrolled element has not scrolled.
|
||||
is(scrolled.scrollTop, 0, "scrolled: The overscroll should not handoff");
|
||||
}
|
||||
|
||||
waitUntilApzStable()
|
||||
.then(test)
|
||||
.then(subtestDone, subtestFailed);
|
||||
|
||||
</script>
|
@ -1,79 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<head>
|
||||
<title>APZ overscroll handoff for fixed elements</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>
|
||||
html, body {
|
||||
margin: 0;
|
||||
}
|
||||
#scrolled {
|
||||
overflow: auto;
|
||||
background: blue;
|
||||
width: 400px;
|
||||
height: 400px;
|
||||
}
|
||||
.spacer {
|
||||
height: 2000px;
|
||||
}
|
||||
#fixed {
|
||||
position: fixed;
|
||||
background: red;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
#subframe {
|
||||
overflow: auto;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<div id="scrolled">
|
||||
<div id="fixed">
|
||||
<div>
|
||||
<div id="subframe">
|
||||
<div id="firstspacer" class="spacer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="secondspacer" class="spacer"></div>
|
||||
</div>
|
||||
<script type="application/javascript">
|
||||
|
||||
async function test() {
|
||||
// Scroll to the bottom of the fixed position element that should not
|
||||
// allow overscroll handoff.
|
||||
subframe.scrollTop = subframe.scrollHeight;
|
||||
|
||||
// After scrolling to bottom tick the refresh driver.
|
||||
await promiseFrame();
|
||||
|
||||
info("Before scroll: subframe=" + subframe.scrollTop + " scrolled=" +
|
||||
scrolled.scrollTop);
|
||||
|
||||
// Async scroll the fixed element by 200 pixels using the mouse-wheel.
|
||||
// This should not handoff the overscroll.
|
||||
await promiseMoveMouseAndScrollWheelOver(subframe, 50, 50, false, 200);
|
||||
|
||||
// Make sure scrolling that has happened is propagated to the main thread.
|
||||
await promiseApzFlushedRepaints();
|
||||
|
||||
// Try another gesture to ensure the overscroll handoff runs.
|
||||
await promiseMoveMouseAndScrollWheelOver(subframe, 50, 50, false, 200);
|
||||
await promiseApzFlushedRepaints();
|
||||
|
||||
info("After scroll: subframe=" + subframe.scrollTop + " scrolled=" +
|
||||
scrolled.scrollTop);
|
||||
|
||||
// Ensure that the scrolled element has not scrolled.
|
||||
is(scrolled.scrollTop, 0, "scrolled: The overscroll should not handoff");
|
||||
}
|
||||
|
||||
waitUntilApzStable()
|
||||
.then(test)
|
||||
.then(subtestDone, subtestFailed);
|
||||
|
||||
</script>
|
@ -1,88 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>APZ overscroll handoff for sticky elements</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>
|
||||
html, body {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#main {
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#spacer {
|
||||
height: 5000px;
|
||||
}
|
||||
|
||||
#sticky {
|
||||
position: sticky;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
background: red;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#long {
|
||||
height: 250px;
|
||||
width: 50%;
|
||||
position: absolute;
|
||||
background: green;
|
||||
top: 0;
|
||||
left: 25%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="main">
|
||||
<div id="sticky">
|
||||
<div id="long">
|
||||
</div>
|
||||
</div>
|
||||
<div id="spacer">
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script type="application/javascript">
|
||||
|
||||
async function test() {
|
||||
// Scroll to the bottom of the sticky position element that should not
|
||||
// allow overscroll handoff.
|
||||
sticky.scrollTop = sticky.scrollHeight;
|
||||
|
||||
// After scrolling to bottom tick the refresh driver.
|
||||
await promiseFrame();
|
||||
|
||||
info("Start: sticky=" + sticky.scrollTop + " main=" + main.scrollTop);
|
||||
|
||||
let transformEnd = promiseTransformEnd();
|
||||
|
||||
// Async scroll the sticky element by 200 pixels using the mouse-wheel.
|
||||
// This should handoff the overscroll to the parent element.
|
||||
await promiseMoveMouseAndScrollWheelOver(sticky, 25, 25, false, 200);
|
||||
|
||||
// Wait for the trasform triggered by the gesture to complete.
|
||||
await transformEnd;
|
||||
await promiseApzFlushedRepaints();
|
||||
|
||||
info("After scroll: sticky=" + sticky.scrollTop + " main=" + main.scrollTop);
|
||||
|
||||
// Ensure that the main element has scrolled.
|
||||
isnot(main.scrollTop, 0, "The overscroll should handoff");
|
||||
}
|
||||
|
||||
waitUntilApzStable()
|
||||
.then(test)
|
||||
.then(subtestDone, subtestFailed);
|
||||
|
||||
</script>
|
||||
</html>
|
@ -76,9 +76,6 @@
|
||||
[test_group_overrides.html]
|
||||
skip-if =
|
||||
toolkit == 'android' # wheel events not supported on mobile
|
||||
[test_group_overscroll_handoff.html]
|
||||
skip-if =
|
||||
toolkit == 'android' # wheel events not supported on mobile
|
||||
[test_group_hittest-1.html]
|
||||
skip-if =
|
||||
toolkit == 'android' # mouse events not supported on mobile
|
||||
|
@ -1,45 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Tests for overscroll handoff</title>
|
||||
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript" src="apz_test_utils.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
<script type="application/javascript">
|
||||
|
||||
var prefs = [
|
||||
// turn off smooth scrolling so that we don't have to wait for
|
||||
// APZ animations to finish before sampling the scroll offset
|
||||
["general.smoothScroll", false],
|
||||
["apz.test.mac.synth_wheel_input", true],
|
||||
// ensure that any mouse movement will trigger a new wheel transaction,
|
||||
// because in this test we move the mouse a bunch and want to recalculate
|
||||
// the target APZC after each such movement.
|
||||
["mousewheel.transaction.ignoremovedelay", 0],
|
||||
["mousewheel.transaction.timeout", 0],
|
||||
];
|
||||
|
||||
var subtests = [
|
||||
{"file": "helper_position_fixed_scroll_handoff-1.html", prefs},
|
||||
{"file": "helper_position_fixed_scroll_handoff-2.html", prefs},
|
||||
{"file": "helper_position_fixed_scroll_handoff-3.html", prefs},
|
||||
{"file": "helper_position_fixed_scroll_handoff-4.html", prefs},
|
||||
{"file": "helper_position_sticky_scroll_handoff.html", prefs},
|
||||
{"file": "helper_wheelevents_handoff_on_iframe.html", "prefs": prefs},
|
||||
{"file": "helper_wheelevents_handoff_on_non_scrollable_iframe.html", "prefs": prefs},
|
||||
];
|
||||
|
||||
if (isApzEnabled()) {
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
window.onload = function() {
|
||||
runSubtestsSeriallyInFreshWindows(subtests)
|
||||
.then(SimpleTest.finish, SimpleTest.finishWithFailure);
|
||||
};
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
@ -53,6 +53,8 @@ var subtests = [
|
||||
{"file": "helper_scroll_inactive_zindex.html", "prefs": prefs},
|
||||
{"file": "helper_scroll_over_scrollbar.html", "prefs": scrollbar_prefs},
|
||||
{"file": "helper_scroll_tables_perspective.html", "prefs": prefs},
|
||||
{"file": "helper_wheelevents_handoff_on_iframe.html", "prefs": prefs},
|
||||
{"file": "helper_wheelevents_handoff_on_non_scrollable_iframe.html", "prefs": prefs},
|
||||
{"file": "helper_relative_scroll_smoothness.html?input-type=wheel&scroll-method=scrollBy", prefs: smoothness_prefs },
|
||||
{"file": "helper_relative_scroll_smoothness.html?input-type=wheel&scroll-method=scrollTo", prefs: smoothness_prefs },
|
||||
{"file": "helper_relative_scroll_smoothness.html?input-type=wheel&scroll-method=scrollTop", prefs: smoothness_prefs },
|
||||
|
Loading…
Reference in New Issue
Block a user