| <!DOCTYPE html> |
| <title>Test autoplay muted and playsinline interaction</title> |
| <script src='../../resources/testharness.js'></script> |
| <script src='../../resources/testharnessreport.js'></script> |
| <div></div> |
| <script> |
| promise_test(t => { |
| t.add_cleanup(() => { |
| internals.settings.setAutoplayPolicy('no-user-gesture-required'); |
| internals.runtimeFlags.autoplayMutedVideosEnabled = false; |
| internals.runtimeFlags.videoAutoFullscreenEnabled = false; |
| }); |
| internals.settings.setAutoplayPolicy('user-gesture-required'); |
| internals.runtimeFlags.autoplayMutedVideosEnabled = true; |
| internals.runtimeFlags.videoAutoFullscreenEnabled = true; |
| |
| var video = document.createElement('video'); |
| video.muted = true; |
| video.autoplay = true; |
| video.playsInline = true; |
| document.querySelector('div').appendChild(video); |
| video.src = '../content/test.ogv'; |
| |
| return new Promise(resolve => { |
| video.addEventListener('play', resolve()); |
| }); |
| }, "'autoplay muted playsInline' works with video auto-fullscreen"); |
| |
| promise_test(t => { |
| t.add_cleanup(() => { |
| internals.settings.setAutoplayPolicy('no-user-gesture-required'); |
| internals.runtimeFlags.autoplayMutedVideosEnabled = false; |
| internals.runtimeFlags.videoAutoFullscreenEnabled = false; |
| }); |
| internals.settings.setAutoplayPolicy('user-gesture-required'); |
| internals.runtimeFlags.autoplayMutedVideosEnabled = true; |
| internals.runtimeFlags.videoAutoFullscreenEnabled = true; |
| |
| var video = document.createElement('video'); |
| video.muted = true; |
| video.playsInline = true; |
| video.src = '../content/test.ogv'; |
| document.querySelector('div').appendChild(video); |
| |
| return video.play(); |
| }, "'muted playsInline'.play() works with video auto-fullscreen"); |
| |
| promise_test(t => { |
| t.add_cleanup(() => { |
| internals.settings.setAutoplayPolicy('no-user-gesture-required'); |
| internals.runtimeFlags.autoplayMutedVideosEnabled = false; |
| internals.runtimeFlags.videoAutoFullscreenEnabled = false; |
| }); |
| internals.settings.setAutoplayPolicy('user-gesture-required'); |
| internals.runtimeFlags.autoplayMutedVideosEnabled = true; |
| internals.runtimeFlags.videoAutoFullscreenEnabled = true; |
| |
| var video = document.createElement('video'); |
| video.muted = true; |
| video.playsInline = false; |
| video.src = '../content/test.ogv'; |
| |
| document.querySelector('div').appendChild(video); |
| return promise_rejects_dom(t, "NotAllowedError", video.play()); |
| }, "'autoplay muted'.play() doesn't work with video auto-fullscreen"); |
| </script> |