| <!doctype html> | |
| <html> | |
| <head> | |
| <meta charset='utf-8'> | |
| <title>Revoking a created URL with URL.revokeObjectURL(url)</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| </head> | |
| <body> | |
| <div id="log"></div> | |
| <script> | |
| async_test(function(t) { | |
| var mediaSource = new MediaSource(); | |
| var url = window.URL.createObjectURL(mediaSource); | |
| window.URL.revokeObjectURL(url); | |
| mediaSource.addEventListener('sourceopen', | |
| t.unreached_func("url should not reference MediaSource.")); | |
| var video = document.createElement('video'); | |
| video.src = url; | |
| video.addEventListener('error', t.step_func_done(function(e) { | |
| assert_equals(e.target.error.code, | |
| MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED, | |
| 'Expected error code'); | |
| assert_equals(mediaSource.readyState, 'closed'); | |
| })); | |
| }, "Check revoking behavior of URL.revokeObjectURL(url)."); | |
| async_test(function(t) { | |
| var mediaSource = new MediaSource(); | |
| var url = window.URL.createObjectURL(mediaSource); | |
| var video = document.createElement('video'); | |
| var unexpectedErrorHandler = t.unreached_func("Unexpected error.") | |
| video.addEventListener('error', unexpectedErrorHandler); | |
| video.src = url; | |
| window.URL.revokeObjectURL(url); | |
| mediaSource.addEventListener('sourceopen', t.step_func_done(function(e) { | |
| assert_equals(mediaSource.readyState, 'open'); | |
| mediaSource.endOfStream(); | |
| video.removeEventListener('error', unexpectedErrorHandler); | |
| })); | |
| }, "Check referenced MediaSource can open after URL.revokeObjectURL(url)."); | |
| async_test(function(t) { | |
| var mediaSource = new MediaSource(); | |
| var url = window.URL.createObjectURL(mediaSource); | |
| setTimeout(function() { | |
| mediaSource.addEventListener('sourceopen', | |
| t.unreached_func("url should not reference MediaSource.")); | |
| var video = document.createElement('video'); | |
| video.src = url; | |
| video.addEventListener('error', t.step_func_done(function(e) { | |
| assert_equals(e.target.error.code, | |
| MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED, | |
| 'Expected error code'); | |
| assert_equals(mediaSource.readyState, 'closed'); | |
| })); | |
| }, 0); | |
| }, "Check auto-revoking behavior with URL.createObjectURL(MediaSource)."); | |
| </script> | |
| </body> | |
| </html> |