aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/eventsource.rs102
-rw-r--r--components/script/dom/mod.rs1
-rw-r--r--components/script/dom/webidls/EventSource.webidl31
-rw-r--r--tests/wpt/include.ini2
-rw-r--r--tests/wpt/metadata/eventsource/dedicated-worker/eventsource-close.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm.ini20
-rw-r--r--tests/wpt/metadata/eventsource/dedicated-worker/eventsource-eventtarget.htm.ini5
-rw-r--r--tests/wpt/metadata/eventsource/dedicated-worker/eventsource-onmesage.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/dedicated-worker/eventsource-onopen.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/event-data.html.ini6
-rw-r--r--tests/wpt/metadata/eventsource/eventsource-close.htm.ini9
-rw-r--r--tests/wpt/metadata/eventsource/eventsource-constructor-document-domain.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/eventsource-constructor-non-same-origin.htm.ini20
-rw-r--r--tests/wpt/metadata/eventsource/eventsource-constructor-stringify.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/eventsource-constructor-url-multi-window.htm.ini5
-rw-r--r--tests/wpt/metadata/eventsource/eventsource-cross-origin.htm.ini21
-rw-r--r--tests/wpt/metadata/eventsource/eventsource-eventtarget.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/eventsource-onmessage.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/eventsource-onopen.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/eventsource-reconnect.htm.ini9
-rw-r--r--tests/wpt/metadata/eventsource/eventsource-request-cancellation.htm.ini5
-rw-r--r--tests/wpt/metadata/eventsource/format-bom-2.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-bom.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-comments.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-data-before-final-empty-line.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-field-data.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-field-event-empty.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-field-event.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-field-id-2.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-field-id.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-field-parsing.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-field-retry-bogus.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-field-retry-empty.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-field-retry.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-field-unknown.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-leading-space.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-mime-bogus.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-mime-trailing-semicolon.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-mime-valid-bogus.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-newlines.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-null-character.html.ini6
-rw-r--r--tests/wpt/metadata/eventsource/format-utf-8.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/interfaces.html.ini11
-rw-r--r--tests/wpt/metadata/eventsource/request-accept.htm.ini6
-rw-r--r--tests/wpt/metadata/eventsource/request-cache-control.htm.ini9
-rw-r--r--tests/wpt/metadata/eventsource/request-credentials.htm.ini12
-rw-r--r--tests/wpt/metadata/eventsource/request-redirect.htm.ini15
-rw-r--r--tests/wpt/metadata/eventsource/request-status-error.htm.ini24
-rw-r--r--tests/wpt/metadata/eventsource/shared-worker/eventsource-close.htm.ini5
-rw-r--r--tests/wpt/metadata/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm.ini20
-rw-r--r--tests/wpt/metadata/eventsource/shared-worker/eventsource-constructor-url-bogus.htm.ini5
-rw-r--r--tests/wpt/metadata/eventsource/shared-worker/eventsource-eventtarget.htm.ini5
-rw-r--r--tests/wpt/metadata/eventsource/shared-worker/eventsource-onmesage.htm.ini5
-rw-r--r--tests/wpt/metadata/eventsource/shared-worker/eventsource-onopen.htm.ini5
-rw-r--r--tests/wpt/metadata/eventsource/shared-worker/eventsource-prototype.htm.ini5
-rw-r--r--tests/wpt/metadata/eventsource/shared-worker/eventsource-url.htm.ini5
-rw-r--r--tests/wpt/metadata/html/dom/interfaces.html.ini51
-rw-r--r--tests/wpt/mozilla/tests/mozilla/interfaces.html1
58 files changed, 543 insertions, 51 deletions
diff --git a/components/script/dom/eventsource.rs b/components/script/dom/eventsource.rs
new file mode 100644
index 00000000000..a3addfdd445
--- /dev/null
+++ b/components/script/dom/eventsource.rs
@@ -0,0 +1,102 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+use dom::bindings::cell::DOMRefCell;
+use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
+use dom::bindings::codegen::Bindings::EventSourceBinding::{EventSourceInit, EventSourceMethods, Wrap};
+use dom::bindings::error::{Error, Fallible};
+use dom::bindings::global::GlobalRef;
+use dom::bindings::js::Root;
+use dom::bindings::reflector::reflect_dom_object;
+use dom::eventtarget::EventTarget;
+use std::cell::Cell;
+use url::Url;
+use util::str::DOMString;
+
+#[derive(JSTraceable, PartialEq, Copy, Clone, Debug, HeapSizeOf)]
+enum EventSourceReadyState {
+ Connecting = 0,
+ Open = 1,
+ Closed = 2
+}
+
+#[dom_struct]
+pub struct EventSource {
+ eventtarget: EventTarget,
+ url: Url,
+ ready_state: Cell<EventSourceReadyState>,
+ with_credentials: bool,
+ last_event_id: DOMRefCell<DOMString>
+}
+
+impl EventSource {
+ fn new_inherited(url: Url, with_credentials: bool) -> EventSource {
+ EventSource {
+ eventtarget: EventTarget::new_inherited(),
+ url: url,
+ ready_state: Cell::new(EventSourceReadyState::Connecting),
+ with_credentials: with_credentials,
+ last_event_id: DOMRefCell::new(DOMString::from(""))
+ }
+ }
+
+ fn new(global: GlobalRef, url: Url, with_credentials: bool) -> Root<EventSource> {
+ reflect_dom_object(box EventSource::new_inherited(url, with_credentials), global, Wrap)
+ }
+
+ pub fn Constructor(global: GlobalRef,
+ url_str: DOMString,
+ event_source_init: &EventSourceInit) -> Fallible<Root<EventSource>> {
+ // Steps 1-2
+ let base_url = global.get_url();
+ let url = match base_url.join(&*url_str) {
+ Ok(u) => u,
+ Err(_) => return Err(Error::Syntax)
+ };
+ // Step 3
+ let event_source = EventSource::new(global, url, event_source_init.withCredentials);
+ // Step 4
+ // Step 5
+ // Step 6
+ // Step 7
+ // Step 8
+ // Step 9
+ // Step 10
+ // Step 11
+ Ok(event_source)
+ // Step 12
+ }
+}
+
+impl EventSourceMethods for EventSource {
+ // https://html.spec.whatwg.org/multipage/#handler-eventsource-onopen
+ event_handler!(open, GetOnopen, SetOnopen);
+
+ // https://html.spec.whatwg.org/multipage/#handler-eventsource-onmessage
+ event_handler!(message, GetOnmessage, SetOnmessage);
+
+ // https://html.spec.whatwg.org/multipage/#handler-eventsource-onerror
+ event_handler!(error, GetOnerror, SetOnerror);
+
+ // https://html.spec.whatwg.org/multipage/#dom-eventsource-url
+ fn Url(&self) -> DOMString {
+ DOMString::from(self.url.serialize())
+ }
+
+ // https://html.spec.whatwg.org/multipage/#dom-eventsource-withcredentials
+ fn WithCredentials(&self) -> bool {
+ self.with_credentials
+ }
+
+ // https://html.spec.whatwg.org/multipage/#dom-eventsource-readystate
+ fn ReadyState(&self) -> u16 {
+ self.ready_state.get() as u16
+ }
+
+ // https://html.spec.whatwg.org/multipage/#dom-eventsource-close
+ fn Close(&self) {
+ self.ready_state.set(EventSourceReadyState::Closed);
+ // TODO: Terminate ongoing fetch
+ }
+}
diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs
index dedbcff986a..4fc7d110745 100644
--- a/components/script/dom/mod.rs
+++ b/components/script/dom/mod.rs
@@ -246,6 +246,7 @@ pub mod element;
pub mod errorevent;
pub mod event;
pub mod eventdispatcher;
+pub mod eventsource;
pub mod eventtarget;
pub mod file;
pub mod filelist;
diff --git a/components/script/dom/webidls/EventSource.webidl b/components/script/dom/webidls/EventSource.webidl
new file mode 100644
index 00000000000..2d6717d5af9
--- /dev/null
+++ b/components/script/dom/webidls/EventSource.webidl
@@ -0,0 +1,31 @@
+/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*
+ * The origin of this IDL file is:
+ * https://html.spec.whatwg.org/multipage/#eventsource
+ */
+
+[Constructor(DOMString url, optional EventSourceInit eventSourceInitDict),
+/*Exposed=(Window,Worker)*/]
+interface EventSource : EventTarget {
+ readonly attribute DOMString url;
+ readonly attribute boolean withCredentials;
+
+ // ready state
+ const unsigned short CONNECTING = 0;
+ const unsigned short OPEN = 1;
+ const unsigned short CLOSED = 2;
+ readonly attribute unsigned short readyState;
+
+ // networking
+ attribute EventHandler onopen;
+ attribute EventHandler onmessage;
+ attribute EventHandler onerror;
+ void close();
+};
+
+dictionary EventSourceInit {
+ boolean withCredentials = false;
+};
diff --git a/tests/wpt/include.ini b/tests/wpt/include.ini
index c11ad9d27c0..f77bbba67cc 100644
--- a/tests/wpt/include.ini
+++ b/tests/wpt/include.ini
@@ -9,6 +9,8 @@ skip: true
skip: false
[DOMEvents]
skip: false
+[eventsource]
+ skip: false
[FileAPI]
skip: false
[html]
diff --git a/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-close.htm.ini b/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-close.htm.ini
new file mode 100644
index 00000000000..a63e12bcf62
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-close.htm.ini
@@ -0,0 +1,6 @@
+[eventsource-close.htm]
+ type: testharness
+ expected: TIMEOUT
+ [dedicated worker - EventSource: close()]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm.ini b/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm.ini
new file mode 100644
index 00000000000..65080e165e4
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm.ini
@@ -0,0 +1,20 @@
+[eventsource-constructor-non-same-origin.htm]
+ type: testharness
+ [dedicated worker - EventSource: constructor (act as if there is a network error) (http://example.not/)]
+ expected: TIMEOUT
+
+ [dedicated worker - EventSource: constructor (act as if there is a network error) (https://example.not/test)]
+ expected: TIMEOUT
+
+ [dedicated worker - EventSource: constructor (act as if there is a network error) (ftp://example.not/)]
+ expected: TIMEOUT
+
+ [dedicated worker - EventSource: constructor (act as if there is a network error) (about:blank)]
+ expected: TIMEOUT
+
+ [dedicated worker - EventSource: constructor (act as if there is a network error) (mailto:whatwg@awesome.example)]
+ expected: TIMEOUT
+
+ [dedicated worker - EventSource: constructor (act as if there is a network error) (javascript:alert('FAIL'))]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-eventtarget.htm.ini b/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-eventtarget.htm.ini
new file mode 100644
index 00000000000..97a2fac1de8
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-eventtarget.htm.ini
@@ -0,0 +1,5 @@
+[eventsource-eventtarget.htm]
+ type: testharness
+ [dedicated worker - EventSource: addEventListener()]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-onmesage.htm.ini b/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-onmesage.htm.ini
new file mode 100644
index 00000000000..9d842e30be8
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-onmesage.htm.ini
@@ -0,0 +1,6 @@
+[eventsource-onmesage.htm]
+ type: testharness
+ expected: TIMEOUT
+ [dedicated worker - EventSource: onmessage]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-onopen.htm.ini b/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-onopen.htm.ini
new file mode 100644
index 00000000000..ba0ffa13f06
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/dedicated-worker/eventsource-onopen.htm.ini
@@ -0,0 +1,6 @@
+[eventsource-onopen.htm]
+ type: testharness
+ expected: TIMEOUT
+ [dedicated worker - EventSource: onopen (announcing the connection)]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/event-data.html.ini b/tests/wpt/metadata/eventsource/event-data.html.ini
new file mode 100644
index 00000000000..3d139d5f390
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/event-data.html.ini
@@ -0,0 +1,6 @@
+[event-data.html]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: lines and data parsing]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/eventsource-close.htm.ini b/tests/wpt/metadata/eventsource/eventsource-close.htm.ini
new file mode 100644
index 00000000000..3a1327e055d
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/eventsource-close.htm.ini
@@ -0,0 +1,9 @@
+[eventsource-close.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: close()]
+ expected: TIMEOUT
+
+ [EventSource: close(), test events]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/eventsource-constructor-document-domain.htm.ini b/tests/wpt/metadata/eventsource/eventsource-constructor-document-domain.htm.ini
new file mode 100644
index 00000000000..09278ea3c0c
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/eventsource-constructor-document-domain.htm.ini
@@ -0,0 +1,6 @@
+[eventsource-constructor-document-domain.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: document.domain]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/eventsource-constructor-non-same-origin.htm.ini b/tests/wpt/metadata/eventsource/eventsource-constructor-non-same-origin.htm.ini
new file mode 100644
index 00000000000..b102c849cef
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/eventsource-constructor-non-same-origin.htm.ini
@@ -0,0 +1,20 @@
+[eventsource-constructor-non-same-origin.htm]
+ type: testharness
+ [EventSource: constructor (act as if there is a network error) (http://example.not/)]
+ expected: TIMEOUT
+
+ [EventSource: constructor (act as if there is a network error) (https://example.not/test)]
+ expected: TIMEOUT
+
+ [EventSource: constructor (act as if there is a network error) (ftp://example.not/)]
+ expected: TIMEOUT
+
+ [EventSource: constructor (act as if there is a network error) (about:blank)]
+ expected: TIMEOUT
+
+ [EventSource: constructor (act as if there is a network error) (mailto:whatwg@awesome.example)]
+ expected: TIMEOUT
+
+ [EventSource: constructor (act as if there is a network error) (javascript:alert('FAIL'))]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/eventsource-constructor-stringify.htm.ini b/tests/wpt/metadata/eventsource/eventsource-constructor-stringify.htm.ini
new file mode 100644
index 00000000000..0e82e21bece
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/eventsource-constructor-stringify.htm.ini
@@ -0,0 +1,6 @@
+[eventsource-constructor-stringify.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: stringify argument, object]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/eventsource-constructor-url-multi-window.htm.ini b/tests/wpt/metadata/eventsource/eventsource-constructor-url-multi-window.htm.ini
new file mode 100644
index 00000000000..2aea8ac967e
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/eventsource-constructor-url-multi-window.htm.ini
@@ -0,0 +1,5 @@
+[eventsource-constructor-url-multi-window.htm]
+ type: testharness
+ [EventSource: resolving URLs]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/eventsource/eventsource-cross-origin.htm.ini b/tests/wpt/metadata/eventsource/eventsource-cross-origin.htm.ini
new file mode 100644
index 00000000000..d89399e968d
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/eventsource-cross-origin.htm.ini
@@ -0,0 +1,21 @@
+[eventsource-cross-origin.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: cross-origin basic use]
+ expected: TIMEOUT
+
+ [EventSource: cross-origin redirect use]
+ expected: TIMEOUT
+
+ [EventSource: cross-origin redirect use recon]
+ expected: TIMEOUT
+
+ [EventSource: cross-origin allow-origin: http://example.org should fail]
+ expected: TIMEOUT
+
+ [EventSource: cross-origin allow-origin:'' should fail]
+ expected: TIMEOUT
+
+ [EventSource: cross-origin No allow-origin should fail]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/eventsource-eventtarget.htm.ini b/tests/wpt/metadata/eventsource/eventsource-eventtarget.htm.ini
new file mode 100644
index 00000000000..2986fa9f354
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/eventsource-eventtarget.htm.ini
@@ -0,0 +1,6 @@
+[eventsource-eventtarget.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: addEventListener()]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/eventsource-onmessage.htm.ini b/tests/wpt/metadata/eventsource/eventsource-onmessage.htm.ini
new file mode 100644
index 00000000000..d857234c474
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/eventsource-onmessage.htm.ini
@@ -0,0 +1,6 @@
+[eventsource-onmessage.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: onmessage]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/eventsource-onopen.htm.ini b/tests/wpt/metadata/eventsource/eventsource-onopen.htm.ini
new file mode 100644
index 00000000000..6158296e042
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/eventsource-onopen.htm.ini
@@ -0,0 +1,6 @@
+[eventsource-onopen.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: onopen (announcing the connection)]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/eventsource-reconnect.htm.ini b/tests/wpt/metadata/eventsource/eventsource-reconnect.htm.ini
new file mode 100644
index 00000000000..8ad4f744c50
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/eventsource-reconnect.htm.ini
@@ -0,0 +1,9 @@
+[eventsource-reconnect.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: reconnection 200]
+ expected: TIMEOUT
+
+ [EventSource: reconnection, test reconnection events]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/eventsource-request-cancellation.htm.ini b/tests/wpt/metadata/eventsource/eventsource-request-cancellation.htm.ini
new file mode 100644
index 00000000000..94f8dc31936
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/eventsource-request-cancellation.htm.ini
@@ -0,0 +1,5 @@
+[eventsource-request-cancellation.htm]
+ type: testharness
+ [EventSource: request cancellation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/eventsource/format-bom-2.htm.ini b/tests/wpt/metadata/eventsource/format-bom-2.htm.ini
new file mode 100644
index 00000000000..e08dd805383
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-bom-2.htm.ini
@@ -0,0 +1,6 @@
+[format-bom-2.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: Double BOM]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-bom.htm.ini b/tests/wpt/metadata/eventsource/format-bom.htm.ini
new file mode 100644
index 00000000000..edd085c3ba2
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-bom.htm.ini
@@ -0,0 +1,6 @@
+[format-bom.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: BOM]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-comments.htm.ini b/tests/wpt/metadata/eventsource/format-comments.htm.ini
new file mode 100644
index 00000000000..5b2745cb89e
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-comments.htm.ini
@@ -0,0 +1,6 @@
+[format-comments.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: comment fest]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-data-before-final-empty-line.htm.ini b/tests/wpt/metadata/eventsource/format-data-before-final-empty-line.htm.ini
new file mode 100644
index 00000000000..6a524d99727
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-data-before-final-empty-line.htm.ini
@@ -0,0 +1,6 @@
+[format-data-before-final-empty-line.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: a data before final empty line]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-field-data.htm.ini b/tests/wpt/metadata/eventsource/format-field-data.htm.ini
new file mode 100644
index 00000000000..83036f40728
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-field-data.htm.ini
@@ -0,0 +1,6 @@
+[format-field-data.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: data field parsing]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-field-event-empty.htm.ini b/tests/wpt/metadata/eventsource/format-field-event-empty.htm.ini
new file mode 100644
index 00000000000..1fa346f80f6
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-field-event-empty.htm.ini
@@ -0,0 +1,6 @@
+[format-field-event-empty.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: empty "event" field]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-field-event.htm.ini b/tests/wpt/metadata/eventsource/format-field-event.htm.ini
new file mode 100644
index 00000000000..5fc6193a8a2
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-field-event.htm.ini
@@ -0,0 +1,6 @@
+[format-field-event.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: custom event name]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-field-id-2.htm.ini b/tests/wpt/metadata/eventsource/format-field-id-2.htm.ini
new file mode 100644
index 00000000000..f9ceffad6b5
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-field-id-2.htm.ini
@@ -0,0 +1,6 @@
+[format-field-id-2.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: Last-Event-ID (2)]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-field-id.htm.ini b/tests/wpt/metadata/eventsource/format-field-id.htm.ini
new file mode 100644
index 00000000000..9bf22db1d92
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-field-id.htm.ini
@@ -0,0 +1,6 @@
+[format-field-id.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: Last-Event-ID]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-field-parsing.htm.ini b/tests/wpt/metadata/eventsource/format-field-parsing.htm.ini
new file mode 100644
index 00000000000..c59034b79e0
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-field-parsing.htm.ini
@@ -0,0 +1,6 @@
+[format-field-parsing.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: field parsing]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-field-retry-bogus.htm.ini b/tests/wpt/metadata/eventsource/format-field-retry-bogus.htm.ini
new file mode 100644
index 00000000000..c5a0516b159
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-field-retry-bogus.htm.ini
@@ -0,0 +1,6 @@
+[format-field-retry-bogus.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: "retry" field (bogus)]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-field-retry-empty.htm.ini b/tests/wpt/metadata/eventsource/format-field-retry-empty.htm.ini
new file mode 100644
index 00000000000..6e23cbca96a
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-field-retry-empty.htm.ini
@@ -0,0 +1,6 @@
+[format-field-retry-empty.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: empty retry field]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-field-retry.htm.ini b/tests/wpt/metadata/eventsource/format-field-retry.htm.ini
new file mode 100644
index 00000000000..07da7095f1d
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-field-retry.htm.ini
@@ -0,0 +1,6 @@
+[format-field-retry.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: "retry" field]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-field-unknown.htm.ini b/tests/wpt/metadata/eventsource/format-field-unknown.htm.ini
new file mode 100644
index 00000000000..cb00c0617f9
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-field-unknown.htm.ini
@@ -0,0 +1,6 @@
+[format-field-unknown.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: unknown fields and parsing fun]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-leading-space.htm.ini b/tests/wpt/metadata/eventsource/format-leading-space.htm.ini
new file mode 100644
index 00000000000..71aec450fc9
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-leading-space.htm.ini
@@ -0,0 +1,6 @@
+[format-leading-space.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: leading space]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-mime-bogus.htm.ini b/tests/wpt/metadata/eventsource/format-mime-bogus.htm.ini
new file mode 100644
index 00000000000..1e8644951e1
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-mime-bogus.htm.ini
@@ -0,0 +1,6 @@
+[format-mime-bogus.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: bogus MIME type]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-mime-trailing-semicolon.htm.ini b/tests/wpt/metadata/eventsource/format-mime-trailing-semicolon.htm.ini
new file mode 100644
index 00000000000..f3fe2380fdf
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-mime-trailing-semicolon.htm.ini
@@ -0,0 +1,6 @@
+[format-mime-trailing-semicolon.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: MIME type with trailing ;]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-mime-valid-bogus.htm.ini b/tests/wpt/metadata/eventsource/format-mime-valid-bogus.htm.ini
new file mode 100644
index 00000000000..33716ff2979
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-mime-valid-bogus.htm.ini
@@ -0,0 +1,6 @@
+[format-mime-valid-bogus.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: incorrect valid MIME type]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-newlines.htm.ini b/tests/wpt/metadata/eventsource/format-newlines.htm.ini
new file mode 100644
index 00000000000..e7bf78f56db
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-newlines.htm.ini
@@ -0,0 +1,6 @@
+[format-newlines.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: newline fest]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-null-character.html.ini b/tests/wpt/metadata/eventsource/format-null-character.html.ini
new file mode 100644
index 00000000000..1dd1e7136be
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-null-character.html.ini
@@ -0,0 +1,6 @@
+[format-null-character.html]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: null character in response]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/format-utf-8.htm.ini b/tests/wpt/metadata/eventsource/format-utf-8.htm.ini
new file mode 100644
index 00000000000..fb2cf365e17
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/format-utf-8.htm.ini
@@ -0,0 +1,6 @@
+[format-utf-8.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: always UTF-8]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/interfaces.html.ini b/tests/wpt/metadata/eventsource/interfaces.html.ini
new file mode 100644
index 00000000000..66e64261789
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/interfaces.html.ini
@@ -0,0 +1,11 @@
+[interfaces.html]
+ type: testharness
+ [EventSource interface: existence and properties of interface object]
+ expected: FAIL
+
+ [EventSource interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [Stringification of new EventSource("http://foo")]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/eventsource/request-accept.htm.ini b/tests/wpt/metadata/eventsource/request-accept.htm.ini
new file mode 100644
index 00000000000..b74487ed13f
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/request-accept.htm.ini
@@ -0,0 +1,6 @@
+[request-accept.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: Accept header]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/request-cache-control.htm.ini b/tests/wpt/metadata/eventsource/request-cache-control.htm.ini
new file mode 100644
index 00000000000..5e79e2360a7
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/request-cache-control.htm.ini
@@ -0,0 +1,9 @@
+[request-cache-control.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: Cache-Control]
+ expected: TIMEOUT
+
+ [EventSource: Cache-Control 1]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/request-credentials.htm.ini b/tests/wpt/metadata/eventsource/request-credentials.htm.ini
new file mode 100644
index 00000000000..1ca9f95ac12
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/request-credentials.htm.ini
@@ -0,0 +1,12 @@
+[request-credentials.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: credentials: credentials enabled]
+ expected: TIMEOUT
+
+ [EventSource: credentials: credentials disabled]
+ expected: TIMEOUT
+
+ [EventSource: credentials: credentials default]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/request-redirect.htm.ini b/tests/wpt/metadata/eventsource/request-redirect.htm.ini
new file mode 100644
index 00000000000..2f7496bf3cf
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/request-redirect.htm.ini
@@ -0,0 +1,15 @@
+[request-redirect.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: redirect (301)]
+ expected: TIMEOUT
+
+ [EventSource: redirect (302)]
+ expected: TIMEOUT
+
+ [EventSource: redirect (303)]
+ expected: TIMEOUT
+
+ [EventSource: redirect (307)]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/request-status-error.htm.ini b/tests/wpt/metadata/eventsource/request-status-error.htm.ini
new file mode 100644
index 00000000000..cec868876da
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/request-status-error.htm.ini
@@ -0,0 +1,24 @@
+[request-status-error.htm]
+ type: testharness
+ expected: TIMEOUT
+ [EventSource: incorrect HTTP status code (204)]
+ expected: TIMEOUT
+
+ [EventSource: incorrect HTTP status code (205)]
+ expected: TIMEOUT
+
+ [EventSource: incorrect HTTP status code (210)]
+ expected: TIMEOUT
+
+ [EventSource: incorrect HTTP status code (299)]
+ expected: TIMEOUT
+
+ [EventSource: incorrect HTTP status code (404)]
+ expected: TIMEOUT
+
+ [EventSource: incorrect HTTP status code (410)]
+ expected: TIMEOUT
+
+ [EventSource: incorrect HTTP status code (503)]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/eventsource/shared-worker/eventsource-close.htm.ini b/tests/wpt/metadata/eventsource/shared-worker/eventsource-close.htm.ini
new file mode 100644
index 00000000000..8e051550698
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/shared-worker/eventsource-close.htm.ini
@@ -0,0 +1,5 @@
+[eventsource-close.htm]
+ type: testharness
+ [shared worker - EventSource: close()]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm.ini b/tests/wpt/metadata/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm.ini
new file mode 100644
index 00000000000..b98da5f4ccf
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm.ini
@@ -0,0 +1,20 @@
+[eventsource-constructor-non-same-origin.htm]
+ type: testharness
+ [shared worker - EventSource: constructor (act as if there is a network error) (http://example.not)]
+ expected: FAIL
+
+ [shared worker - EventSource: constructor (act as if there is a network error) (https://example.not/test)]
+ expected: FAIL
+
+ [shared worker - EventSource: constructor (act as if there is a network error) (ftp://example.not)]
+ expected: FAIL
+
+ [shared worker - EventSource: constructor (act as if there is a network error) (about:blank)]
+ expected: FAIL
+
+ [shared worker - EventSource: constructor (act as if there is a network error) (mailto:whatwg@awesome.example)]
+ expected: FAIL
+
+ [shared worker - EventSource: constructor (act as if there is a network error) (javascript:alert('FAIL'))]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/eventsource/shared-worker/eventsource-constructor-url-bogus.htm.ini b/tests/wpt/metadata/eventsource/shared-worker/eventsource-constructor-url-bogus.htm.ini
new file mode 100644
index 00000000000..2820362616c
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/shared-worker/eventsource-constructor-url-bogus.htm.ini
@@ -0,0 +1,5 @@
+[eventsource-constructor-url-bogus.htm]
+ type: testharness
+ [shared worker - EventSource: constructor (invalid URL)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/eventsource/shared-worker/eventsource-eventtarget.htm.ini b/tests/wpt/metadata/eventsource/shared-worker/eventsource-eventtarget.htm.ini
new file mode 100644
index 00000000000..0317b8d00cb
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/shared-worker/eventsource-eventtarget.htm.ini
@@ -0,0 +1,5 @@
+[eventsource-eventtarget.htm]
+ type: testharness
+ [shared worker - EventSource: addEventListener()]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/eventsource/shared-worker/eventsource-onmesage.htm.ini b/tests/wpt/metadata/eventsource/shared-worker/eventsource-onmesage.htm.ini
new file mode 100644
index 00000000000..3e36cf6e537
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/shared-worker/eventsource-onmesage.htm.ini
@@ -0,0 +1,5 @@
+[eventsource-onmesage.htm]
+ type: testharness
+ [shared worker - EventSource: onmessage]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/eventsource/shared-worker/eventsource-onopen.htm.ini b/tests/wpt/metadata/eventsource/shared-worker/eventsource-onopen.htm.ini
new file mode 100644
index 00000000000..71ecf8f5113
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/shared-worker/eventsource-onopen.htm.ini
@@ -0,0 +1,5 @@
+[eventsource-onopen.htm]
+ type: testharness
+ [shared worker - EventSource: onopen (announcing the connection)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/eventsource/shared-worker/eventsource-prototype.htm.ini b/tests/wpt/metadata/eventsource/shared-worker/eventsource-prototype.htm.ini
new file mode 100644
index 00000000000..886e99353be
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/shared-worker/eventsource-prototype.htm.ini
@@ -0,0 +1,5 @@
+[eventsource-prototype.htm]
+ type: testharness
+ [shared worker - EventSource: prototype et al]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/eventsource/shared-worker/eventsource-url.htm.ini b/tests/wpt/metadata/eventsource/shared-worker/eventsource-url.htm.ini
new file mode 100644
index 00000000000..39ef4b82427
--- /dev/null
+++ b/tests/wpt/metadata/eventsource/shared-worker/eventsource-url.htm.ini
@@ -0,0 +1,5 @@
+[eventsource-url.htm]
+ type: testharness
+ [shared worker - EventSource: url]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini
index 8d3523010a5..39e0719589b 100644
--- a/tests/wpt/metadata/html/dom/interfaces.html.ini
+++ b/tests/wpt/metadata/html/dom/interfaces.html.ini
@@ -7755,54 +7755,6 @@
[EventSource interface: existence and properties of interface object]
expected: FAIL
- [EventSource interface object length]
- expected: FAIL
-
- [EventSource interface: existence and properties of interface prototype object]
- expected: FAIL
-
- [EventSource interface: existence and properties of interface prototype object's "constructor" property]
- expected: FAIL
-
- [EventSource interface: attribute url]
- expected: FAIL
-
- [EventSource interface: attribute withCredentials]
- expected: FAIL
-
- [EventSource interface: constant CONNECTING on interface object]
- expected: FAIL
-
- [EventSource interface: constant CONNECTING on interface prototype object]
- expected: FAIL
-
- [EventSource interface: constant OPEN on interface object]
- expected: FAIL
-
- [EventSource interface: constant OPEN on interface prototype object]
- expected: FAIL
-
- [EventSource interface: constant CLOSED on interface object]
- expected: FAIL
-
- [EventSource interface: constant CLOSED on interface prototype object]
- expected: FAIL
-
- [EventSource interface: attribute readyState]
- expected: FAIL
-
- [EventSource interface: attribute onopen]
- expected: FAIL
-
- [EventSource interface: attribute onmessage]
- expected: FAIL
-
- [EventSource interface: attribute onerror]
- expected: FAIL
-
- [EventSource interface: operation close()]
- expected: FAIL
-
[WebSocket interface: existence and properties of interface object]
expected: FAIL
@@ -9429,9 +9381,6 @@
[ImageBitmap interface object name]
expected: FAIL
- [EventSource interface object name]
- expected: FAIL
-
[MessageChannel interface object name]
expected: FAIL
diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.html b/tests/wpt/mozilla/tests/mozilla/interfaces.html
index abf00decb61..647beb3ef03 100644
--- a/tests/wpt/mozilla/tests/mozilla/interfaces.html
+++ b/tests/wpt/mozilla/tests/mozilla/interfaces.html
@@ -99,6 +99,7 @@ var interfaceNamesInGlobalScope = [
"Element",
"ErrorEvent",
"Event",
+ "EventSource",
"EventTarget",
"File",
"FileList",