aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/workerglobalscope.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/workerglobalscope.rs')
-rw-r--r--components/script/dom/workerglobalscope.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs
index 18f51156aec..d60ddb84f88 100644
--- a/components/script/dom/workerglobalscope.rs
+++ b/components/script/dom/workerglobalscope.rs
@@ -3,9 +3,10 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use devtools_traits::{DevtoolScriptControlMsg, ScriptToDevtoolsControlMsg, WorkerId};
+use dom::bindings::codegen::Bindings::EventHandlerBinding::OnErrorEventHandlerNonNull;
use dom::bindings::codegen::Bindings::FunctionBinding::Function;
use dom::bindings::codegen::Bindings::WorkerGlobalScopeBinding::WorkerGlobalScopeMethods;
-use dom::bindings::error::{Error, ErrorResult, Fallible, report_pending_exception};
+use dom::bindings::error::{Error, ErrorResult, Fallible, report_pending_exception, ErrorInfo};
use dom::bindings::global::GlobalRef;
use dom::bindings::inheritance::Castable;
use dom::bindings::js::{JS, MutNullableHeap, Root};
@@ -248,6 +249,9 @@ impl WorkerGlobalScopeMethods for WorkerGlobalScope {
})
}
+ // https://html.spec.whatwg.org/multipage/#handler-workerglobalscope-onerror
+ error_event_handler!(error, GetOnerror, SetOnerror);
+
// https://html.spec.whatwg.org/multipage/#dom-workerglobalscope-importscripts
fn ImportScripts(&self, url_strings: Vec<DOMString>) -> ErrorResult {
let mut urls = Vec::with_capacity(url_strings.len());
@@ -451,4 +455,11 @@ impl WorkerGlobalScope {
closing.store(true, Ordering::SeqCst);
}
}
+
+ /// https://html.spec.whatwg.org/multipage/#report-the-error
+ pub fn report_an_error(&self, error_info: ErrorInfo, value: HandleValue) {
+ self.downcast::<DedicatedWorkerGlobalScope>()
+ .expect("Should implement report_an_error for this worker")
+ .report_an_error(error_info, value);
+ }
}