61 lines
2 KiB
HTML
61 lines
2 KiB
HTML
<!DOCTYPE html>
|
|
<title>
|
|
Element#requestFullscreen() followed by moving the element into an iframe
|
|
</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="../trusted-click.js"></script>
|
|
<div id="log"></div>
|
|
<div id="target"></div>
|
|
<iframe allowfullscreen></iframe>
|
|
<script>
|
|
// rfsPromise will be uncaught
|
|
setup({ allow_uncaught_exception: true });
|
|
|
|
promise_test(async (t) => {
|
|
const iframe = document.querySelector("iframe");
|
|
await new Promise((r) => {
|
|
iframe.onload = r;
|
|
iframe.src = "about:blank";
|
|
});
|
|
const target = document.getElementById("target");
|
|
const iframeDoc = iframe.contentDocument;
|
|
|
|
iframeDoc.onfullscreenchange = t.unreached_func(
|
|
"fullscreenchange event in iframe"
|
|
);
|
|
iframeDoc.onfullscreenerror = t.unreached_func(
|
|
"fullscreenerror event in iframe"
|
|
);
|
|
document.onfullscreenchange = t.unreached_func(
|
|
"fullscreenchange event"
|
|
);
|
|
|
|
const errorPromise = new Promise(
|
|
(resolve) => (document.onfullscreenerror = resolve)
|
|
);
|
|
await trusted_click(document.body);
|
|
const rfsPromise = target.requestFullscreen();
|
|
iframeDoc.body.appendChild(target);
|
|
const event = await errorPromise;
|
|
assert_equals(
|
|
iframeDoc.fullscreenElement,
|
|
null,
|
|
"inner fullscreen element"
|
|
);
|
|
assert_equals(
|
|
document.fullscreenElement,
|
|
null,
|
|
"outer fullscreen element"
|
|
);
|
|
assert_equals(event.target, document, "event target");
|
|
await promise_rejects_js(
|
|
t,
|
|
TypeError,
|
|
rfsPromise,
|
|
"requestFullscreen promise"
|
|
);
|
|
}, "Element#requestFullscreen() followed by moving the element into an iframe");
|
|
</script>
|