content/media/test/test_bug874897.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 <!--
     4 https://bugzilla.mozilla.org/show_bug.cgi?id=874897
     5 -->
     7 <head>
     8   <title>Test for Bug 874897</title>
     9   <script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
    10   <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
    11   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
    12   <script type="text/javascript" src="manifest.js"></script>
    13 </head>
    14 <body>
    15 <script class="testbody" type="text/javascript">
    17 var manager = new MediaTestManager;
    19 function loadeddata(e) {
    20   var v = e.target;
    21   ok(v.readyState >= v.HAVE_CURRENT_DATA,
    22      "readyState must be >= HAVE_CURRENT_DATA for " + v._name);
    24   var canvas = document.createElement("canvas");
    25   canvas.width = 210;
    26   canvas.height = 120;
    27   document.body.appendChild(canvas);
    28   var ctx = canvas.getContext("2d");
    29   try {
    30     ctx.drawImage(v, 0, 0, v.videoWidth, v.videoHeight, 0, 0, canvas.width, canvas.height);
    31     ok(true, "Shouldn't throw exception while drawing to canvas from video for " + v._name);
    32   } catch (ex) {
    33     ok(false, "Shouldn't throw exception while drawing to canvas from video for " + v._name);
    34   }
    36   v._finished = true;
    37   v.parentNode.removeChild(v);
    38   manager.finished(v.token);
    39 }
    41 function startTest(test, token) {
    42   var type = getMajorMimeType(test.type);
    43   if (type != "video")
    44     return;
    46   var v = document.createElement('video');
    47   v.token = token;
    48   manager.started(token);
    49   v.src = test.name;
    50   v._name = test.name;
    51   v._finished = false;
    52   v.autoplay = true;
    53   v.style.display = "none";
    54   v.addEventListener("loadeddata", loadeddata, false);
    55   document.body.appendChild(v);
    56 }
    58 SimpleTest.waitForExplicitFinish();
    59 SpecialPowers.pushPrefEnv({"set": [["media.cache_size", 40000]]}, beginTest);
    60 function beginTest() {
    61   manager.runTests(gAspectRatioTests, startTest);
    62 }
    64 </script>
    65 </pre>
    67 </body>
    68 </html>

mercurial