mirror of
https://github.com/servo/servo.git
synced 2025-08-08 06:55:31 +01:00
continue messageport, transferable, postmessage options
This commit is contained in:
parent
c3b17c1201
commit
2f8932a6a1
100 changed files with 2456 additions and 1171 deletions
|
@ -12,12 +12,14 @@ use crate::dom::bindings::codegen::Bindings::WorkerBinding::WorkerType;
|
|||
use crate::dom::bindings::inheritance::Castable;
|
||||
use crate::dom::bindings::root::{DomRoot, RootCollection, ThreadLocalStackRoots};
|
||||
use crate::dom::bindings::str::DOMString;
|
||||
use crate::dom::bindings::structuredclone;
|
||||
use crate::dom::dedicatedworkerglobalscope::AutoWorkerReset;
|
||||
use crate::dom::event::Event;
|
||||
use crate::dom::eventtarget::EventTarget;
|
||||
use crate::dom::extendableevent::ExtendableEvent;
|
||||
use crate::dom::extendablemessageevent::ExtendableMessageEvent;
|
||||
use crate::dom::globalscope::GlobalScope;
|
||||
use crate::dom::messageevent::MessageEvent;
|
||||
use crate::dom::worker::TrustedWorkerAddress;
|
||||
use crate::dom::workerglobalscope::WorkerGlobalScope;
|
||||
use crate::fetch::load_whole_resource;
|
||||
|
@ -414,8 +416,17 @@ impl ServiceWorkerGlobalScope {
|
|||
let target = self.upcast();
|
||||
let _ac = enter_realm(&*scope);
|
||||
rooted!(in(*scope.get_cx()) let mut message = UndefinedValue());
|
||||
assert!(data.read(scope.upcast(), message.handle_mut()));
|
||||
ExtendableMessageEvent::dispatch_jsval(target, scope.upcast(), message.handle());
|
||||
if let Ok(ports) = structuredclone::read(scope.upcast(), data, message.handle_mut())
|
||||
{
|
||||
ExtendableMessageEvent::dispatch_jsval(
|
||||
target,
|
||||
scope.upcast(),
|
||||
message.handle(),
|
||||
ports,
|
||||
);
|
||||
} else {
|
||||
MessageEvent::dispatch_error(target, scope.upcast());
|
||||
}
|
||||
},
|
||||
CommonWorker(WorkerScriptMsg::Common(msg)) => {
|
||||
self.upcast::<WorkerGlobalScope>().process_event(msg);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue