gecko-dev/testing/web-platform/tests/workers/SharedWorker-exception-propagation.html
kdillon a02a4685f9 Bug 1526319 [wpt PR 14877] - Upstream fast/workers to external/wpt/workers: first batch., a=testonly
Automatic update from web-platform-tests
Upstream fast/workers to external/wpt/workers: first batch.

Bug: 795636
Change-Id: Ifbeaf7eab76b992ac41a4dc7f23ec46f72ad8ca2
Reviewed-on: https://chromium-review.googlesource.com/c/1412827
Commit-Queue: Katie Dillon <kdillon@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#625734}

--
Add a dedicated test for uncaught errors (not) propagating from shared workers

--

wpt-commits: 613de7dfc410afb676453d73f27a0103f98f7614, 4139dfe3c5ad9c43f4286a549d9a480699ef719e
wpt-pr: 14877
2019-02-14 11:38:21 +00:00

33 lines
1.3 KiB
HTML

<!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>