| <html> |
| <head> |
| <script src="media-file.js"></script> |
| <script src="video-test.js"></script> |
| <script> |
| |
| function start() |
| { |
| if (!window.internals) { |
| failTest('This test requires window.internals.'); |
| return; |
| } |
| |
| findMediaElement(); |
| |
| run('internals.settings.setAllowsInlineMediaPlayback(false)'); |
| run('internals.setMediaElementRestrictions(video, "RequireUserGestureForFullscreen")'); |
| |
| waitForEvent('canplaythrough', canplaythrough) |
| waitForEvent('webkitfullscreenchange', fullscreenChanged, false, true, document) |
| waitForEvent('click', clickHandler, false, true, document.getElementById('button')) |
| |
| consoleWrite('* set video.src'); |
| video.src = findMediaFile('video', 'content/test'); |
| consoleWrite(''); |
| } |
| |
| function canplaythrough() |
| { |
| consoleWrite(''); |
| if (window.eventSender) { |
| consoleWrite('* video.play() should fail '); |
| run('video.play()'); |
| testExpected('video.paused', true); |
| consoleWrite(''); |
| |
| consoleWrite('* clicking button<br>'); |
| var button = document.getElementById('button'); |
| eventSender.mouseMoveTo(button.offsetLeft + 20, button.offsetTop + 7); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| } else { |
| consoleWrite('* click on the "Click me!" button to proceed<br>'); |
| } |
| } |
| |
| function clickHandler() |
| { |
| consoleWrite('* video.play() should work from within a click handler'); |
| testExpected('video.paused', true); |
| run('video.play()'); |
| consoleWrite(''); |
| failTestIn(2000); |
| } |
| |
| function fullscreenChanged() |
| { |
| testExpected('video.paused', false); |
| consoleWrite(''); |
| endTest(); |
| } |
| </script> |
| </head> |
| |
| <body onload="start()"> |
| <p>Test that "fullscreen requires user gesture restriction" is removed by a user gesture.</p> |
| <video controls></video> |
| <button id="button" >Click me!</button><br> |
| </body> |
| </html> |