Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
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 <head>
8 <title>Test for SharedWorker</title>
9 <script src="/tests/SimpleTest/SimpleTest.js">
10 </script>
11 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css">
12 </head>
13 <body>
14 <p id="display"></p>
15 <div id="content" style="display: none"></div>
16 <pre id="test">
17 <script class="testbody">
18 "use strict";
20 const swPref = "dom.workers.sharedWorkers.enabled";
22 const href = window.location.href;
23 const filename = "sharedWorker_sharedWorker.js";
24 const sentMessage = "ping";
25 const errorFilename = href.substring(0, href.lastIndexOf("/") + 1) +
26 filename;
27 const errorLine = 86;
28 const errorColumn = 0;
30 if (!SpecialPowers.getBoolPref(swPref)) {
31 ok(!("SharedWorker" in window), "No SharedWorker without pref set");
32 }
34 SpecialPowers.pushPrefEnv({ set: [[swPref, true]] }, function() {
35 var worker = new SharedWorker(filename);
37 ok(worker instanceof SharedWorker, "Got SharedWorker instance");
38 ok(!("postMessage" in worker), "SharedWorker has no 'postMessage'");
39 ok(worker.port instanceof MessagePort,
40 "Shared worker has MessagePort");
42 var receivedMessage;
43 var receivedError;
45 worker.port.onmessage = function(event) {
46 ok(event instanceof MessageEvent, "Got a MessageEvent");
47 ok(event.target === worker.port,
48 "MessageEvent has correct 'target' property");
49 is(event.data, sentMessage, "Got correct message");
50 ok(receivedMessage === undefined, "Haven't gotten message yet");
51 ok(receivedError === undefined, "Haven't gotten error yet");
52 receivedMessage = event.data;
53 };
55 worker.onerror = function(event) {
56 ok(event instanceof ErrorEvent, "Got an ErrorEvent");
57 is(event.message, "Error: " + sentMessage, "Got correct error");
58 is(event.filename, errorFilename, "Got correct filename");
59 is(event.lineno, errorLine, "Got correct lineno");
60 is(event.colno, errorColumn, "Got correct column");
61 ok(receivedMessage !== undefined, "Got message already");
62 ok(receivedError === undefined, "Haven't gotten error yet");
63 receivedError = event.message;
64 event.preventDefault();
65 SimpleTest.finish();
66 };
68 worker.port.postMessage(sentMessage);
69 });
71 SimpleTest.waitForExplicitFinish();
73 </script>
74 </pre>
75 </body>
76 </html>