| 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); |
| }); |
| }; |
| }); |
| } |