Make dispatch_jsval methods take a &GlobalScope

This commit is contained in:
Anthony Ramine 2016-10-01 21:17:46 +02:00
parent b3393fba18
commit 20bacbf42e
7 changed files with 16 additions and 19 deletions

View file

@ -283,7 +283,7 @@ impl DedicatedWorkerGlobalScope {
scope.reflector().get_jsobject().get()); scope.reflector().get_jsobject().get());
rooted!(in(scope.get_cx()) let mut message = UndefinedValue()); rooted!(in(scope.get_cx()) let mut message = UndefinedValue());
data.read(scope.upcast(), message.handle_mut()); data.read(scope.upcast(), message.handle_mut());
MessageEvent::dispatch_jsval(target, GlobalRef::Worker(scope), message.handle()); MessageEvent::dispatch_jsval(target, scope.upcast(), message.handle());
}, },
WorkerScriptMsg::Common(CommonScriptMsg::RunnableMsg(_, runnable)) => { WorkerScriptMsg::Common(CommonScriptMsg::RunnableMsg(_, runnable)) => {
runnable.handler() runnable.handler()

View file

@ -65,10 +65,10 @@ impl ExtendableMessageEvent {
impl ExtendableMessageEvent { impl ExtendableMessageEvent {
pub fn dispatch_jsval(target: &EventTarget, pub fn dispatch_jsval(target: &EventTarget,
scope: GlobalRef, scope: &GlobalScope,
message: HandleValue) { message: HandleValue) {
let Extendablemessageevent = ExtendableMessageEvent::new( let Extendablemessageevent = ExtendableMessageEvent::new(
scope.as_global_scope(), atom!("message"), false, false, message, scope, atom!("message"), false, false, message,
DOMString::new(), DOMString::new()); DOMString::new(), DOMString::new());
Extendablemessageevent.upcast::<Event>().fire(target); Extendablemessageevent.upcast::<Event>().fire(target);
} }

View file

@ -81,10 +81,10 @@ impl MessageEvent {
impl MessageEvent { impl MessageEvent {
pub fn dispatch_jsval(target: &EventTarget, pub fn dispatch_jsval(target: &EventTarget,
scope: GlobalRef, scope: &GlobalScope,
message: HandleValue) { message: HandleValue) {
let messageevent = MessageEvent::new( let messageevent = MessageEvent::new(
scope.as_global_scope(), scope,
atom!("message"), atom!("message"),
false, false,
false, false,

View file

@ -239,7 +239,7 @@ impl ServiceWorkerGlobalScope {
let _ac = JSAutoCompartment::new(scope.get_cx(), scope.reflector().get_jsobject().get()); let _ac = JSAutoCompartment::new(scope.get_cx(), scope.reflector().get_jsobject().get());
rooted!(in(scope.get_cx()) let mut message = UndefinedValue()); rooted!(in(scope.get_cx()) let mut message = UndefinedValue());
data.read(scope.upcast(), message.handle_mut()); data.read(scope.upcast(), message.handle_mut());
ExtendableMessageEvent::dispatch_jsval(target, GlobalRef::Worker(scope), message.handle()); ExtendableMessageEvent::dispatch_jsval(target, scope.upcast(), message.handle());
}, },
CommonWorker(WorkerScriptMsg::Common(CommonScriptMsg::RunnableMsg(_, runnable))) => { CommonWorker(WorkerScriptMsg::Common(CommonScriptMsg::RunnableMsg(_, runnable))) => {
runnable.handler() runnable.handler()

View file

@ -587,10 +587,10 @@ impl Runnable for MessageReceivedTask {
} }
// Step 2-5. // Step 2-5.
let global = ws.r().global(); let global = ws.global_scope();
// global.get_cx() returns a valid `JSContext` pointer, so this is safe. // global.get_cx() returns a valid `JSContext` pointer, so this is safe.
unsafe { unsafe {
let cx = global.r().get_cx(); let cx = global.get_cx();
let _ac = JSAutoCompartment::new(cx, ws.reflector().get_jsobject().get()); let _ac = JSAutoCompartment::new(cx, ws.reflector().get_jsobject().get());
rooted!(in(cx) let mut message = UndefinedValue()); rooted!(in(cx) let mut message = UndefinedValue());
match self.message { match self.message {
@ -598,10 +598,7 @@ impl Runnable for MessageReceivedTask {
MessageData::Binary(data) => { MessageData::Binary(data) => {
match ws.binary_type.get() { match ws.binary_type.get() {
BinaryType::Blob => { BinaryType::Blob => {
let blob = Blob::new( let blob = Blob::new(&global, BlobImpl::new_from_bytes(data), "".to_owned());
global.r().as_global_scope(),
BlobImpl::new_from_bytes(data),
"".to_owned());
blob.to_jsval(cx, message.handle_mut()); blob.to_jsval(cx, message.handle_mut());
} }
BinaryType::Arraybuffer => { BinaryType::Arraybuffer => {
@ -617,7 +614,7 @@ impl Runnable for MessageReceivedTask {
} }
}, },
} }
MessageEvent::dispatch_jsval(ws.upcast(), global.r(), message.handle()); MessageEvent::dispatch_jsval(ws.upcast(), &global, message.handle());
} }
} }
} }

View file

@ -1776,7 +1776,7 @@ impl Runnable for PostMessageHandler {
// Step 11-12. // Step 11-12.
// TODO(#12719): set the other attributes. // TODO(#12719): set the other attributes.
MessageEvent::dispatch_jsval(window.upcast(), MessageEvent::dispatch_jsval(window.upcast(),
GlobalRef::Window(&*window), window.upcast(),
message.handle()); message.handle());
} }
} }

View file

@ -130,12 +130,12 @@ impl Worker {
return; return;
} }
let global = worker.r().global(); let global = worker.global_scope();
let target = worker.upcast(); let target = worker.upcast();
let _ac = JSAutoCompartment::new(global.r().get_cx(), target.reflector().get_jsobject().get()); let _ac = JSAutoCompartment::new(global.get_cx(), target.reflector().get_jsobject().get());
rooted!(in(global.r().get_cx()) let mut message = UndefinedValue()); rooted!(in(global.get_cx()) let mut message = UndefinedValue());
data.read(global.r().as_global_scope(), message.handle_mut()); data.read(&global, message.handle_mut());
MessageEvent::dispatch_jsval(target, global.r(), message.handle()); MessageEvent::dispatch_jsval(target, &global, message.handle());
} }
pub fn dispatch_simple_error(address: TrustedWorkerAddress) { pub fn dispatch_simple_error(address: TrustedWorkerAddress) {