forked from WebKit/WebKit
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make requestFullscreen() consume user activation
https://bugs.webkit.org/show_bug.cgi?id=247920 rdar://102355401 Reviewed by Youenn Fablet. Matches Chrome & Firefox implementations, we should reset the activation timestamps when requesting fullscreen. This disallows double non-user initiated requestFullscreen calls. Spec PR: whatwg/fullscreen#153 WPT upstream revision: web-platform-tests/wpt@897b406 * LayoutTests/imported/w3c/web-platform-tests/fullscreen/api/element-request-fullscreen-consume-user-activation-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/fullscreen/api/element-request-fullscreen-consume-user-activation.html: Added. * LayoutTests/imported/w3c/web-platform-tests/fullscreen/api/element-request-fullscreen-same-element-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/fullscreen/api/element-request-fullscreen-same-element.html: Added. * LayoutTests/imported/w3c/web-platform-tests/fullscreen/api/w3c-import.log: * LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fullscreen/api/element-request-fullscreen-same-element-expected.txt: Added. * Source/WebCore/dom/FullscreenManager.cpp: (WebCore::FullscreenManager::requestFullscreenForElement): Canonical link: https://commits.webkit.org/257554@main
- Loading branch information
Showing
7 changed files
with
66 additions
and
1 deletion.
There are no files selected for viewing
3 changes: 3 additions & 0 deletions
3
...form-tests/fullscreen/api/element-request-fullscreen-consume-user-activation-expected.txt
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,3 @@ | ||
|
||
PASS Element#requestFullscreen() consumes user activation | ||
|
25 changes: 25 additions & 0 deletions
25
...web-platform-tests/fullscreen/api/element-request-fullscreen-consume-user-activation.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,25 @@ | ||
<!DOCTYPE html> | ||
<title>Element#requestFullscreen() consumes user activation</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> | ||
<div id="log"></div> | ||
<script> | ||
promise_test(async (t) => { | ||
t.add_cleanup(() => { | ||
if (document.fullscreenElement) return document.exitFullscreen(); | ||
}); | ||
const div = document.querySelector("div"); | ||
|
||
await test_driver.bless("fullscreen"); | ||
assert_true(navigator.userActivation.isActive, "Activation must be active"); | ||
// Request fullscreen twice in a row. The first request should consume the | ||
// user activation and succeed, and the second request should fail because | ||
// of the user activation requirement. | ||
const p1 = div.requestFullscreen(); | ||
assert_false(navigator.userActivation.isActive, "Transient activation is consumed"); | ||
const p2 = promise_rejects_js(t, TypeError, div.requestFullscreen()); | ||
await Promise.all([p1, p2]); | ||
}); | ||
</script> |
3 changes: 3 additions & 0 deletions
3
...3c/web-platform-tests/fullscreen/api/element-request-fullscreen-same-element-expected.txt
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,3 @@ | ||
|
||
PASS Element#requestFullscreen() on the current fullscreen element | ||
|
27 changes: 27 additions & 0 deletions
27
...ported/w3c/web-platform-tests/fullscreen/api/element-request-fullscreen-same-element.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,27 @@ | ||
<!DOCTYPE html> | ||
<title>Element#requestFullscreen() on the current fullscreen element</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> | ||
<div id="log"></div> | ||
<script> | ||
promise_test(async (t) => { | ||
t.add_cleanup(() => { | ||
if (document.fullscreenElement) return document.exitFullscreen(); | ||
}); | ||
|
||
// Use the body element as the fullscreen element, because the second | ||
// test_driver.bless() call needs to insert a button inside of it, which | ||
// can't be clicked if another element is already fullscreen. | ||
const target = document.body; | ||
|
||
// First enter fullscreen. | ||
await test_driver.bless("fullscreen", () => target.requestFullscreen()); | ||
assert_equals(document.fullscreenElement, target, "fullscreen element after first request"); | ||
|
||
// Now request fullscreen again, which should be a no-op. | ||
await test_driver.bless("fullscreen", () => target.requestFullscreen()); | ||
assert_equals(document.fullscreenElement, target, "fullscreen element after second request"); | ||
}); | ||
</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
5 changes: 5 additions & 0 deletions
5
...3c/web-platform-tests/fullscreen/api/element-request-fullscreen-same-element-expected.txt
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,5 @@ | ||
|
||
FAIL Element#requestFullscreen() on the current fullscreen element assert_equals: fullscreen element after first request expected Element node <body><div id="log"></div> | ||
<script> | ||
promise_test(async (t... but got null | ||
|
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