aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2016-10-05 10:07:53 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2016-10-06 21:35:59 +0200
commit00e66a777afba1f7f5ad189d38d7c58b1ef1cdab (patch)
tree028ad9f13a8c530fea0b0db0bc6cc14bb03fd915 /components/script
parent907781eb75b06bd11cccb2c3694ab5ce62bc548a (diff)
downloadservo-00e66a777afba1f7f5ad189d38d7c58b1ef1cdab.tar.gz
servo-00e66a777afba1f7f5ad189d38d7c58b1ef1cdab.zip
Make workers' interrupt_callback use GlobalScope
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/dedicatedworkerglobalscope.rs10
-rw-r--r--components/script/dom/serviceworkerglobalscope.rs10
2 files changed, 8 insertions, 12 deletions
diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs
index f362f4b2f7a..4418e0654f6 100644
--- a/components/script/dom/dedicatedworkerglobalscope.rs
+++ b/components/script/dom/dedicatedworkerglobalscope.rs
@@ -11,7 +11,7 @@ use dom::bindings::codegen::Bindings::DedicatedWorkerGlobalScopeBinding;
use dom::bindings::codegen::Bindings::DedicatedWorkerGlobalScopeBinding::DedicatedWorkerGlobalScopeMethods;
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
use dom::bindings::error::{ErrorInfo, ErrorResult};
-use dom::bindings::global::{GlobalRef, global_root_from_context};
+use dom::bindings::global::global_scope_from_context;
use dom::bindings::inheritance::Castable;
use dom::bindings::js::{Root, RootCollection};
use dom::bindings::reflector::Reflectable;
@@ -342,11 +342,9 @@ impl DedicatedWorkerGlobalScope {
#[allow(unsafe_code)]
unsafe extern "C" fn interrupt_callback(cx: *mut JSContext) -> bool {
- let global = global_root_from_context(cx);
- let worker = match global.r() {
- GlobalRef::Worker(w) => w,
- _ => panic!("global for worker is not a worker scope")
- };
+ let worker =
+ Root::downcast::<WorkerGlobalScope>(global_scope_from_context(cx))
+ .expect("global is not a worker scope");
assert!(worker.is::<DedicatedWorkerGlobalScope>());
// A false response causes the script to terminate
diff --git a/components/script/dom/serviceworkerglobalscope.rs b/components/script/dom/serviceworkerglobalscope.rs
index 62037763a6e..c5f993fba02 100644
--- a/components/script/dom/serviceworkerglobalscope.rs
+++ b/components/script/dom/serviceworkerglobalscope.rs
@@ -8,7 +8,7 @@ use dom::abstractworker::WorkerScriptMsg;
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
use dom::bindings::codegen::Bindings::ServiceWorkerGlobalScopeBinding;
use dom::bindings::codegen::Bindings::ServiceWorkerGlobalScopeBinding::ServiceWorkerGlobalScopeMethods;
-use dom::bindings::global::{GlobalRef, global_root_from_context};
+use dom::bindings::global::global_scope_from_context;
use dom::bindings::inheritance::Castable;
use dom::bindings::js::{Root, RootCollection};
use dom::bindings::reflector::Reflectable;
@@ -310,11 +310,9 @@ impl ServiceWorkerGlobalScope {
#[allow(unsafe_code)]
unsafe extern "C" fn interrupt_callback(cx: *mut JSContext) -> bool {
- let global = global_root_from_context(cx);
- let worker = match global.r() {
- GlobalRef::Worker(w) => w,
- _ => panic!("global for worker is not a worker scope")
- };
+ let worker =
+ Root::downcast::<WorkerGlobalScope>(global_scope_from_context(cx))
+ .expect("global is not a worker scope");
assert!(worker.is::<ServiceWorkerGlobalScope>());
// A false response causes the script to terminate