58 lines
1.6 KiB
HTML
58 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<style type="text/css">
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<p id="description"></p>
|
|
<div id="target" style="position: absolute; top: 0; left: 0; width: 100px; height: 100px;"></div>
|
|
<br/>
|
|
<div id="console"></div>
|
|
<script>
|
|
|
|
description("Test that changing the 'cursor' property during a requestAnimationFrame callback is applied by the next run loop.");
|
|
|
|
if (!window.eventSender) {
|
|
testFailed('This test requires DumpRenderTree');
|
|
}
|
|
|
|
if (window.testRunner) {
|
|
testRunner.dumpAsText();
|
|
testRunner.waitUntilDone();
|
|
window.jsTestIsAsync = true;
|
|
}
|
|
|
|
(async function()
|
|
{
|
|
// Can't do anything useful here without eventSender
|
|
if (!window.eventSender)
|
|
return;
|
|
|
|
const target = document.getElementById("target");
|
|
eventSender.mouseMoveTo(target.offsetLeft + 3, target.offsetTop + 3);
|
|
debug("Moved pointer over the target, cursor should be Pointer.");
|
|
debug(`Cursor info: ${window.internals.getCurrentCursorInfo()}`);
|
|
|
|
await new Promise(requestAnimationFrame);
|
|
debug("");
|
|
debug("Setting cursor via CSS during next animation frame, cursor should be Pointer still.");
|
|
debug(`Cursor info: ${window.internals.getCurrentCursorInfo()}`);
|
|
target.style.cursor = 'help';
|
|
|
|
await new Promise(setTimeout);
|
|
debug("");
|
|
debug("Waited until next run loop, cursor should be Help.");
|
|
debug(`Cursor info: ${window.internals.getCurrentCursorInfo()}`);
|
|
|
|
debug("");
|
|
target.remove();
|
|
finishJSTest();
|
|
})();
|
|
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|