dom/alarm/test/test_bug1015540.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   <meta charset="utf-8">
     5   <title>Test data Paramter of Alarm API for Bug 1015540</title>
     6   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
     7   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     8 </head>
     9 <body>
    10 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1015540">Bug 1015540</a>
    11 <p id="display"></p>
    12 <div id="content" style="display: none"></div>
    13 <pre id="test">
    14   <script type="application/javascript">
    16   "use strict";
    18   // Verify passing a cross-origin object for the data paramter
    19   function testCrossOriginObject() {
    20     var tomorrow = new Date();
    21     tomorrow.setDate(tomorrow.getDate() + 1);
    23     var data = document.getElementById('ifr').contentWindow;
    25     try {
    26       navigator.mozAlarms.add(tomorrow, "honorTimezone", data);
    27       ok(false, "Adding alarms for cross-origin objects should be prohibited.");
    28     } catch (e) {
    29       ok(true, "Adding alarms for cross-origin objects is prohibited.");
    30     }
    32     SimpleTest.finish();
    33   }
    35   function startTests() {
    36     SpecialPowers.pushPrefEnv({
    37       "set": [["dom.mozAlarms.enabled", true]]
    38     }, function() {
    39    	  SpecialPowers.addPermission("alarms", true, document);
    40       var isAllowedToTest = true;
    42       if (navigator.appVersion.indexOf("Android") !== -1) {
    43         ok(true, "mozAlarms is not allowed on Android for now. " +
    44                  "TODO Bug 863557.");
    45         isAllowedToTest = false;
    46       } else if (SpecialPowers.wrap(document).nodePrincipal.appStatus ==
    47                  SpecialPowers.Ci.nsIPrincipal.APP_STATUS_NOT_INSTALLED) {
    48         ok(true, "mozAlarms is not allowed for non-installed apps. " +
    49                  "TODO Bug 876981.");
    50         isAllowedToTest = false;
    51       }
    53       if (isAllowedToTest) {
    54         ok(true, "Start to test...");
    55         testCrossOriginObject();
    56       } else {
    57         // A sanity check to make sure we must run tests on Firefox OS (B2G).
    58         if (navigator.userAgent.indexOf("Mobile") != -1 &&
    59             navigator.appVersion.indexOf("Android") == -1) {
    60           ok(false, "Should run the test on Firefox OS (B2G)!");
    61         }
    63         SimpleTest.finish();
    64       }
    65     });
    66   }
    68   SimpleTest.waitForExplicitFinish();
    69   </script>
    70 </pre>
    71 <iframe id="ifr" onload="startTests()" src="http://example.org/tests/dom/alarm/test/file_empty.html"></iframe>
    72 </body>
    73 </html>

mercurial