Bug 966132 - Console is replaceable in workers, r=bz

This commit is contained in:
Andrea Marchesini 2014-01-31 09:12:32 -08:00
parent de5a725c13
commit b941c0d87c
4 changed files with 59 additions and 0 deletions

View File

@ -14,7 +14,10 @@
interface WorkerGlobalScope : EventTarget {
readonly attribute WorkerGlobalScope self;
[Replaceable]
readonly attribute WorkerConsole console;
readonly attribute WorkerLocation location;
void close();

View File

@ -0,0 +1,10 @@
/**
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
onmessage = function(event) {
postMessage({event: 'console exists', status: !!console, last : false});
console = 42;
postMessage({event: 'console is replaceable', status: console === 42, last : true});
}

View File

@ -8,6 +8,7 @@ support-files =
close_worker.js
content_worker.js
console_worker.js
consoleReplaceable_worker.js
csp_worker.js
errorPropagation_iframe.html
errorPropagation_worker.js
@ -75,6 +76,7 @@ support-files =
[test_close.html]
[test_closeOnGC.html]
[test_console.html]
[test_consoleReplaceable.html]
[test_contentWorker.html]
[test_csp.html]
[test_csp.html^headers^]

View File

@ -0,0 +1,44 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<!--
Tests of DOM Worker Console
-->
<head>
<title>Test for DOM Worker Console</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
<script class="testbody" language="javascript">
var worker = new Worker("consoleReplaceable_worker.js");
worker.onmessage = function(event) {
is(event.target, worker, "Worker and target match!");
ok(event.data.status, event.data.event);
if (event.data.last)
SimpleTest.finish();
};
worker.onerror = function(event) {
ok(false, "Worker had an error: " + event.message);
SimpleTest.finish();
}
worker.postMessage(true);
SimpleTest.waitForExplicitFinish();
</script>
</pre>
</body>
</html>