mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-12 14:20:14 +02:00
Automatic update from web-platform-testsFix fullscreen WPT tests assuming fullscreenElement changes each time. Since fullscreenchange event is sent by the rAF event loop it is possible that the fullscreenElement might change and not be observed at the time you read the event. Fix the tests so they are robust. Fix the ordering of which fullscreen elements are handled in pending frames. Otherwise we might end up with incorrect ordering. BUG=874444 Change-Id: I00c228e0aea7794564e522a3883573ea359235f1 Reviewed-on: https://chromium-review.googlesource.com/1194726 Commit-Queue: Dave Tapuska <dtapuska@chromium.org> Reviewed-by: Philip Jägenstedt <foolip@chromium.org> Cr-Commit-Position: refs/heads/master@{#587170} -- wpt-commits: 9be7cfef2e90378b3db6d6e75b80ba6f929786c5 wpt-pr: 12728
37 lines
1.3 KiB
HTML
37 lines
1.3 KiB
HTML
<!DOCTYPE html>
|
|
<title>Element#requestFullscreen() on two elements in the same document</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="../trusted-click.js"></script>
|
|
<div id="log"></div>
|
|
<div id="a"></div>
|
|
<div id="b"></div>
|
|
<script>
|
|
async_test(t => {
|
|
// Request fullscreen on both elements, but in reverse tree order.
|
|
const a = document.getElementById('a');
|
|
const b = document.getElementById('b');
|
|
|
|
// Expect two fullscreenchange events, with document.fullscreenElement
|
|
// changing in the same order as the requests.
|
|
const order = [];
|
|
document.onfullscreenchange = t.step_func(() => {
|
|
assert_in_array(document.fullscreenElement, [a, b]);
|
|
order.push(document.fullscreenElement.id);
|
|
if (order.length == 2) {
|
|
// Since fullscreenchange event occurs at animation frame timing we might
|
|
// have not seen the transition from null -> 'b' but just see the
|
|
// resulting 'a' transition twice.
|
|
assert_true(order[0] == 'a' || order[0] == 'b', 'first id seen is a or b');
|
|
assert_true(order[1] == 'a', 'second id seen is b');
|
|
t.done();
|
|
}
|
|
});
|
|
document.onfullscreenerror = t.unreached_func('fullscreenerror event');
|
|
|
|
trusted_click(t, () => {
|
|
b.requestFullscreen();
|
|
a.requestFullscreen();
|
|
}, document.body);
|
|
});
|
|
</script>
|