dom/workers/test/test_terminate.html

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 <!--
     2   Any copyright is dedicated to the Public Domain.
     3   http://creativecommons.org/publicdomain/zero/1.0/
     4 -->
     5 <!DOCTYPE HTML>
     6 <html>
     7 <!--
     8 Tests of DOM Worker terminate feature
     9 -->
    10 <head>
    11   <title>Test for DOM Worker Navigator</title>
    12   <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
    13   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
    14 </head>
    15 <body>
    16 <p id="display"></p>
    17 <div id="content" style="display: none">
    19 </div>
    20 <pre id="test">
    21 <script class="testbody" language="javascript">
    24   var messageCount = 0;
    25   var intervalCount = 0;
    27   var interval;
    29   var worker;
    31   function messageListener(event) {
    32     is(event.data, "Still alive!", "Correct message!");
    33     if (messageCount++ == 20) {
    34       ok(worker.onmessage === messageListener,
    35          "Correct listener before terminate");
    37       worker.terminate();
    39       var exception = false;
    40       try {
    41         worker.addEventListener("message", messageListener, false);
    42       }
    43       catch (e) {
    44         exception = true;
    45       }
    46       is(exception, false, "addEventListener didn't throw after terminate");
    48       exception = false;
    49       try {
    50         worker.removeEventListener("message", messageListener, false);
    51       }
    52       catch (e) {
    53         exception = true;
    54       }
    55       is(exception, false, "removeEventListener didn't throw after terminate");
    57       exception = false;
    58       try {
    59         worker.postMessage("foo");
    60       }
    61       catch (e) {
    62         exception = true;
    63       }
    64       is(exception, false, "postMessage didn't throw after terminate");
    66       exception = false;
    67       try {
    68         worker.terminate();
    69       }
    70       catch (e) {
    71         exception = true;
    72       }
    73       is(exception, false, "terminate didn't throw after terminate");
    75       ok(worker.onmessage === messageListener,
    76          "Correct listener after terminate");
    78       worker.onmessage = function(event) { }
    80       interval = setInterval(testCount, 1000);
    81     }
    82   }
    84   function testCount() {
    85     is(messageCount, 21, "Received another message after terminated!");
    86     if (intervalCount++ == 5) {
    87       clearInterval(interval);
    88       SimpleTest.finish();
    89     }
    90   }
    92   worker = new Worker("terminate_worker.js");
    93   worker.onmessage = messageListener;
    95   SimpleTest.waitForExplicitFinish();
    97 </script>
    98 </pre>
    99 </body>
   100 </html>

mercurial