Tue, 06 Jan 2015 21:39:09 +0100
Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Media test: seek tests</title>
5 <script type="text/javascript" src="/MochiKit/packed.js"></script>
6 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
8 <script type="text/javascript" src="manifest.js"></script>
9 <script type="text/javascript" src="fragment_play.js"></script>
10 </head>
11 <body>
12 <pre id="test">
13 <script class="testbody" type="text/javascript">
15 var manager = new MediaTestManager;
17 // Fragment parameters to try. These tests
18 // try playing the video. Tests for other fragment
19 // formats are in test_fragment_noplay.html.
20 var gFragmentParams = [
21 { fragment: "", start: null, end: null },
22 { fragment: "#t=,", start: null, end: null },
23 { fragment: "#t=3,3", start: null, end: null },
24 { fragment: "#t=7,3", start: null, end: null },
25 { fragment: "#t=7,15", start: 7, end: null },
26 { fragment: "#t=15,20", start: 9.287981, end: null },
27 { fragment: "#t=5", start: 5, end: null },
28 { fragment: "#t=5.5", start: 5.5, end: null },
29 { fragment: "#t=5,", start: null, end: null },
30 { fragment: "#t=,5", start: 0, end: 5, todo: "See bugs 682141 and 720248" },
31 { fragment: "#t=2.5,5.5", start: 2.5, end: 5.5, todo: "See bugs 682141 and 720248" },
32 { fragment: "#t=1,2.5", start: 1, end: 2.5, todo: "See bugs 682141 and 720248" },
33 { fragment: "#t=,15", start: 0, end: null }
34 ];
36 function createTestArray() {
37 var tests = [];
38 var tmpVid = document.createElement("video");
40 for (var testNum=0; testNum<gFragmentTests.length; testNum++) {
41 var test = gFragmentTests[testNum];
42 if (!tmpVid.canPlayType(test.type)) {
43 continue;
44 }
46 for (var fragNum=0; fragNum<gFragmentParams.length; fragNum++) {
47 var p = gFragmentParams[fragNum];
48 var t = new Object;
49 t.name = test.name + p.fragment;
50 t.type = test.type;
51 t.duration = test.duration;
52 t.start = p.start;
53 t.end = p.end;
54 t.todo = p.todo;
55 tests.push(t);
56 }
57 }
58 return tests;
59 }
61 function startTest(test, token) {
62 if (test.todo) {
63 todo(false, test.todo);
64 return;
65 }
66 var v = document.createElement('video');
67 manager.started(token);
68 v.preload = "metadata";
69 v.src = test.name;
70 v.token = token;
71 v.controls = true;
72 document.body.appendChild(v);
73 var name = test.name + " fragment test";
74 var localIs = function(name) { return function(a, b, msg) {
75 is(a, b, name + ": " + msg);
76 }}(name);
77 var localOk = function(name) { return function(a, msg) {
78 ok(a, name + ": " + msg);
79 }}(name);
80 var localFinish = function(v, manager) { return function() {
81 if (v.parentNode) {
82 v.parentNode.removeChild(v);
83 }
84 manager.finished(v.token);
85 }}(v, manager);
86 window['test_fragment_play'](v, test.start, test.end, localIs, localOk, localFinish);
87 }
89 manager.runTests(createTestArray(), startTest);
91 </script>
92 </pre>
93 </body>
94 </html>