| <!DOCTYPE html> |
| <title>Test SharedWorker script error handling functionality.</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| promise_test(t => { |
| let worker; |
| |
| return new Promise((resolve) => { |
| worker = new SharedWorker("support/SharedWorker-script-error.js"); |
| // Shared workers should only invoke onerror for loading errors. |
| worker.onerror = function(evt) { |
| assert_unreached("FAIL: onerror invoked for a script error."); |
| }; |
| worker.port.postMessage("unhandledError"); |
| worker.port.onmessage = resolve; |
| }).then(e => { |
| assert_equals(e.data, "SUCCESS: unhandled error generated"); |
| }); |
| }, 'Test script error unhandled.') |
| |
| promise_test(t => { |
| let worker; |
| |
| return new Promise((resolve) => { |
| worker = new SharedWorker("support/SharedWorker-script-error.js"); |
| // Shared workers should only invoke onerror for loading errors. |
| worker.onerror = function(evt) { |
| assert_unreached("FAIL: onerror invoked for a script error."); |
| }; |
| worker.port.postMessage("handledError"); |
| worker.port.onmessage = resolve; |
| }).then(e => { |
| assert_equals(e.data, "SUCCESS: error handled via onerror"); |
| }); |
| }, 'Test script error handled.') |
| </script> |