| <!DOCTYPE html> |
| <title>Test leavepictureinpicture event</title> |
| <meta name="timeout" content="long"> |
| <script src="/common/media.js"></script> |
| <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="resources/picture-in-picture-helpers.js"></script> |
| <body></body> |
| <script> |
| promise_test(async t => { |
| const video = await loadVideo(); |
| |
| video.addEventListener('leavepictureinpicture', t.step_func_done(event => { |
| assert_equals(event.target, video); |
| assert_equals(event.bubbles, true); |
| assert_equals(event.cancelable, false); |
| assert_equals(event.composed, false); |
| assert_equals(document.pictureInPictureElement, null); |
| })); |
| |
| return requestPictureInPictureWithTrustedClick(video) |
| .then(() => document.exitPictureInPicture()); |
| }, 'leavepictureinpicture event is fired if document.exitPictureInPicture'); |
| |
| promise_test(async t => { |
| const video = await loadVideo(); |
| |
| video.addEventListener('leavepictureinpicture', t.step_func_done(event => { |
| assert_equals(event.target, video); |
| assert_equals(event.bubbles, true); |
| assert_equals(event.cancelable, false); |
| assert_equals(event.composed, false); |
| assert_equals(document.pictureInPictureElement, null); |
| })); |
| |
| return requestPictureInPictureWithTrustedClick(video) |
| .then(() => { |
| video.disablePictureInPicture = true; |
| }); |
| }, 'leavepictureinpicture event is fired if video.disablePictureInPicture is set to true'); |
| </script> |