Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-gc-after-decode-error-crash.html

Issue 2192713003: Convert mediasource http tests to testharness.js (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comment Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!doctype html> 1 <!DOCTYPE html>
2 <html> 2 <title>Verifies that a MediaSource decode error followed by a gc() and page relo ad does not trigger a crash.</title>
3 <head> 3 <script src="/w3c/resources/testharness.js"></script>
4 <!-- TODO(foolip): Convert test to testharness.js. crbug.com/588956 4 <script src="/w3c/resources/testharnessreport.js"></script>
5 (Please avoid writing new tests using video-test.js) --> 5 <video></video>
6 <script src="../../media-resources/video-test.js"></script> 6 <script>
7 </head> 7 async_test(function(t) {
8 <body> 8 var video = document.querySelector('video');
9 <p>Verifies that a MediaSource decode error followed by a gc() and page reload does not trigger a crash.</p> 9 var mediaSource = new MediaSource();
10 <video></video>
11 <script>
12 function onSourceOpen(e)
13 {
14 consoleWrite("onSourceOpen");
15 var ms = e.target;
16 ms.removeEventListener("sourceopen", onSourceOpen);
17 10
18 var v = document.querySelector("video"); 11 mediaSource.onsourceopen = t.step_func(function() {
19 URL.revokeObjectURL(v.src); 12 mediaSource.onsourceopen = null;
13 URL.revokeObjectURL(video.src);
20 14
21 // Create a SourceBuffer and append garbage so a decode error will occur 15 // Create a SourceBuffer and append garbage so a decode error will occur
22 // and the MediaSource will get closed. 16 // and the MediaSource will get closed.
23 ms.addEventListener("sourceclose", onSourceClose); 17 mediaSource.onsourceclose = t.step_func(function() {
24 var sb = ms.addSourceBuffer("video/webm;codecs=\"vp8\""); 18 mediaSource.onsourceclose = null;
25 var buf = new Uint8Array(10);
26 sb.appendBuffer(buf);
27 }
28
29 function onSourceClose(e)
30 {
31 consoleWrite("onSourceClose");
32 e.target.removeEventListener("sourceclose", onSourceClose);
33 19
34 // Schedule a GC and page reload. We need a timeout here so that 20 // Schedule a GC and page reload. We need a timeout here so that
35 // the MediaSource reference used by this event is cleared before 21 // the MediaSource reference used by this event is cleared before
36 // we try to GC & reload. 22 // we try to GC & reload.
37 setTimeout(gcAndReloadPage, 0); 23 setTimeout(t.step_func(function() {
38 } 24 gc();
39 25
40 function gcAndReloadPage() 26 var suffix = "?2";
41 { 27 if (document.location.href.indexOf(suffix) != -1) {
42 consoleWrite("Running gc()."); 28 t.done();
43 gc(); 29 return;
30 }
44 31
45 var suffix = "?2"; 32 document.location.href += suffix;
46 if (document.location.href.indexOf(suffix) != -1) { 33 }), 0);
47 endTest(); 34 });
48 return; 35 var sourceBuffer = mediaSource.addSourceBuffer("video/webm;codecs=\"vp8\ "");
49 } 36 var buffer = new Uint8Array(10);
37 sourceBuffer.appendBuffer(buffer);
38 });
50 39
51 document.location.href += suffix; 40 video.src = URL.createObjectURL(mediaSource);
52 } 41 });
53 42 </script>
54 (function()
55 {
56 var ms = new MediaSource();
57 ms.addEventListener("sourceopen", onSourceOpen);
58 document.querySelector("video").src = URL.createObjectURL(ms);
59 })();
60 </script>
61 </body>
62 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698