aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2015-12-01 04:09:11 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2015-12-01 04:09:11 +0530
commit51c19fd733a863f2fae05e693795dbecce69f2ed (patch)
treee30b07aa51b6fee09a97a5dd87d6b9c3a12c36f9
parent2a125b56135cdaa86b49783e8a52e9f1e9c7c126 (diff)
parentc23cbd4163ad3adbc983e4915b3656e0f37af623 (diff)
downloadservo-51c19fd733a863f2fae05e693795dbecce69f2ed.tar.gz
servo-51c19fd733a863f2fae05e693795dbecce69f2ed.zip
Auto merge of #8558 - jdm:crossoriginiframeload, r=glennw
Dispatch load events for cross origin iframes. Resolves #6672. Splitting it out from #6677. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8558) <!-- Reviewable:end -->
-rw-r--r--components/compositing/constellation.rs16
-rw-r--r--components/msg/constellation_msg.rs2
-rw-r--r--components/script/dom/document.rs24
-rw-r--r--components/script/dom/htmliframeelement.rs25
-rw-r--r--components/script/script_task.rs12
-rw-r--r--components/script_traits/lib.rs7
-rw-r--r--tests/wpt/metadata/XMLHttpRequest/send-content-type-string.htm.ini7
-rw-r--r--tests/wpt/metadata/dom/nodes/Comment-constructor.html.ini3
-rw-r--r--tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_datauri_01.html.ini3
-rw-r--r--tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_datauri_02.html.ini3
-rw-r--r--tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_javascripturi.html.ini3
-rw-r--r--tests/wpt/metadata/dom/nodes/Text-constructor.html.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/read-media/pageload-image.html.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/read-media/pageload-video.html.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-location-interface/security_location_0.sub.htm.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/security-window/window-security.sub.html.ini380
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/window-named-properties.html.ini6
-rw-r--r--tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/window-top-001.html.ini5
-rw-r--r--tests/wpt/metadata/html/infrastructure/urls/terminology-0/document-base-url.html.ini7
-rw-r--r--tests/wpt/metadata/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-iframe-auto.html.ini6
-rw-r--r--tests/wpt/metadata/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-iframe-fixed.html.ini6
-rw-r--r--tests/wpt/metadata/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-iframe-percentage.html.ini6
-rw-r--r--tests/wpt/metadata/html/semantics/forms/attributes-common-to-form-controls/dirname-ltr.html.ini3
23 files changed, 470 insertions, 66 deletions
diff --git a/components/compositing/constellation.rs b/components/compositing/constellation.rs
index 3abb1d5a54e..22a22d459e7 100644
--- a/components/compositing/constellation.rs
+++ b/components/compositing/constellation.rs
@@ -758,6 +758,20 @@ impl<LTF: LayoutTaskFactory, STF: ScriptTaskFactory> Constellation<LTF, STF> {
})).unwrap();
}
+ fn handle_subframe_loaded(&mut self, pipeline_id: PipelineId) {
+ let subframe_pipeline = self.pipeline(pipeline_id);
+ let subframe_parent = match subframe_pipeline.parent_info {
+ Some(ref parent) => parent,
+ None => return,
+ };
+ let parent_pipeline = self.pipeline(subframe_parent.0);
+ let msg = ConstellationControlMsg::DispatchFrameLoadEvent {
+ target: pipeline_id,
+ parent: subframe_parent.0
+ };
+ parent_pipeline.script_chan.send(msg).unwrap();
+ }
+
// The script task associated with pipeline_id has loaded a URL in an iframe via script. This
// will result in a new pipeline being spawned and a frame tree being added to
// containing_page_pipeline_id's frame tree's children. This message is never the result of a
@@ -908,6 +922,8 @@ impl<LTF: LayoutTaskFactory, STF: ScriptTaskFactory> Constellation<LTF, STF> {
if webdriver_reset {
self.webdriver.load_channel = None;
}
+
+ self.handle_subframe_loaded(pipeline_id);
}
fn handle_navigate_msg(&mut self,
diff --git a/components/msg/constellation_msg.rs b/components/msg/constellation_msg.rs
index af44eac4c1b..027d8efddd8 100644
--- a/components/msg/constellation_msg.rs
+++ b/components/msg/constellation_msg.rs
@@ -277,6 +277,8 @@ pub enum ScriptMsg {
GLContextAttributes,
IpcSender<Result<(IpcSender<CanvasMsg>, usize), String>>),
/// Dispatched after the DOM load event has fired on a document
+ /// Causes a `load` event to be dispatched to any enclosing frame context element
+ /// for the given pipeline.
DOMLoad(PipelineId),
Failure(Failure),
/// Notifies the constellation that this frame has received focus.
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 31f67f33801..92942012def 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -58,7 +58,7 @@ use dom::keyboardevent::KeyboardEvent;
use dom::location::Location;
use dom::messageevent::MessageEvent;
use dom::mouseevent::MouseEvent;
-use dom::node::{self, CloneChildrenFlag, Node, NodeDamage, window_from_node};
+use dom::node::{self, CloneChildrenFlag, Node, NodeDamage};
use dom::nodeiterator::NodeIterator;
use dom::nodelist::NodeList;
use dom::processinginstruction::ProcessingInstruction;
@@ -79,9 +79,9 @@ use layout_interface::{HitTestResponse, MouseOverResponse};
use layout_interface::{LayoutChan, Msg};
use layout_interface::{ReflowGoal, ReflowQueryType};
use msg::compositor_msg::ScriptToCompositorMsg;
-use msg::constellation_msg::AnimationState;
use msg::constellation_msg::ScriptMsg as ConstellationMsg;
use msg::constellation_msg::{ALT, CONTROL, SHIFT, SUPER};
+use msg::constellation_msg::{AnimationState, PipelineId};
use msg::constellation_msg::{ConstellationChan, FocusType, Key, KeyModifiers, KeyState, MozBrowserEvent, SubpageId};
use net_traits::ControlMsg::{GetCookiesForUrl, SetCookiesForUrl};
use net_traits::CookieSource::NonHTTP;
@@ -1333,6 +1333,14 @@ impl Document {
.find(|node| node.subpage_id() == Some(subpage_id))
}
+ /// Find an iframe element in the document.
+ pub fn find_iframe_by_pipeline(&self, pipeline: PipelineId) -> Option<Root<HTMLIFrameElement>> {
+ self.upcast::<Node>()
+ .traverse_preorder()
+ .filter_map(Root::downcast::<HTMLIFrameElement>)
+ .find(|node| node.pipeline() == Some(pipeline))
+ }
+
pub fn get_dom_loading(&self) -> u64 {
self.dom_loading.get()
}
@@ -2433,18 +2441,6 @@ impl DocumentProgressHandler {
event.set_trusted(true);
let _ = wintarget.dispatch_event_with_target(document.upcast(), &event);
- let browsing_context = window.browsing_context();
- let browsing_context = browsing_context.as_ref().unwrap();
-
- if let Some(frame_element) = browsing_context.frame_element() {
- let frame_window = window_from_node(frame_element);
- let event = Event::new(GlobalRef::Window(frame_window.r()),
- DOMString::from("load"),
- EventBubbles::DoesNotBubble,
- EventCancelable::NotCancelable);
- event.fire(frame_element.upcast());
- };
-
document.notify_constellation_load();
// https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowserloadend
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs
index 66bade67a7d..78400b6d49a 100644
--- a/components/script/dom/htmliframeelement.rs
+++ b/components/script/dom/htmliframeelement.rs
@@ -16,7 +16,7 @@ use dom::bindings::reflector::Reflectable;
use dom::customevent::CustomEvent;
use dom::document::Document;
use dom::element::{AttributeMutation, Element, RawLayoutElementHelpers};
-use dom::event::Event;
+use dom::event::{Event, EventBubbles, EventCancelable};
use dom::htmlelement::HTMLElement;
use dom::node::{Node, window_from_node};
use dom::urlhelper::UrlHelper;
@@ -189,6 +189,29 @@ impl HTMLIFrameElement {
pub fn subpage_id(&self) -> Option<SubpageId> {
self.subpage_id.get()
}
+
+ pub fn pipeline(&self) -> Option<PipelineId> {
+ self.pipeline_id.get()
+ }
+
+ /// https://html.spec.whatwg.org/multipage/#iframe-load-event-steps steps 1-4
+ pub fn iframe_load_event_steps(&self) {
+ // TODO A cross-origin child document would not be easily accessible
+ // from this script thread. It's unclear how to implement
+ // steps 2, 3, and 5 efficiently in this case.
+ // TODO Step 2 - check child document `mute iframe load` flag
+ // TODO Step 3 - set child document `mut iframe load` flag
+
+ // Step 4
+ let window = window_from_node(self);
+ let event = Event::new(GlobalRef::Window(window.r()),
+ DOMString::from("load".to_owned()),
+ EventBubbles::DoesNotBubble,
+ EventCancelable::NotCancelable);
+ event.fire(self.upcast());
+
+ // TODO Step 5 - unset child document `mut iframe load` flag
+ }
}
pub trait HTMLIFrameElementLayoutMethods {
diff --git a/components/script/script_task.rs b/components/script/script_task.rs
index 848f964d2c0..8b9800063e2 100644
--- a/components/script/script_task.rs
+++ b/components/script/script_task.rs
@@ -1006,6 +1006,9 @@ impl ScriptTask {
self.handle_tick_all_animations(pipeline_id),
ConstellationControlMsg::WebFontLoaded(pipeline_id) =>
self.handle_web_font_loaded(pipeline_id),
+ ConstellationControlMsg::DispatchFrameLoadEvent {
+ target: pipeline_id, parent: containing_id } =>
+ self.handle_frame_load_event(containing_id, pipeline_id),
ConstellationControlMsg::GetCurrentState(sender, pipeline_id) => {
let state = self.handle_get_current_state(pipeline_id);
sender.send(state).unwrap();
@@ -1535,6 +1538,15 @@ impl ScriptTask {
}
}
+ /// Notify the containing document of a child frame that has completed loading.
+ fn handle_frame_load_event(&self, containing_pipeline: PipelineId, id: PipelineId) {
+ let page = get_page(&self.root_page(), containing_pipeline);
+ let document = page.document();
+ if let Some(iframe) = document.find_iframe_by_pipeline(id) {
+ iframe.iframe_load_event_steps();
+ }
+ }
+
/// The entry point to document loading. Defines bindings, sets up the window and document
/// objects, parses HTML and CSS, and kicks off initial layout.
fn load(&self, metadata: Metadata, incomplete: InProgressLoad) -> Root<ServoHTMLParser> {
diff --git a/components/script_traits/lib.rs b/components/script_traits/lib.rs
index 685e29c48ec..8a5ffcb459f 100644
--- a/components/script_traits/lib.rs
+++ b/components/script_traits/lib.rs
@@ -137,6 +137,13 @@ pub enum ConstellationControlMsg {
WebFontLoaded(PipelineId),
/// Get the current state of the script task for a given pipeline.
GetCurrentState(IpcSender<ScriptState>, PipelineId),
+ /// Cause a `load` event to be dispatched at the appropriate frame element.
+ DispatchFrameLoadEvent {
+ /// The pipeline that has been marked as loaded.
+ target: PipelineId,
+ /// The pipeline that contains a frame loading the target pipeline.
+ parent: PipelineId
+ },
}
/// The mouse button involved in the event.
diff --git a/tests/wpt/metadata/XMLHttpRequest/send-content-type-string.htm.ini b/tests/wpt/metadata/XMLHttpRequest/send-content-type-string.htm.ini
new file mode 100644
index 00000000000..ba64bb6b585
--- /dev/null
+++ b/tests/wpt/metadata/XMLHttpRequest/send-content-type-string.htm.ini
@@ -0,0 +1,7 @@
+[send-content-type-string.htm]
+ type: testharness
+ [XMLHttpRequest: send() - Content-Type 1]
+ expected: FAIL
+
+ [XMLHttpRequest: send() - Content-Type 2]
+ expected: FAIL
diff --git a/tests/wpt/metadata/dom/nodes/Comment-constructor.html.ini b/tests/wpt/metadata/dom/nodes/Comment-constructor.html.ini
index 61eda49fc67..bde78768f89 100644
--- a/tests/wpt/metadata/dom/nodes/Comment-constructor.html.ini
+++ b/tests/wpt/metadata/dom/nodes/Comment-constructor.html.ini
@@ -1,9 +1,8 @@
[Comment-constructor.html]
type: testharness
- expected: TIMEOUT
[new Comment(): undefined]
expected: FAIL
[new Comment() should get the correct ownerDocument across globals]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_datauri_01.html.ini b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_datauri_01.html.ini
index e41919979f1..fd78368b14c 100644
--- a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_datauri_01.html.ini
+++ b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_datauri_01.html.ini
@@ -1,6 +1,5 @@
[contenttype_datauri_01.html]
type: testharness
- expected: TIMEOUT
[Data URI document.contentType === 'text/plain' when data URI MIME type is not set]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_datauri_02.html.ini b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_datauri_02.html.ini
index f897eb86e83..56df3ca726c 100644
--- a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_datauri_02.html.ini
+++ b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_datauri_02.html.ini
@@ -1,6 +1,5 @@
[contenttype_datauri_02.html]
type: testharness
- expected: TIMEOUT
[Data URI document.contentType === 'text/html' when data URI MIME type is set]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_javascripturi.html.ini b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_javascripturi.html.ini
index 6fd4c505ce6..398c8d28c33 100644
--- a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_javascripturi.html.ini
+++ b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_javascripturi.html.ini
@@ -1,6 +1,5 @@
[contenttype_javascripturi.html]
type: testharness
- expected: TIMEOUT
[Javascript URI document.contentType === 'text/html']
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/dom/nodes/Text-constructor.html.ini b/tests/wpt/metadata/dom/nodes/Text-constructor.html.ini
index c77e98f86ea..bed0da64aa5 100644
--- a/tests/wpt/metadata/dom/nodes/Text-constructor.html.ini
+++ b/tests/wpt/metadata/dom/nodes/Text-constructor.html.ini
@@ -1,9 +1,8 @@
[Text-constructor.html]
type: testharness
- expected: TIMEOUT
[new Text(): undefined]
expected: FAIL
[new Text() should get the correct ownerDocument across globals]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/read-media/pageload-image.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/read-media/pageload-image.html.ini
index 1b738e39095..a285ed1a1e3 100644
--- a/tests/wpt/metadata/html/browsers/browsing-the-web/read-media/pageload-image.html.ini
+++ b/tests/wpt/metadata/html/browsers/browsing-the-web/read-media/pageload-image.html.ini
@@ -1,6 +1,5 @@
[pageload-image.html]
type: testharness
- expected: TIMEOUT
[The document for a standalone media file should have one child in the body.]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/read-media/pageload-video.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/read-media/pageload-video.html.ini
index 22b231ee6e9..e08b63c7104 100644
--- a/tests/wpt/metadata/html/browsers/browsing-the-web/read-media/pageload-video.html.ini
+++ b/tests/wpt/metadata/html/browsers/browsing-the-web/read-media/pageload-video.html.ini
@@ -1,6 +1,5 @@
[pageload-video.html]
type: testharness
- expected: TIMEOUT
[The document for a standalone media file should have one child in the body.]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/security_location_0.sub.htm.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/security_location_0.sub.htm.ini
index e0979a835f9..0c9c11c1ea5 100644
--- a/tests/wpt/metadata/html/browsers/history/the-location-interface/security_location_0.sub.htm.ini
+++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/security_location_0.sub.htm.ini
@@ -1,6 +1,5 @@
[security_location_0.sub.htm]
type: testharness
- expected: TIMEOUT
[Accessing location object from different origins doesn't raise SECURITY_ERR exception]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/security-window/window-security.sub.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/security-window/window-security.sub.html.ini
index b5a20e9a276..b90d5dc5688 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/security-window/window-security.sub.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/security-window/window-security.sub.html.ini
@@ -1,6 +1,380 @@
[window-security.sub.html]
type: testharness
- expected: TIMEOUT
- [Window Security testing]
- expected: NOTRUN
+ [A SecurityError exception must be thrown when window.applicationCache is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.devicePixelRatio is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.document is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.external is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.frameElement is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.history is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.innerWidth is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.innerHeight is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.locationbar is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.localStorage is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.menubar is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.name is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.navigator is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onabort is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onafterprint is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onbeforeprint is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onbeforeunload is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onblur is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.oncancel is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.oncanplay is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.oncanplaythrough is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onchange is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onclick is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onclose is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.oncontextmenu is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.oncuechange is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.ondblclick is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.ondrag is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.ondragend is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.ondragenter is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.ondragleave is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.ondragover is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.ondragstart is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.ondrop is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.ondurationchange is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onemptied is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onended is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onerror is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onfocus is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onhashchange is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.oninput is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.oninvalid is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onkeydown is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onkeypress is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onkeyup is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onload is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onloadeddata is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onloadedmetadata is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onloadstart is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onmessage is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onmousedown is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onmousemove is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onmouseout is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onmouseover is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onmouseup is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onmousewheel is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onoffline is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.ononline is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onpause is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onplay is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onplaying is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onpagehide is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onpageshow is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onpopstate is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onprogress is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onratechange is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onreset is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onresize is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onscroll is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onseeked is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onseeking is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onselect is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onshow is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onstalled is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onstorage is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onsubmit is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onsuspend is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.ontimeupdate is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onunload is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onvolumechange is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.onwaiting is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.pageXOffset is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.pageYOffset is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.personalbar is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.screen is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.scrollbars is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.statusbar is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.status is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.screenX is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.screenY is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.sessionStorage is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.toolbar is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.alert is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.clearInterval is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.clearTimeout is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.confirm is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.getComputedStyle is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.getSelection is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.matchMedia is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.moveBy is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.moveTo is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.open is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.print is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.prompt is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.resizeTo is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.resizeBy is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.scroll is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.scrollTo is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.scrollBy is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.setInterval is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.setTimeout is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.showModalDialog is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception must be thrown when window.stop is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception should not be thrown when window.closed is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception should not be thrown when window.frames is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception should not be thrown when window.length is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception should not be thrown when window.location is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception should not be thrown when window.opener is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception should not be thrown when window.parent is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception should not be thrown when window.self is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception should not be thrown when window.top is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception should not be thrown when window.window is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception should not be thrown when window.blur is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception should not be thrown when window.close is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception should not be thrown when window.focus is accessed from a different origin.]
+ expected: FAIL
+
+ [A SecurityError exception should not be thrown when window.postMessage is accessed from a different origin.]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/window-named-properties.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/window-named-properties.html.ini
index 9bb768ab82d..51a08b0ccb0 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/window-named-properties.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/window-named-properties.html.ini
@@ -1,6 +1,5 @@
[window-named-properties.html]
type: testharness
- expected: TIMEOUT
[Static name]
expected: FAIL
@@ -11,8 +10,5 @@
expected: FAIL
[Dynamic name]
- expected: TIMEOUT
-
- [Ghost name]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/window-top-001.html.ini b/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/window-top-001.html.ini
index 48afd6931ed..a56c0a1b608 100644
--- a/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/window-top-001.html.ini
+++ b/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/window-top-001.html.ini
@@ -1,9 +1,8 @@
[window-top-001.html]
type: testharness
- expected: TIMEOUT
[One nested iframe]
- expected: TIMEOUT
+ expected: FAIL
[Two nested iframes]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/infrastructure/urls/terminology-0/document-base-url.html.ini b/tests/wpt/metadata/html/infrastructure/urls/terminology-0/document-base-url.html.ini
index 99f69acae2d..04075617de2 100644
--- a/tests/wpt/metadata/html/infrastructure/urls/terminology-0/document-base-url.html.ini
+++ b/tests/wpt/metadata/html/infrastructure/urls/terminology-0/document-base-url.html.ini
@@ -1,15 +1,14 @@
[document-base-url.html]
type: testharness
- expected: TIMEOUT
[The document base URL of a document containing one or more base elements with href attributes is the frozen base URL of the first base element in the document that has an href attribute, in tree order.]
expected: FAIL
[The fallback base URL of a document whose address is about:blank is the document base URL of the creator document.]
- expected: TIMEOUT
+ expected: FAIL
[The fallback base URL of an iframe srcdoc document is the document base URL of the document's browsing context's browsing context container's document.]
- expected: TIMEOUT
+ expected: FAIL
[about:blank with a base element.]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-iframe-auto.html.ini b/tests/wpt/metadata/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-iframe-auto.html.ini
deleted file mode 100644
index a66f7f991c9..00000000000
--- a/tests/wpt/metadata/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-iframe-auto.html.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[svg-in-iframe-auto.html]
- type: testharness
- expected: TIMEOUT
- [placeholder: 'iframe', ]
- expected: TIMEOUT
-
diff --git a/tests/wpt/metadata/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-iframe-fixed.html.ini b/tests/wpt/metadata/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-iframe-fixed.html.ini
deleted file mode 100644
index fb14ac45f38..00000000000
--- a/tests/wpt/metadata/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-iframe-fixed.html.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[svg-in-iframe-fixed.html]
- type: testharness
- expected: TIMEOUT
- [placeholder: 'iframe', placeholderHeightAttr: '100px', ]
- expected: TIMEOUT
-
diff --git a/tests/wpt/metadata/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-iframe-percentage.html.ini b/tests/wpt/metadata/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-iframe-percentage.html.ini
deleted file mode 100644
index ec4a010739c..00000000000
--- a/tests/wpt/metadata/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-iframe-percentage.html.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[svg-in-iframe-percentage.html]
- type: testharness
- expected: TIMEOUT
- [placeholder: 'iframe', placeholderHeightAttr: '100%', ]
- expected: TIMEOUT
-
diff --git a/tests/wpt/metadata/html/semantics/forms/attributes-common-to-form-controls/dirname-ltr.html.ini b/tests/wpt/metadata/html/semantics/forms/attributes-common-to-form-controls/dirname-ltr.html.ini
index 63775d4255e..13a9c4d0918 100644
--- a/tests/wpt/metadata/html/semantics/forms/attributes-common-to-form-controls/dirname-ltr.html.ini
+++ b/tests/wpt/metadata/html/semantics/forms/attributes-common-to-form-controls/dirname-ltr.html.ini
@@ -1,6 +1,5 @@
[dirname-ltr.html]
type: testharness
- expected: TIMEOUT
[submit element directionality]
- expected: NOTRUN
+ expected: FAIL