Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /workers/SharedWorker-exception-propagation.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<title>Uncaught error in shared worker should not propagate to window</title>
<link rel="help" href="https://html.spec.whatwg.org/multipage/workers.html#runtime-script-errors-2">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/SharedWorker-create-common.js"></script>
<script>
// Suppress the default handling of the error event so that a failure
// manifests as a failed test and not a harness error.
setup({ allow_uncaught_exception: true });
async_test(function(t) {
addEventListener("error", t.unreached_func("error event fired"));
var worker = createWorker();
worker.postMessage("throw");
worker.postMessage("ping");
var pongs = 0;
worker.onmessage = function(evt) {
// Wait for response from ping - that's how we know we have thrown the exception.
if (evt.data == "PASS: Received ping message") {
pongs++;
if (pongs == 1) {
// Send another "ping" message and wait for the response before
// ending the test, so that any error propagation that is now
// in flight will have finished.
worker.postMessage("ping");
} else {
t.done();
}
}
};
});
</script>