| <!doctype html> |
| <meta charset="utf-8"> |
| <html> |
| <title>MediaRecorder destroy script execution context</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <body> |
| <iframe src="support/MediaRecorder-iframe.html" id="subFrame-stop" name="subFrameStop"></iframe> |
| <iframe src="support/MediaRecorder-iframe.html" id="subFrame-allTrackEnded" name="subFrameAllTrackEnded"></iframe> |
| <script> |
| var iframeForCallingStop = document.getElementById('subFrame-stop'); |
| var iframeForAllTrackEnded = document.getElementById('subFrame-allTrackEnded'); |
| |
| var testForCallingStop = async_test('MediaRecorder will not fire the stop event when stop() is called and the script execution context is going away'); |
| var testForAllTrackEnded = async_test('MediaRecorder will not fire the stop event when all tracks are ended and the script execution context is going away'); |
| |
| iframeForCallingStop.onload = function(e) { |
| subFrameStop.window.prepareForTest(); |
| const recorder = subFrameStop.window.recorder; |
| recorder.ondataavailable = testForCallingStop.step_func(blobEvent => { |
| iframeForCallingStop.remove(); |
| testForCallingStop.step_timeout(testForCallingStop.step_func_done(), 0); |
| }); |
| recorder.onstop = testForCallingStop.unreached_func('Unexpected stop event'); |
| recorder.start(); |
| assert_equals(recorder.state, 'recording', 'MediaRecorder has been started successfully'); |
| subFrameStop.window.drawSomethingOnCanvas(); |
| recorder.stop(); |
| }; |
| |
| iframeForAllTrackEnded.onload = function(e) { |
| subFrameAllTrackEnded.window.prepareForTest(); |
| const recorder = subFrameAllTrackEnded.window.recorder; |
| recorder.ondataavailable = testForAllTrackEnded.step_func(blobEvent => { |
| iframeForAllTrackEnded.remove(); |
| testForAllTrackEnded.step_timeout(testForAllTrackEnded.step_func_done(), 0); |
| }); |
| recorder.onstop = testForAllTrackEnded.unreached_func('Unexpected stop event'); |
| recorder.start(); |
| assert_equals(recorder.state, 'recording', 'MediaRecorder has been started successfully'); |
| subFrameAllTrackEnded.window.drawSomethingOnCanvas(); |
| subFrameAllTrackEnded.window.video.getVideoTracks()[0].stop(); |
| }; |
| |
| </script> |
| </body> |
| </html> |