30 lines
862 B
JavaScript
30 lines
862 B
JavaScript
function async_pip_test(func, name) {
|
|
async_test(t => {
|
|
assert_true('pictureInPictureEnabled' in document, 'Picture-in-Picture API is available');
|
|
func(t);
|
|
}, name);
|
|
}
|
|
|
|
function promise_pip_test(func, name) {
|
|
promise_test(async t => {
|
|
assert_true('pictureInPictureEnabled' in document, 'Picture-in-Picture API is available');
|
|
return func(t);
|
|
}, name);
|
|
}
|
|
|
|
function isPictureInPictureAllowed() {
|
|
return new Promise(resolve => {
|
|
let video = document.createElement('video');
|
|
video.src = getVideoURI('/media/movie_5');
|
|
video.onloadedmetadata = () => {
|
|
video.requestPictureInPicture()
|
|
.then(() => resolve(document.pictureInPictureEnabled))
|
|
.catch(e => {
|
|
if (e.name == 'NotAllowedError')
|
|
resolve(document.pictureInPictureEnabled);
|
|
else
|
|
resolve(false);
|
|
});
|
|
};
|
|
});
|
|
}
|