62 lines
1.8 KiB
HTML
62 lines
1.8 KiB
HTML
<!DOCTYPE html>
|
|
<title>Layout Instability: no shift in mouse moves with a button pressed</title>
|
|
<link rel="help" href="https://wicg.github.io/layout-instability/" />
|
|
<style>
|
|
|
|
body { margin: 0; height: 2000px; }
|
|
#draggable {
|
|
top:50px;
|
|
left:50px;
|
|
width:50px;
|
|
height:50px;
|
|
background-color:blue;
|
|
position:absolute
|
|
}
|
|
|
|
</style>
|
|
<div id="draggable" ></div>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/resources/testdriver.js"></script>
|
|
<script src="/resources/testdriver-actions.js"></script>
|
|
<script src="/resources/testdriver-vendor.js"></script>
|
|
<script src="resources/util.js"></script>
|
|
<script>
|
|
|
|
const draggable = document.getElementById("draggable");
|
|
draggable.addEventListener('mousemove', function(event) {
|
|
// Move the element when the mouse moves.
|
|
draggable.style.top = event.pageY - 25 + 'px';
|
|
event.preventDefault();
|
|
}, false);
|
|
|
|
generateMouseMoveSequence = () => new test_driver.Actions()
|
|
.pointerMove(0, 0, {origin: draggable})
|
|
.pointerDown()
|
|
.pointerMove(0, 15, {origin: draggable})
|
|
.pause(100)
|
|
.pointerMove(0, 30, {origin: draggable})
|
|
.pause(100)
|
|
.pointerMove(0, 45, {origin: draggable})
|
|
.pause(100)
|
|
.pointerUp()
|
|
.pause(100);
|
|
|
|
promise_test(async () => {
|
|
|
|
const watcher = new ScoreWatcher;
|
|
|
|
// Wait for the initial render to complete.
|
|
await waitForAnimationFrames(2);
|
|
|
|
// Send pointer events for a sequence of mouse actions, mouse down, mouse moves and mouse up.
|
|
await generateMouseMoveSequence().send();
|
|
|
|
// Mouse moves which drag the objects should be counted as the excluding inputs
|
|
// for the layout shift.
|
|
assert_greater_than(watcher.score, 0);
|
|
assert_equals(watcher.scoreWithInputExclusion, 0);
|
|
|
|
}, "No layout shift when mouse moves with a button pressed.");
|
|
|
|
</script>
|