mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-30 11:07:29 +09:00
Bug 1288768 - Better error reporting for network errors in workers
This commit is contained in:
parent
12f3d0302c
commit
6509b677d3
8 changed files with 7 additions and 22 deletions
|
|
@ -23,11 +23,8 @@
|
||||||
);
|
);
|
||||||
|
|
||||||
worker.onerror = function(error) {
|
worker.onerror = function(error) {
|
||||||
var msg = error.message;
|
// this means CSP blocked it
|
||||||
if (msg.match(/^NetworkError/) || msg.match(/Failed to load worker script/)) {
|
var msg = !("message" in error) ? "blocked" : e.message;
|
||||||
// this means CSP blocked it
|
|
||||||
msg = "blocked";
|
|
||||||
}
|
|
||||||
window.parent.postMessage({id:page_id, message:msg}, 'http://mochi.test:8888');
|
window.parent.postMessage({id:page_id, message:msg}, 'http://mochi.test:8888');
|
||||||
error.preventDefault();
|
error.preventDefault();
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -53,9 +53,6 @@ function testWorker([mime, shouldLoad]) {
|
||||||
};
|
};
|
||||||
worker.onerror = (error) => {
|
worker.onerror = (error) => {
|
||||||
ok(!shouldLoad, `worker with wrong mime '${mime}' should be blocked`);
|
ok(!shouldLoad, `worker with wrong mime '${mime}' should be blocked`);
|
||||||
let msg = error.message;
|
|
||||||
ok(msg.match(/^NetworkError/) || msg.match(/Failed to load worker script/),
|
|
||||||
"should gets correct error message");
|
|
||||||
error.preventDefault();
|
error.preventDefault();
|
||||||
resolve();
|
resolve();
|
||||||
}
|
}
|
||||||
|
|
@ -74,9 +71,6 @@ function testWorkerImportScripts([mime, shouldLoad]) {
|
||||||
};
|
};
|
||||||
worker.onerror = (error) => {
|
worker.onerror = (error) => {
|
||||||
ok(!shouldLoad, `worker/importScripts with wrong mime '${mime}' should be blocked`);
|
ok(!shouldLoad, `worker/importScripts with wrong mime '${mime}' should be blocked`);
|
||||||
let msg = error.message;
|
|
||||||
ok(msg.match(/^NetworkError/) || msg.match(/Failed to load worker script/),
|
|
||||||
"should gets correct error message");
|
|
||||||
error.preventDefault();
|
error.preventDefault();
|
||||||
resolve();
|
resolve();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,6 @@ Tests of DOM Worker Threads
|
||||||
|
|
||||||
worker.onerror = function(event) {
|
worker.onerror = function(event) {
|
||||||
is(event.target, worker);
|
is(event.target, worker);
|
||||||
is(event.message, 'NetworkError: Failed to load worker script at "nonexistent_worker.js"');
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
SimpleTest.finish();
|
SimpleTest.finish();
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,6 @@ function test(script) {
|
||||||
|
|
||||||
worker.onerror = function(event) {
|
worker.onerror = function(event) {
|
||||||
is(event.target, worker);
|
is(event.target, worker);
|
||||||
ok(event.message.startsWith("NetworkError: Failed to load worker script"))
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
runTests();
|
runTests();
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -13,15 +13,13 @@
|
||||||
<script class="testbody" type="text/javascript">
|
<script class="testbody" type="text/javascript">
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var loadErrorMessage = 'SecurityError: Failed to load worker script at "about:blank"';
|
|
||||||
|
|
||||||
function nextTest() {
|
function nextTest() {
|
||||||
(function(){
|
(function(){
|
||||||
function workerfunc() {
|
function workerfunc() {
|
||||||
var subworker = new Worker("about:blank");
|
var subworker = new Worker("about:blank");
|
||||||
subworker.onerror = function(e) {
|
subworker.onerror = function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
postMessage(e.message);
|
postMessage("ERROR");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var b = new Blob([workerfunc+'workerfunc();']);
|
var b = new Blob([workerfunc+'workerfunc();']);
|
||||||
|
|
@ -37,7 +35,7 @@ function nextTest() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
w.onmessage = function(e) {
|
w.onmessage = function(e) {
|
||||||
is(e.data, loadErrorMessage,
|
is(e.data, "ERROR",
|
||||||
"Should catch the error when loading inner script");
|
"Should catch the error when loading inner script");
|
||||||
if (++i < 2) callworker(i);
|
if (++i < 2) callworker(i);
|
||||||
else SimpleTest.finish();
|
else SimpleTest.finish();
|
||||||
|
|
@ -54,8 +52,6 @@ try {
|
||||||
var worker = new Worker("about:blank");
|
var worker = new Worker("about:blank");
|
||||||
worker.onerror = function(e) {
|
worker.onerror = function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
is(e.message, loadErrorMessage,
|
|
||||||
"Should get the right error from the toplevel script");
|
|
||||||
nextTest();
|
nextTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ async_test(function(t) {
|
||||||
try {
|
try {
|
||||||
var w = new Worker("ftp://example.org/support/WorkerBasic.js");
|
var w = new Worker("ftp://example.org/support/WorkerBasic.js");
|
||||||
w.onerror = t.step_func_done(function(e) {
|
w.onerror = t.step_func_done(function(e) {
|
||||||
assert_true(e instanceof ErrorEvent);
|
assert_true(e instanceof Event);
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
t.step_func_done(function(e) { assert_true(true); });
|
t.step_func_done(function(e) { assert_true(true); });
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ function testSharedWorkerHelper(t, script) {
|
||||||
try {
|
try {
|
||||||
var worker = new SharedWorker(script, '');
|
var worker = new SharedWorker(script, '');
|
||||||
worker.onerror = t.step_func_done(function(e) {
|
worker.onerror = t.step_func_done(function(e) {
|
||||||
assert_true(e instanceof ErrorEvent);
|
assert_true(e instanceof Event);
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
t.step_func_done(function(e) { assert_true(true); });
|
t.step_func_done(function(e) { assert_true(true); });
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ function testSharedWorkerHelper(t, script) {
|
||||||
try {
|
try {
|
||||||
var worker = new SharedWorker(script, '');
|
var worker = new SharedWorker(script, '');
|
||||||
worker.onerror = t.step_func_done(function(e) {
|
worker.onerror = t.step_func_done(function(e) {
|
||||||
assert_true(e instanceof ErrorEvent);
|
assert_true(e instanceof Event);
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
t.step_func_done(function(e) { assert_true(true); });
|
t.step_func_done(function(e) { assert_true(true); });
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue