-
Notifications
You must be signed in to change notification settings - Fork 2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 1831162 [wpt PR 39828] - Add a test for fullscreen for the A/B/A …
…case, a=testonly Automatic update from web-platform-tests Add a test for fullscreen for the A/B/A case See the discussion at [1] for more context. This test requests fullscreen on A, then B, then A, where A and B are sibling divs. All three requests should succeed, and at the end, A should be topmost (and the fullscreen element) with both A and B in the top layer. [1] whatwg/fullscreen#223 Change-Id: I3f35dda5b9eb1bc24201616bb5bb4949d20fd170 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4501251 Commit-Queue: Mason Freed <[email protected]> Reviewed-by: Joey Arhar <[email protected]> Auto-Submit: Mason Freed <[email protected]> Cr-Commit-Position: refs/heads/main@{#1141456} -- wpt-commits: bf4540b22b7a2a6939d8cf7468c4ce76e48c3fef wpt-pr: 39828
- Loading branch information
1 parent
862b133
commit d63afa1
Showing
2 changed files
with
78 additions
and
0 deletions.
There are no files selected for viewing
62 changes: 62 additions & 0 deletions
62
testing/web-platform/tests/fullscreen/api/fullscreen-reordering.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
<!DOCTYPE html> | ||
<title>Re-requesting fullscreen doesn't fail but doesn't change order</title> | ||
<script src="/resources/testharness.js"></script> | ||
<script src="/resources/testharnessreport.js"></script> | ||
<script src="/resources/testdriver.js"></script> | ||
<script src="/resources/testdriver-vendor.js"></script> | ||
<script src="../../html/semantics/popovers/resources/popover-utils.js"></script> | ||
|
||
<div class="elements"> | ||
<div id="A">Element A</div> | ||
<div id="B">Element B</div> | ||
</div> | ||
|
||
<style> | ||
.elements>div { | ||
width:200px; | ||
height:200px; | ||
} | ||
#A { background: blue; } | ||
#B { background: green; } | ||
</style> | ||
|
||
<script> | ||
promise_test(async (t) => { | ||
t.add_cleanup(async () => { | ||
while (document.fullscreenElement) | ||
await document.exitFullscreen(); | ||
}); | ||
document.onfullscreenerror = () => assert_unreached('fullscreenerror should not happen'); | ||
const A = document.getElementById('A'); | ||
const B = document.getElementById('B'); | ||
assert_true(!isTopLayer(A) && !isTopLayer(B)); | ||
await blessTopLayer(document.body); | ||
await A.requestFullscreen(); | ||
assert_equals(document.fullscreenElement,A,'first A request'); | ||
assert_true(isTopLayer(A),'A top layer'); | ||
await blessTopLayer(A); | ||
try { | ||
await B.requestFullscreen(); | ||
} catch (error) { | ||
assert_unreached('The second call to requestFullscreen rejected - it should be possible to put siblings into fullscreen together'); | ||
} | ||
assert_equals(document.fullscreenElement,B,'B request'); | ||
assert_true(isTopLayer(B),'B top layer'); | ||
assert_true(isTopLayer(A),'A still top layer'); | ||
await blessTopLayer(B); | ||
await A.requestFullscreen(); | ||
assert_true(isTopLayer(A),'A is still top layer'); | ||
assert_true(isTopLayer(B),'B is still top layer'); | ||
assert_equals(document.fullscreenElement,A,'A is moved back to the top of the top layer stack'); | ||
assert_equals(document.elementFromPoint(10,10),A,'A should be topmost'); | ||
|
||
await document.exitFullscreen(); | ||
assert_equals(document.fullscreenElement,B,'B goes back to being the fullscreen element'); | ||
assert_true(isTopLayer(B),'B is still top layer'); | ||
assert_false(isTopLayer(A),'A is no longer top layer'); | ||
await document.exitFullscreen(); | ||
assert_equals(document.fullscreenElement,null,'Both closed'); | ||
assert_false(isTopLayer(A),'A is no longer top layer'); | ||
assert_false(isTopLayer(B),'B is no longer top layer'); | ||
}, 'Requesting fullscreen on A, then B, then A'); | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters