blob: f1dfd41480bf18f304082ae1abc1e4d3a2826fa4 [file] [log] [blame]
<!DOCTYPE html>
<title>Test request Picture-in-Picture</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="../../external/wpt/picture-in-picture/resources/picture-in-picture-helpers.js"></script>
<body></body>
<script>
promise_test(async t => {
const frame = document.createElement('iframe');
const frameLoadedPromise = new Promise(resolve => {
frame.addEventListener('load', resolve, { once: true });
document.body.appendChild(frame);
});
await frameLoadedPromise;
const video = await loadVideo(frame.contentDocument, '../content/test.ogv');
document.body.removeChild(frame);
return promise_rejects(t, 'InvalidStateError',
requestPictureInPictureWithTrustedClick(video));
}, 'request Picture-in-Picture rejects when frame is detached');
// TODO(crbug.com/806249): Remove this when MediaStreams are supported.
promise_test(async t => {
const canvas = document.createElement('canvas');
const video = document.createElement('video');
const videoLoadedPromise = new Promise((resolve, reject) => {
video.autoplay = true;
video.srcObject = canvas.captureStream(60 /* fps */);
video.onloadedmetadata = () => {
resolve(video);
};
video.onerror = error => {
reject(error);
};
});
await videoLoadedPromise;
return promise_rejects(t, 'NotSupportedError',
requestPictureInPictureWithTrustedClick(video));
}, 'request Picture-in-Picture rejects with MediaStreams');
</script>