Fri, 16 Jan 2015 04:50:19 +0100
Replace accessor implementation with direct member state manipulation, by
request https://trac.torproject.org/projects/tor/ticket/9701#comment:32
1 <!DOCTYPE HTML>
2 <html>
3 <!--
4 https://bugzilla.mozilla.org/show_bug.cgi?id=493187
5 -->
7 <head>
8 <title>Bug 493187 - enter HAVE_FUTURE_DATA when seeking within buffered data even if new data isn't arriving</title>
9 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
11 <script type="text/javascript" src="manifest.js"></script>
12 </head>
13 <body>
14 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=493187">Mozilla Bug 493187</a>
15 <pre id="test">
16 <script class="testbody" type="text/javascript">
18 SimpleTest.expectAssertions(0, 2);
20 var manager = new MediaTestManager;
22 function start(e) {
23 e.target.currentTime = e.target.duration / 4;
24 }
26 function startSeeking(e) {
27 e.target._seeked = true;
28 }
30 function canPlayThrough(e) {
31 var v = e.target;
32 if (v._seeked && !v._finished) {
33 ok(true, "Got canplaythrough after seek for " + v._name);
34 v._finished = true;
35 v.parentNode.removeChild(v);
36 v.src = "";
37 manager.finished(v.token);
38 }
39 }
41 function startTest(test, token) {
42 // TODO: Bug 568402, there's a bug in the WAV backend where we sometimes
43 // don't send canplaythrough events after seeking. Once that is fixed,
44 // we should remove this guard below so that we run this test for audio.
45 var type = getMajorMimeType(test.type);
46 if (type != "video")
47 return;
49 var v = document.createElement('video');
50 v.token = token;
51 manager.started(token);
53 v.src = test.name;
54 v._name = test.name;
55 v._seeked = false;
56 v._finished = false;
57 v.preload = "auto";
58 v.addEventListener("loadedmetadata", start, false);
59 v.addEventListener("canplaythrough", canPlayThrough, false);
60 v.addEventListener("seeking", startSeeking, false);
61 document.body.appendChild(v);
62 }
64 SimpleTest.waitForExplicitFinish();
65 SpecialPowers.pushPrefEnv({"set": [["media.cache_size", 40000]]}, beginTest);
66 function beginTest() {
67 manager.runTests(gSeekTests, startTest);
68 }
69 </script>
70 </pre>
71 </body>
72 </html>