diff options
author | Kyle Nosar <kylenosar@gmail.com> | 2020-07-19 11:15:47 -0700 |
---|---|---|
committer | Kyle Nosar <kylenosar@gmail.com> | 2020-07-30 05:56:29 -0700 |
commit | 95ddcf5d4d7a394bc45cb300754513afcc8d8475 (patch) | |
tree | eb0a64b0bb6add83ad8428e58fab549d627c6520 /components/script/dom/extendablemessageevent.rs | |
parent | b1bd4090470c6f2b9ff4ea410455ae8e38fec2c5 (diff) | |
download | servo-95ddcf5d4d7a394bc45cb300754513afcc8d8475.tar.gz servo-95ddcf5d4d7a394bc45cb300754513afcc8d8475.zip |
Use ExtendableMessageEvent for messageerror in service workers
Diffstat (limited to 'components/script/dom/extendablemessageevent.rs')
-rw-r--r-- | components/script/dom/extendablemessageevent.rs | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/components/script/dom/extendablemessageevent.rs b/components/script/dom/extendablemessageevent.rs index 8d1a965808b..19bca33c6ca 100644 --- a/components/script/dom/extendablemessageevent.rs +++ b/components/script/dom/extendablemessageevent.rs @@ -28,11 +28,16 @@ use servo_atoms::Atom; #[dom_struct] #[allow(non_snake_case)] pub struct ExtendableMessageEvent { + /// https://w3c.github.io/ServiceWorker/#extendableevent event: ExtendableEvent, + /// https://w3c.github.io/ServiceWorker/#dom-extendablemessageevent-data #[ignore_malloc_size_of = "mozjs"] data: Heap<JSVal>, + /// <https://w3c.github.io/ServiceWorker/#extendablemessage-event-origin> origin: DOMString, + /// https://w3c.github.io/ServiceWorker/#dom-extendablemessageevent-lasteventid lastEventId: DOMString, + /// https://w3c.github.io/ServiceWorker/#dom-extendablemessageevent-ports ports: Vec<Dom<MessagePort>>, #[ignore_malloc_size_of = "mozjs"] frozen_ports: DomRefCell<Option<Heap<JSVal>>>, @@ -95,8 +100,8 @@ impl ExtendableMessageEvent { init.parent.parent.bubbles, init.parent.parent.cancelable, init.data.handle(), - init.origin.clone().unwrap(), - init.lastEventId.clone().unwrap(), + init.origin.clone(), + init.lastEventId.clone(), vec![], ); Ok(ev) @@ -123,6 +128,21 @@ impl ExtendableMessageEvent { ); Extendablemessageevent.upcast::<Event>().fire(target); } + + pub fn dispatch_error(target: &EventTarget, scope: &GlobalScope) { + let init = ExtendableMessageEventBinding::ExtendableMessageEventInit::empty(); + let ExtendableMsgEvent = ExtendableMessageEvent::new( + scope, + atom!("messageerror"), + init.parent.parent.bubbles, + init.parent.parent.cancelable, + init.data.handle(), + init.origin.clone(), + init.lastEventId.clone(), + init.ports.clone(), + ); + ExtendableMsgEvent.upcast::<Event>().fire(target); + } } impl ExtendableMessageEventMethods for ExtendableMessageEvent { |