mirror of
https://github.com/HeyPuter/firefox.git
synced 2026-11-13 20:14:57 -10:00
Automatic update from web-platform-tests Automatic Fullscreen: Use PermissionService internally; add WPT Check for automatic fullscreen permission asynchronously during RequestFullscreen, when the caller doesn't have transient activation or an equivalent signal. Refactor Blink Fullscreen internals to support updated checks. Formalize error type; update algorithm comments; cleanup. Add Element.requestFullscreen WPT without gesture, with permission. Update browser test to skip retries for fullscreen on load. (this fixes a race between fullscreen and document settings on load) Guard by blink::features::kAutomaticFullscreenPermissionsQuery. (note this feature is already "stable", i.e. enabled by default) Bug: 40941384, 348456264 Fixed: 351758438 Change-Id: I44d734d07d046da19ee3a61059624f0f948ad1a6 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5666304 Commit-Queue: Mike Wasserman <[email protected]> Reviewed-by: Joey Arhar <[email protected]> Auto-Submit: Mike Wasserman <[email protected]> Reviewed-by: Alex Moshchuk <[email protected]> Cr-Commit-Position: refs/heads/main@{#1331144} -- wpt-commits: 393c912cf58bc04e5718303b498756910be2bd58 wpt-pr: 47234
31 lines
1.4 KiB
HTML
31 lines
1.4 KiB
HTML
<!doctype html>
|
|
<meta charset=utf-8>
|
|
<title>Element#requestFullscreen() without user activation</title>
|
|
<link rel="help" href="https://github.com/explainers-by-googlers/html-fullscreen-without-a-gesture">
|
|
<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 (test) => {
|
|
const div = document.querySelector("div");
|
|
assert_false(navigator.userActivation.isActive, "userActivation.isActive");
|
|
await promise_rejects_js(test, TypeError, div.requestFullscreen());
|
|
}, `Element#requestFullscreen() rejects without user activation by default`);
|
|
|
|
promise_test(async (test) => {
|
|
test.add_cleanup(() => {
|
|
if (document.fullscreenElement) return document.exitFullscreen();
|
|
});
|
|
const descriptor = { name: "fullscreen", allowWithoutGesture: true };
|
|
await test_driver.set_permission(descriptor, "granted");
|
|
const status = await navigator.permissions.query(descriptor);
|
|
assert_equals((status).state, "granted", `state should be "granted", as set`);
|
|
|
|
const div = document.querySelector("div");
|
|
assert_false(navigator.userActivation.isActive, "userActivation.isActive");
|
|
await div.requestFullscreen();
|
|
}, `Element#requestFullscreen() resolves without user activation with permission`);
|
|
</script>
|