OLD | NEW |
1 <script src=media-file.js></script> | 1 <script src=media-file.js></script> |
2 <script src=video-test.js></script> | 2 <script src=video-test.js></script> |
3 <script> | 3 <script> |
4 | 4 |
5 function runTest() | 5 function runTest() |
6 { | 6 { |
| 7 var canPlayThroughCount = 0; |
| 8 var videoShouldPlay; |
| 9 var videoShouldNotPlay; |
| 10 |
| 11 testRunner.waitUntilDone(); |
| 12 |
| 13 function canPlayThrough() |
| 14 { |
| 15 canPlayThroughCount++; |
| 16 if (canPlayThroughCount == 2) { |
| 17 // Pause() will clear the autoplaying flag, which should also preven
t the |
| 18 // gesture override experiment from autoplaying. |
| 19 videoShouldNotPlay.pause(); |
| 20 |
| 21 // Mute them both, and see if only one starts. |
| 22 videoShouldPlay.muted = true; |
| 23 videoShouldNotPlay.muted = true; |
| 24 logResult(didPlaybackStart(videoShouldPlay), "First video should pla
y"); |
| 25 logResult(!didPlaybackStart(videoShouldNotPlay), "Second video shoul
d not play"); |
| 26 testRunner.notifyDone(); |
| 27 } |
| 28 } |
| 29 |
7 function prepareVideo(parent) | 30 function prepareVideo(parent) |
8 { | 31 { |
9 var video = document.createElement("video"); | 32 var video = document.createElement("video"); |
| 33 video.oncanplaythrough = canPlayThrough; |
10 video.src = findMediaFile("video", "content/test"); | 34 video.src = findMediaFile("video", "content/test"); |
11 video.autoplay = true; | 35 video.autoplay = true; |
12 parent.appendChild(video); | 36 parent.appendChild(video); |
13 | 37 |
14 return video; | 38 return video; |
15 } | 39 } |
16 | 40 |
17 function didPlaybackStart(element) | 41 function didPlaybackStart(element) |
18 { | 42 { |
19 return !element.paused || element.ended; | 43 return !element.paused || element.ended; |
20 } | 44 } |
21 | 45 |
22 var parent = document.createElement("div"); | 46 var parent = document.createElement("div"); |
23 document.body.appendChild(parent); | 47 document.body.appendChild(parent); |
24 | 48 |
25 // Require a user gesture, but override it for muted videos. | 49 // Require a user gesture, but override it for muted videos. |
26 internals.settings.setMediaPlaybackRequiresUserGesture(true); | 50 internals.settings.setMediaPlaybackRequiresUserGesture(true); |
27 internals.settings.setAutoplayExperimentMode("enabled-forvideo-ifmuted"); | 51 internals.settings.setAutoplayExperimentMode("enabled-forvideo-ifmuted"); |
28 | 52 |
29 var videoShouldPlay = prepareVideo(parent); | 53 videoShouldPlay = prepareVideo(parent); |
30 var videoShouldNotPlay = prepareVideo(parent); | 54 videoShouldNotPlay = prepareVideo(parent); |
31 | |
32 // Pause() will clear the autoplaying flag, which should also prevent the | |
33 // gesture override experiment from autoplaying. | |
34 videoShouldNotPlay.pause(); | |
35 | |
36 // Mute them both, and see if only one starts. | |
37 videoShouldPlay.muted = true; | |
38 videoShouldNotPlay.muted = true; | |
39 logResult(didPlaybackStart(videoShouldPlay), "First video should play"); | |
40 logResult(!didPlaybackStart(videoShouldNotPlay), "Second video should not pl
ay"); | |
41 testRunner.notifyDone(); | |
42 } | 55 } |
43 | 56 |
44 </script> | 57 </script> |
45 <p>Test that the autoplay experiment doesn't play media once the media | 58 <p>Test that the autoplay experiment doesn't play media once the media |
46 is no longer eligible for autoplay.</p> | 59 is no longer eligible for autoplay.</p> |
47 <body onLoad="runTest()"> | 60 <body onLoad="runTest()"> |
48 </body> | 61 </body> |
OLD | NEW |