content/media/test/test_seekable1.html

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

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>Test seekable member for media elements</title>
     5 <script type="text/javascript" src="/MochiKit/MochiKit.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 </head>
    10 <body>
    11 <pre id='test'>
    12 <script class="testbody" type='application/javascript;version=1.8'>
    14 let manager = new MediaTestManager;
    16 function finish_test(element) {
    17   if (element.parentNode)
    18     element.parentNode.removeChild(element);
    19   element.src="";
    20   manager.finished(element.token);
    21 }
    23 var tests = [
    24 // Test using a finite media stream, and a server supporting range requests
    25 {
    26 setup : function(element) {
    27           is(element.seekable.length, 0, "seekable.length should be initialy 0.");
    28           element.addEventListener("loadedmetadata", function() {
    29               is(element.seekable.length, 1, "seekable.length should be 1 for a server supporting range requests.");
    31               is(element.seekable.start(0), 0.0, "The start of the first range should be the initialTime.");
    32               is(element.seekable.end(0), element.duration, "The end of the first range should be the duration.")
    33               finish_test(element);
    34               }, false);
    35         }
    36 }
    37 ];
    39 function createTestArray() {
    40   var A = [];
    41     for (var k=0; k < gProgressTests.length; k++) {
    42       var t = new Object();
    43       t.setup = tests[0].setup;
    44       t.name = gProgressTests[k].name;
    45       t.type = gProgressTests[k].type;
    46       A.push(t);
    47     }
    48   return A;
    49 }
    51 function startTest(test, token) {
    52   var elemType = getMajorMimeType(test.type);
    53   var element = document.createElement(elemType);
    54   element.preload = "auto";
    55   element.src = test.name;
    56   element.token = token;
    57   test.setup(element);
    58   manager.started(token);
    59 }
    61 manager.runTests(createTestArray(), startTest);
    63 </script>
    64 </pre>
    65 </body>
    66 </html>

mercurial