| Index: LayoutTests/fast/workers/worker-error-handler-worker.html
|
| diff --git a/LayoutTests/fast/workers/worker-error-handler-worker.html b/LayoutTests/fast/workers/worker-error-handler-worker.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..761eb27c923d6ca704d0407e6b9b5b97cc09e8b5
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/workers/worker-error-handler-worker.html
|
| @@ -0,0 +1,57 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| +<body>
|
| +<p>Testing worker error handler invocation order.</p>
|
| +<div id="result"></div>
|
| +<script type="text/javascript">
|
| +var windowErrorHandlerInvoked = false;
|
| +var workerErrorHandlerInvoked = false;
|
| +var workerGlobalScopeErrorHandlerInvoked = false;
|
| +var testFlagged = false;
|
| +function log(message)
|
| +{
|
| + document.getElementById("result").innerHTML += message + "</br>";
|
| +}
|
| +
|
| +if (window.testRunner) {
|
| + testRunner.dumpAsText();
|
| + testRunner.waitUntilDone();
|
| +}
|
| +
|
| +window.onerror = function (e) {
|
| + windowErrorHandlerInvoked = true;
|
| + log("FAIL: Window error handler should not be invoked!");
|
| +}
|
| +
|
| +var worker = new Worker('resources/worker-error-handler-worker.js');
|
| +worker.postMessage("Start");
|
| +
|
| +worker.onmessage = function(evt) {
|
| + if (evt.data == "workerGlobalScopeErrorHandlerInvoked") {
|
| + workerGlobalScopeErrorHandlerInvoked = true;
|
| + log("PASS: WorkerGlobalScope error handler invoked.");
|
| + }
|
| +}
|
| +worker.onerror = function (e) {
|
| + workerErrorHandlerInvoked = true;
|
| + log("PASS: Worker error handler invoked.");
|
| + setTimeout(checkErrorStatus(), 100);
|
| + // We have cancelled this error event, hence should it should
|
| + // not be propagated to the window.onerror error handler.
|
| + return true;
|
| +}
|
| +
|
| +function checkErrorStatus() {
|
| + if(!windowErrorHandlerInvoked) {
|
| + log("TEST PASS.");
|
| + }
|
| + else {
|
| + log("TEST FAIL.")
|
| + }
|
| + log("DONE.")
|
| + if (window.testRunner)
|
| + testRunner.notifyDone();
|
| +}
|
| +</script>
|
| +</body>
|
| +</html>
|
|
|