Bug 1060621 - WorkerScope should CC mLocation and mNavigator, r=bz

This commit is contained in:
Andrea Marchesini 2014-09-02 21:02:06 +01:00
parent 3ce2052a5c
commit 74ccc80191
4 changed files with 38 additions and 2 deletions

View File

@ -56,7 +56,8 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(WorkerGlobalScope,
tmp->mWorkerPrivate->AssertIsOnWorkerThread();
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mConsole)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mPerformance)
// XXXbz what about mLocation and mNavigator?
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mLocation)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mNavigator)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(WorkerGlobalScope,
@ -64,7 +65,8 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(WorkerGlobalScope,
tmp->mWorkerPrivate->AssertIsOnWorkerThread();
NS_IMPL_CYCLE_COLLECTION_UNLINK(mConsole)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mPerformance)
// XXXbz what about mLocation and mNavigator?
NS_IMPL_CYCLE_COLLECTION_UNLINK(mLocation)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mNavigator)
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(WorkerGlobalScope,

View File

@ -0,0 +1,2 @@
navigator.foobar = 42;
postMessage('done');

View File

@ -82,6 +82,7 @@ support-files =
test_worker_performance_now.js
worker_driver.js
worker_wrapper.js
bug1060621_worker.js
[test_404.html]
[test_atob.html]
@ -170,3 +171,4 @@ skip-if = buildapp == 'b2g' || e10s
skip-if = (os == "win") || (os == "mac") || toolkit == 'android' || e10s #bug 798220
[test_url_exceptions.html]
[test_urlSearchParams.html]
[test_bug1060621.html]

View File

@ -0,0 +1,30 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Test for URLSearchParams object in workers</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"></pre>
<script class="testbody" type="text/javascript">
var worker = new Worker("bug1060621_worker.js");
worker.onmessage = function(event) {
ok(true, "The operation is done. We should not leak.");
SimpleTest.finish();
};
SimpleTest.waitForExplicitFinish();
</script>
</pre>
</body>
</html>