aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/extendablemessageevent.rs
diff options
context:
space:
mode:
authorKyle Nosar <kylenosar@gmail.com>2020-07-19 11:15:47 -0700
committerKyle Nosar <kylenosar@gmail.com>2020-07-30 05:56:29 -0700
commit95ddcf5d4d7a394bc45cb300754513afcc8d8475 (patch)
treeeb0a64b0bb6add83ad8428e58fab549d627c6520 /components/script/dom/extendablemessageevent.rs
parentb1bd4090470c6f2b9ff4ea410455ae8e38fec2c5 (diff)
downloadservo-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.rs24
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 {