dom/tests/mochitest/pointerlock/file_pointerlock-api.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 <!--https://bugzilla.mozilla.org/show_bug.cgi?id=633602-->
     4 <head>
     5   <title>Bug 633602</title>
     6   <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js">
     7   </script>
     8   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js">
     9   </script>
    10   <script type="application/javascript" src="pointerlock_utils.js"></script>
    11   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
    12 </head>
    13 <body>
    14   <a target="_blank"
    15     href="https://bugzilla.mozilla.org/show_bug.cgi?id=633602">
    16     Mozilla Bug 633602
    17   </a>
    18   <div id="div"></div>
    19   <pre id="test">
    20     <script type="text/javascript">
    21       /*
    22        * Test for Bug 633602
    23        * Make sure DOM API is correct.
    24        */
    26       SimpleTest.waitForExplicitFinish();
    28       var div,
    29         hasRequestPointerLock = false,
    30         pointerLockChangeEventFired = false,
    31         pointerUnlocked = false,
    32         pointerLocked = false,
    33         hasExitPointerLock = false,
    34         pointerLockElement = false,
    35         hasMovementX = false,
    36         hasMovementY = false;
    38       function runTests () {
    39         ok(hasRequestPointerLock, "Element should have mozRequestPointerLock.");
    40         ok(pointerLockChangeEventFired, "pointerlockchange event should fire.");
    41         ok(pointerUnlocked, "Should be able to unlock pointer locked element.");
    42         ok(pointerLocked, "Requested element should be able to lock.");
    43         ok(hasExitPointerLock, "Document should have mozExitPointerLock");
    44         ok(pointerLockElement, "Document should keep track of correct pointer locked element");
    45         ok(hasMovementX, "Mouse Event should have mozMovementX.");
    46         ok(hasMovementY, "Mouse Event should have mozMovementY.");
    47       }
    49       function mouseMoveHandler(e) {
    50         document.removeEventListener("mousemove", mouseMoveHandler, false);
    52         hasMovementX = "mozMovementX" in e;
    53         hasMovementY = "mozMovementY" in e;
    55         hasExitPointerLock = "mozExitPointerLock" in document;
    56         document.mozExitPointerLock();
    57       }
    59       document.addEventListener("mozpointerlockchange", function (e) {
    60         pointerLockChangeEventFired = true;
    62         if (document.mozPointerLockElement) {
    63           pointerLocked = true;
    64           pointerLockElement = document.mozPointerLockElement === div;
    65           document.addEventListener("mousemove", mouseMoveHandler, false);
    66           synthesizeMouseAtCenter(div, {type: "mousemove"}, window);
    67         } else {
    68           pointerUnlocked = true;
    69           document.mozCancelFullScreen();
    70         }
    71       }, false);
    73       document.addEventListener("mozfullscreenchange", function(e) {
    74         if (document.mozFullScreenElement === div) {
    75           hasRequestPointerLock = "mozRequestPointerLock" in div;
    76           div.mozRequestPointerLock();
    77         } else {
    78           runTests();
    79           SimpleTest.finish();
    80         }
    81       }, false);
    83       function start() {
    84         div = document.getElementById("div");
    85         div.mozRequestFullScreen();
    86       }
    87     </script>
    88   </pre>
    89 </body>
    90 </html>

mercurial