content/media/test/test_play_events_2.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>Media test: play() method via DOM 0 handlers</title>
     5   <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     6   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     7   <script type="text/javascript" src="manifest.js"></script>
     8 </head>
     9 <body>
    10 <pre id="test">
    12 <script>
    13 var manager = new MediaTestManager;
    15 var tokens = {
    16   0:                ["play"],
    17   "play":           ["canplay"],
    18   "canplay":        ["playing"],
    19   "playing":        ["canplay", "canplaythrough"],
    20   "canplaythrough": ["canplay", "canplaythrough"]
    21 };
    23 function gotPlayEvent(event) {
    24   var v = event.target;
    25   ok(tokens[v._state].indexOf(event.type) >= 0,
    26      "Check expected event got " + event.type + " at " + v._state + " for " + v.src);
    27   v._state = event.type;
    28 }
    30 function ended(event) {
    31   var v = event.target;
    32   v._finished = true;
    33   removeNodeAndSource(v);
    34   manager.finished(v.token);
    35 }
    37 function startTest(test, token) {
    38   var v = document.createElement('video');
    39   v.token = token;
    40   manager.started(token);
    41   v._state = 0;
    42   v._finished = false;
    44   ["play", "canplay", "playing", "canplaythrough"].forEach(function (e) {
    45     v["on" + e] = gotPlayEvent;
    46   });
    48   v.onended = ended;
    50   v.src = test.name;
    51   document.body.appendChild(v); // Causes load.
    52   v.play();
    53 }
    55 manager.runTests(gSmallTests, startTest);
    57 </script>
    58 </pre>
    59 </body>
    60 </html>

mercurial