Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<!DOCTYPE html>
<title>Test that documentPictureInPicture.requestWindow()
returns a Window object</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>
<body>
<div id="div"></div>
<script>
promise_test(async (t) => {
await test_driver.bless('request PiP window');
const pipWindow = await documentPictureInPicture.requestWindow();
assert_true(!!pipWindow.document,
'Window should contain a document');
assert_true(documentPictureInPicture.window === pipWindow,
'DocumentPictureInPicture.window should match the current window');
}, 'requestWindow resolves with the PiP window');
promise_test(async (t) => {
await test_driver.bless('request PiP window');
const pipWindow = await documentPictureInPicture.requestWindow();
const div = document.getElementById('div');
// We should be able to move an element to that document.
assert_true(document.body.contains(div),
'The original document should start with the div');
assert_false(pipWindow.document.body.contains(div),
'The PiP document should not start with the div');
pipWindow.document.body.append(div);
assert_false(document.body.contains(div),
'The div should have moved away from the original document');
assert_true(pipWindow.document.body.contains(div),
'The div should have moved to the PiP document');
}, 'Elements can be moved from opener to PiP document');
promise_test(async (t) => {
await test_driver.bless('request PiP window');
const pipWindow = await documentPictureInPicture.requestWindow();
assert_equals(pipWindow.document.readyState, "complete", "PiP document ready state is complete");
}, 'PiP document is fully loaded');
</script>
</body>