Auto merge of #22514 - jdm:source, r=Manishearth

Implement source for postMessage events

Also make similar-origin iframes access their newly loaded document as soon as the new document is created. This should allow tests that check the event.source property to run correctly.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22499 and fix #12715 and fix #22514.
- [x] There are tests for these changes

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22514)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2019-01-07 22:19:45 -05:00 committed by GitHub
commit 11d1184663
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
919 changed files with 2736 additions and 1905 deletions

View file

@ -1279,8 +1279,13 @@ where
warn!("constellation got set final url message for dead pipeline"); warn!("constellation got set final url message for dead pipeline");
} }
}, },
FromScriptMsg::PostMessage(browsing_context_id, origin, data) => { FromScriptMsg::PostMessage {
self.handle_post_message_msg(browsing_context_id, origin, data); target: browsing_context_id,
source: source_pipeline_id,
target_origin: origin,
data,
} => {
self.handle_post_message_msg(browsing_context_id, source_pipeline_id, origin, data);
}, },
FromScriptMsg::Focus => { FromScriptMsg::Focus => {
self.handle_focus_msg(source_pipeline_id); self.handle_focus_msg(source_pipeline_id);
@ -2844,6 +2849,7 @@ where
fn handle_post_message_msg( fn handle_post_message_msg(
&mut self, &mut self,
browsing_context_id: BrowsingContextId, browsing_context_id: BrowsingContextId,
source_pipeline: PipelineId,
origin: Option<ImmutableOrigin>, origin: Option<ImmutableOrigin>,
data: Vec<u8>, data: Vec<u8>,
) { ) {
@ -2856,7 +2862,17 @@ where
}, },
Some(browsing_context) => browsing_context.pipeline_id, Some(browsing_context) => browsing_context.pipeline_id,
}; };
let msg = ConstellationControlMsg::PostMessage(pipeline_id, origin, data); let source_browsing_context = match self.pipelines.get(&source_pipeline) {
Some(pipeline) => pipeline.top_level_browsing_context_id,
None => return warn!("PostMessage from closed pipeline {:?}", source_pipeline),
};
let msg = ConstellationControlMsg::PostMessage {
target: pipeline_id,
source: source_pipeline,
source_browsing_context: source_browsing_context,
target_origin: origin,
data,
};
let result = match self.pipelines.get(&pipeline_id) { let result = match self.pipelines.get(&pipeline_id) {
Some(pipeline) => pipeline.event_loop.send(msg), Some(pipeline) => pipeline.event_loop.send(msg),
None => return warn!("postMessage to closed pipeline {}.", pipeline_id), None => return warn!("postMessage to closed pipeline {}.", pipeline_id),

View file

@ -424,7 +424,7 @@ impl DedicatedWorkerGlobalScope {
JSAutoCompartment::new(scope.get_cx(), scope.reflector().get_jsobject().get()); JSAutoCompartment::new(scope.get_cx(), scope.reflector().get_jsobject().get());
rooted!(in(scope.get_cx()) let mut message = UndefinedValue()); rooted!(in(scope.get_cx()) let mut message = UndefinedValue());
data.read(scope.upcast(), message.handle_mut()); data.read(scope.upcast(), message.handle_mut());
MessageEvent::dispatch_jsval(target, scope.upcast(), message.handle(), None); MessageEvent::dispatch_jsval(target, scope.upcast(), message.handle(), None, None);
}, },
WorkerScriptMsg::Common(msg) => { WorkerScriptMsg::Common(msg) => {
self.upcast::<WorkerGlobalScope>().process_event(msg); self.upcast::<WorkerGlobalScope>().process_event(msg);

View file

@ -203,11 +203,12 @@ impl DissimilarOriginWindow {
None => return warn!("postMessage called with no incumbent global"), None => return warn!("postMessage called with no incumbent global"),
Some(incumbent) => incumbent, Some(incumbent) => incumbent,
}; };
let msg = ScriptMsg::PostMessage( let msg = ScriptMsg::PostMessage {
self.window_proxy.browsing_context_id(), target: self.window_proxy.browsing_context_id(),
origin, source: incumbent.pipeline_id(),
data.move_to_arraybuffer(), target_origin: origin,
); data: data.move_to_arraybuffer(),
};
let _ = incumbent.script_to_constellation_chan().send(msg); let _ = incumbent.script_to_constellation_chan().send(msg);
} }
} }

View file

@ -238,6 +238,7 @@ impl EventSourceContext {
false, false,
data.handle(), data.handle(),
DOMString::from(self.origin.clone()), DOMString::from(self.origin.clone()),
None,
event_source.last_event_id.borrow().clone(), event_source.last_event_id.borrow().clone(),
) )
}; };

View file

@ -7,24 +7,27 @@ use crate::dom::bindings::codegen::Bindings::MessageEventBinding;
use crate::dom::bindings::codegen::Bindings::MessageEventBinding::MessageEventMethods; use crate::dom::bindings::codegen::Bindings::MessageEventBinding::MessageEventMethods;
use crate::dom::bindings::error::Fallible; use crate::dom::bindings::error::Fallible;
use crate::dom::bindings::inheritance::Castable; use crate::dom::bindings::inheritance::Castable;
use crate::dom::bindings::reflector::reflect_dom_object; use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::bindings::trace::RootedTraceableBox; use crate::dom::bindings::trace::RootedTraceableBox;
use crate::dom::event::Event; use crate::dom::event::Event;
use crate::dom::eventtarget::EventTarget; use crate::dom::eventtarget::EventTarget;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::dom::windowproxy::WindowProxy;
use dom_struct::dom_struct; use dom_struct::dom_struct;
use js::jsapi::{Heap, JSContext}; use js::jsapi::{Heap, JSContext, JSObject};
use js::jsval::JSVal; use js::jsval::JSVal;
use js::rust::HandleValue; use js::rust::HandleValue;
use servo_atoms::Atom; use servo_atoms::Atom;
use std::ptr::NonNull;
#[dom_struct] #[dom_struct]
pub struct MessageEvent { pub struct MessageEvent {
event: Event, event: Event,
data: Heap<JSVal>, data: Heap<JSVal>,
origin: DOMString, origin: DOMString,
source: Option<Dom<WindowProxy>>,
lastEventId: DOMString, lastEventId: DOMString,
} }
@ -34,6 +37,7 @@ impl MessageEvent {
global, global,
HandleValue::undefined(), HandleValue::undefined(),
DOMString::new(), DOMString::new(),
None,
DOMString::new(), DOMString::new(),
) )
} }
@ -42,12 +46,14 @@ impl MessageEvent {
global: &GlobalScope, global: &GlobalScope,
data: HandleValue, data: HandleValue,
origin: DOMString, origin: DOMString,
source: Option<&WindowProxy>,
lastEventId: DOMString, lastEventId: DOMString,
) -> DomRoot<MessageEvent> { ) -> DomRoot<MessageEvent> {
let ev = Box::new(MessageEvent { let ev = Box::new(MessageEvent {
event: Event::new_inherited(), event: Event::new_inherited(),
data: Heap::default(), data: Heap::default(),
origin: origin, origin: origin,
source: source.map(Dom::from_ref),
lastEventId: lastEventId, lastEventId: lastEventId,
}); });
let ev = reflect_dom_object(ev, global, MessageEventBinding::Wrap); let ev = reflect_dom_object(ev, global, MessageEventBinding::Wrap);
@ -63,9 +69,10 @@ impl MessageEvent {
cancelable: bool, cancelable: bool,
data: HandleValue, data: HandleValue,
origin: DOMString, origin: DOMString,
source: Option<&WindowProxy>,
lastEventId: DOMString, lastEventId: DOMString,
) -> DomRoot<MessageEvent> { ) -> DomRoot<MessageEvent> {
let ev = MessageEvent::new_initialized(global, data, origin, lastEventId); let ev = MessageEvent::new_initialized(global, data, origin, source, lastEventId);
{ {
let event = ev.upcast::<Event>(); let event = ev.upcast::<Event>();
event.init_event(type_, bubbles, cancelable); event.init_event(type_, bubbles, cancelable);
@ -78,6 +85,10 @@ impl MessageEvent {
type_: DOMString, type_: DOMString,
init: RootedTraceableBox<MessageEventBinding::MessageEventInit>, init: RootedTraceableBox<MessageEventBinding::MessageEventInit>,
) -> Fallible<DomRoot<MessageEvent>> { ) -> Fallible<DomRoot<MessageEvent>> {
let source = init
.source
.as_ref()
.and_then(|inner| inner.as_ref().map(|source| source.window_proxy()));
let ev = MessageEvent::new( let ev = MessageEvent::new(
global, global,
Atom::from(type_), Atom::from(type_),
@ -85,6 +96,7 @@ impl MessageEvent {
init.parent.cancelable, init.parent.cancelable,
init.data.handle(), init.data.handle(),
init.origin.clone(), init.origin.clone(),
source.as_ref().map(|source| &**source),
init.lastEventId.clone(), init.lastEventId.clone(),
); );
Ok(ev) Ok(ev)
@ -97,6 +109,7 @@ impl MessageEvent {
scope: &GlobalScope, scope: &GlobalScope,
message: HandleValue, message: HandleValue,
origin: Option<&str>, origin: Option<&str>,
source: Option<&WindowProxy>,
) { ) {
let messageevent = MessageEvent::new( let messageevent = MessageEvent::new(
scope, scope,
@ -105,6 +118,7 @@ impl MessageEvent {
false, false,
message, message,
DOMString::from(origin.unwrap_or("")), DOMString::from(origin.unwrap_or("")),
source,
DOMString::new(), DOMString::new(),
); );
messageevent.upcast::<Event>().fire(target); messageevent.upcast::<Event>().fire(target);
@ -123,6 +137,14 @@ impl MessageEventMethods for MessageEvent {
self.origin.clone() self.origin.clone()
} }
// https://html.spec.whatwg.org/multipage/#dom-messageevent-source
#[allow(unsafe_code)]
unsafe fn GetSource(&self, _cx: *mut JSContext) -> Option<NonNull<JSObject>> {
self.source
.as_ref()
.and_then(|source| NonNull::new(source.reflector().get_jsobject().get()))
}
// https://html.spec.whatwg.org/multipage/#dom-messageevent-lasteventid // https://html.spec.whatwg.org/multipage/#dom-messageevent-lasteventid
fn LastEventId(&self) -> DOMString { fn LastEventId(&self) -> DOMString {
self.lastEventId.clone() self.lastEventId.clone()

View file

@ -8,6 +8,8 @@ interface MessageEvent : Event {
readonly attribute any data; readonly attribute any data;
readonly attribute DOMString origin; readonly attribute DOMString origin;
readonly attribute DOMString lastEventId; readonly attribute DOMString lastEventId;
// FIXME(#22617): WindowProxy is not exposed in Worker globals
readonly attribute object? source;
//readonly attribute (WindowProxy or MessagePort)? source; //readonly attribute (WindowProxy or MessagePort)? source;
//readonly attribute MessagePort[]? ports; //readonly attribute MessagePort[]? ports;
}; };
@ -17,6 +19,7 @@ dictionary MessageEventInit : EventInit {
DOMString origin = ""; DOMString origin = "";
DOMString lastEventId = ""; DOMString lastEventId = "";
//DOMString channel; //DOMString channel;
Window? source;
//(WindowProxy or MessagePort)? source; //(WindowProxy or MessagePort)? source;
//sequence<MessagePort> ports; //sequence<MessagePort> ports;
}; };

View file

@ -599,6 +599,7 @@ impl TaskOnce for MessageReceivedTask {
&global, &global,
message.handle(), message.handle(),
Some(&ws.origin().ascii_serialization()), Some(&ws.origin().ascii_serialization()),
None,
); );
} }
} }

View file

@ -859,14 +859,13 @@ impl WindowMethods for Window {
message: HandleValue, message: HandleValue,
origin: DOMString, origin: DOMString,
) -> ErrorResult { ) -> ErrorResult {
let source_global = GlobalScope::incumbent().expect("no incumbent global??");
let source = source_global.as_window();
// Step 3-5. // Step 3-5.
let origin = match &origin[..] { let origin = match &origin[..] {
"*" => None, "*" => None,
"/" => { "/" => Some(source.Document().origin().immutable().clone()),
// TODO(#12715): Should be the origin of the incumbent settings
// object, not self's.
Some(self.Document().origin().immutable().clone())
},
url => match ServoUrl::parse(&url) { url => match ServoUrl::parse(&url) {
Ok(url) => Some(url.origin().clone()), Ok(url) => Some(url.origin().clone()),
Err(_) => return Err(Error::Syntax), Err(_) => return Err(Error::Syntax),
@ -878,7 +877,7 @@ impl WindowMethods for Window {
let data = StructuredCloneData::write(cx, message)?; let data = StructuredCloneData::write(cx, message)?;
// Step 9. // Step 9.
self.post_message(origin, data); self.post_message(origin, &*source.window_proxy(), data);
Ok(()) Ok(())
} }
@ -2194,11 +2193,14 @@ impl Window {
pub fn post_message( pub fn post_message(
&self, &self,
target_origin: Option<ImmutableOrigin>, target_origin: Option<ImmutableOrigin>,
source: &WindowProxy,
serialize_with_transfer_result: StructuredCloneData, serialize_with_transfer_result: StructuredCloneData,
) { ) {
let this = Trusted::new(self); let this = Trusted::new(self);
let source = Trusted::new(source);
let task = task!(post_serialised_message: move || { let task = task!(post_serialised_message: move || {
let this = this.root(); let this = this.root();
let source = source.root();
// Step 7.1. // Step 7.1.
if let Some(target_origin) = target_origin { if let Some(target_origin) = target_origin {
@ -2226,7 +2228,8 @@ impl Window {
this.upcast(), this.upcast(),
this.upcast(), this.upcast(),
message_clone.handle(), message_clone.handle(),
None None,
Some(&*source),
); );
}); });
// FIXME(nox): Why are errors silenced here? // FIXME(nox): Why are errors silenced here?

View file

@ -140,7 +140,7 @@ impl Worker {
let _ac = JSAutoCompartment::new(global.get_cx(), target.reflector().get_jsobject().get()); let _ac = JSAutoCompartment::new(global.get_cx(), target.reflector().get_jsobject().get());
rooted!(in(global.get_cx()) let mut message = UndefinedValue()); rooted!(in(global.get_cx()) let mut message = UndefinedValue());
data.read(&global, message.handle_mut()); data.read(&global, message.handle_mut());
MessageEvent::dispatch_jsval(target, &global, message.handle(), None); MessageEvent::dispatch_jsval(target, &global, message.handle(), None, None);
} }
pub fn dispatch_simple_error(address: TrustedWorkerAddress) { pub fn dispatch_simple_error(address: TrustedWorkerAddress) {

View file

@ -1419,7 +1419,7 @@ impl ScriptThread {
ChangeFrameVisibilityStatus(id, ..) => Some(id), ChangeFrameVisibilityStatus(id, ..) => Some(id),
NotifyVisibilityChange(id, ..) => Some(id), NotifyVisibilityChange(id, ..) => Some(id),
Navigate(id, ..) => Some(id), Navigate(id, ..) => Some(id),
PostMessage(id, ..) => Some(id), PostMessage { target: id, .. } => Some(id),
UpdatePipelineId(_, _, id, _) => Some(id), UpdatePipelineId(_, _, id, _) => Some(id),
UpdateHistoryState(id, ..) => Some(id), UpdateHistoryState(id, ..) => Some(id),
RemoveHistoryStates(id, ..) => Some(id), RemoveHistoryStates(id, ..) => Some(id),
@ -1592,9 +1592,19 @@ impl ScriptThread {
browsing_context_id, browsing_context_id,
visible, visible,
), ),
ConstellationControlMsg::PostMessage(pipeline_id, origin, data) => { ConstellationControlMsg::PostMessage {
self.handle_post_message_msg(pipeline_id, origin, data) target: target_pipeline_id,
}, source: source_pipeline_id,
source_browsing_context,
target_origin: origin,
data,
} => self.handle_post_message_msg(
target_pipeline_id,
source_pipeline_id,
source_browsing_context,
origin,
data,
),
ConstellationControlMsg::UpdatePipelineId( ConstellationControlMsg::UpdatePipelineId(
parent_pipeline_id, parent_pipeline_id,
browsing_context_id, browsing_context_id,
@ -2080,12 +2090,33 @@ impl ScriptThread {
fn handle_post_message_msg( fn handle_post_message_msg(
&self, &self,
pipeline_id: PipelineId, pipeline_id: PipelineId,
source_pipeline_id: PipelineId,
source_browsing_context: TopLevelBrowsingContextId,
origin: Option<ImmutableOrigin>, origin: Option<ImmutableOrigin>,
data: Vec<u8>, data: Vec<u8>,
) { ) {
match { self.documents.borrow().find_window(pipeline_id) } { match { self.documents.borrow().find_window(pipeline_id) } {
None => return warn!("postMessage after pipeline {} closed.", pipeline_id), None => return warn!("postMessage after target pipeline {} closed.", pipeline_id),
Some(window) => window.post_message(origin, StructuredCloneData::Vector(data)), Some(window) => {
// FIXME: synchronously talks to constellation.
// send the required info as part of postmessage instead.
let source = match self.remote_window_proxy(
&*window.global(),
source_browsing_context,
source_pipeline_id,
None,
) {
None => {
return warn!(
"postMessage after source pipeline {} closed.",
source_pipeline_id,
);
},
Some(source) => source,
};
// FIXME(#22512): enqueues a task; unnecessary delay.
window.post_message(origin, &*source, StructuredCloneData::Vector(data))
},
} }
} }
@ -2820,6 +2851,21 @@ impl ScriptThread {
window.init_document(&document); window.init_document(&document);
// For any similar-origin iframe, ensure that the contentWindow/contentDocument
// APIs resolve to the new window/document as soon as parsing starts.
if let Some(frame) = window_proxy
.frame_element()
.and_then(|e| e.downcast::<HTMLIFrameElement>())
{
let parent_pipeline = frame.global().pipeline_id();
self.handle_update_pipeline_id(
parent_pipeline,
window_proxy.browsing_context_id(),
incomplete.pipeline_id,
UpdatePipelineIdReason::Navigation,
);
}
self.script_sender self.script_sender
.send((incomplete.pipeline_id, ScriptMsg::ActivateDocument)) .send((incomplete.pipeline_id, ScriptMsg::ActivateDocument))
.unwrap(); .unwrap();

View file

@ -284,7 +284,18 @@ pub enum ConstellationControlMsg {
/// PipelineId is for the parent, BrowsingContextId is for the nested browsing context /// PipelineId is for the parent, BrowsingContextId is for the nested browsing context
Navigate(PipelineId, BrowsingContextId, LoadData, bool), Navigate(PipelineId, BrowsingContextId, LoadData, bool),
/// Post a message to a given window. /// Post a message to a given window.
PostMessage(PipelineId, Option<ImmutableOrigin>, Vec<u8>), PostMessage {
/// The target of the message.
target: PipelineId,
/// The source of the message.
source: PipelineId,
/// The top level browsing context associated with the source pipeline.
source_browsing_context: TopLevelBrowsingContextId,
/// The expected origin of the target.
target_origin: Option<ImmutableOrigin>,
/// The data to be posted.
data: Vec<u8>,
},
/// Updates the current pipeline ID of a given iframe. /// Updates the current pipeline ID of a given iframe.
/// First PipelineId is for the parent, second is the new PipelineId for the frame. /// First PipelineId is for the parent, second is the new PipelineId for the frame.
UpdatePipelineId( UpdatePipelineId(
@ -358,7 +369,7 @@ impl fmt::Debug for ConstellationControlMsg {
ChangeFrameVisibilityStatus(..) => "ChangeFrameVisibilityStatus", ChangeFrameVisibilityStatus(..) => "ChangeFrameVisibilityStatus",
NotifyVisibilityChange(..) => "NotifyVisibilityChange", NotifyVisibilityChange(..) => "NotifyVisibilityChange",
Navigate(..) => "Navigate", Navigate(..) => "Navigate",
PostMessage(..) => "PostMessage", PostMessage { .. } => "PostMessage",
UpdatePipelineId(..) => "UpdatePipelineId", UpdatePipelineId(..) => "UpdatePipelineId",
UpdateHistoryState(..) => "UpdateHistoryState", UpdateHistoryState(..) => "UpdateHistoryState",
RemoveHistoryStates(..) => "RemoveHistoryStates", RemoveHistoryStates(..) => "RemoveHistoryStates",

View file

@ -134,7 +134,16 @@ pub enum ScriptMsg {
/// Abort loading after sending a LoadUrl message. /// Abort loading after sending a LoadUrl message.
AbortLoadUrl, AbortLoadUrl,
/// Post a message to the currently active window of a given browsing context. /// Post a message to the currently active window of a given browsing context.
PostMessage(BrowsingContextId, Option<ImmutableOrigin>, Vec<u8>), PostMessage {
/// The target of the posted message.
target: BrowsingContextId,
/// The source of the posted message.
source: PipelineId,
/// The expected origin of the target.
target_origin: Option<ImmutableOrigin>,
/// The data to be posted.
data: Vec<u8>,
},
/// Inform the constellation that a fragment was navigated to and whether or not it was a replacement navigation. /// Inform the constellation that a fragment was navigated to and whether or not it was a replacement navigation.
NavigatedToFragment(ServoUrl, bool), NavigatedToFragment(ServoUrl, bool),
/// HTMLIFrameElement Forward or Back traversal. /// HTMLIFrameElement Forward or Back traversal.
@ -209,7 +218,7 @@ impl fmt::Debug for ScriptMsg {
LoadComplete => "LoadComplete", LoadComplete => "LoadComplete",
LoadUrl(..) => "LoadUrl", LoadUrl(..) => "LoadUrl",
AbortLoadUrl => "AbortLoadUrl", AbortLoadUrl => "AbortLoadUrl",
PostMessage(..) => "PostMessage", PostMessage { .. } => "PostMessage",
NavigatedToFragment(..) => "NavigatedToFragment", NavigatedToFragment(..) => "NavigatedToFragment",
TraverseHistory(..) => "TraverseHistory", TraverseHistory(..) => "TraverseHistory",
PushHistoryState(..) => "PushHistoryState", PushHistoryState(..) => "PushHistoryState",

View file

@ -4,7 +4,7 @@ skip: true
[mozilla] [mozilla]
skip: false skip: false
[referrer-policy] [referrer-policy]
skip: true skip: false
[_webgl] [_webgl]
skip: false skip: false
[2dcontext] [2dcontext]
@ -106,7 +106,7 @@ skip: true
[quirks] [quirks]
skip: false skip: false
[referrer-policy] [referrer-policy]
skip: true skip: false
[resource-timing] [resource-timing]
skip: false skip: false
[subresource-integrity] [subresource-integrity]

View file

@ -1,8 +0,0 @@
[cross-global-revoke.sub.html]
expected: TIMEOUT
[It is possible to revoke same-origin blob URLs from different frames.]
expected: TIMEOUT
[It is not possible to revoke cross-origin blob URLs.]
expected: TIMEOUT

View file

@ -1,5 +1,4 @@
[unicode-origin.sub.html] [unicode-origin.sub.html]
expected: TIMEOUT
[Verify serialization of non-ascii origin in Blob URLs] [Verify serialization of non-ascii origin in Blob URLs]
expected: TIMEOUT expected: FAIL

View file

@ -1,8 +1,7 @@
[url-lifetime.html] [url-lifetime.html]
expected: TIMEOUT
[Terminating worker revokes its URLs] [Terminating worker revokes its URLs]
expected: FAIL expected: FAIL
[Removing an iframe revokes its URLs] [Removing an iframe revokes its URLs]
expected: TIMEOUT expected: FAIL

View file

@ -650092,67 +650092,67 @@
"support" "support"
], ],
"referrer-policy/css-integration/child-css/external-import-stylesheet.html": [ "referrer-policy/css-integration/child-css/external-import-stylesheet.html": [
"a2d3e8ced0412b97422847d4d81c1403cf9ae52c", "40f4234ad48d19162cefae933fd0f53a72ff0c19",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/child-css/internal-import-stylesheet.html": [ "referrer-policy/css-integration/child-css/internal-import-stylesheet.html": [
"aebf5031484b799989d6b6a9dd72a5bc28575214", "30c5ea2903094af38dea9a7a565255d178069178",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/child-css/processing-instruction.html": [ "referrer-policy/css-integration/child-css/processing-instruction.html": [
"b6333e2c7b248c3f3b863bd06f1c99abd472f162", "52a0ded42a185ed5ff6f449879e0ce50f8255868",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/css-test-helper.js": [ "referrer-policy/css-integration/css-test-helper.js": [
"f5886dbbcbe358438dfbac45c5a0127e9e990ad4", "788df16a456b83a23de662b710c200042a1e7254",
"support" "support"
], ],
"referrer-policy/css-integration/font-face/external-import-stylesheet.html": [ "referrer-policy/css-integration/font-face/external-import-stylesheet.html": [
"c344c56c5bf322f35e8d8c74427d80391e6637d3", "80e3587ad62f040f2cfb28645437fcbc0e66b415",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/font-face/external-stylesheet.html": [ "referrer-policy/css-integration/font-face/external-stylesheet.html": [
"24e4bb99900a556cb0b44144a25c9f8249224eb7", "a91eb3fe758299229040466deb2d1b0263f77197",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/font-face/internal-import-stylesheet.html": [ "referrer-policy/css-integration/font-face/internal-import-stylesheet.html": [
"54e2383423cab8679635d05c256c32e27a94c024", "a637082a4ce7dff612b223fc8a4c2195db300013",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/font-face/internal-stylesheet.html": [ "referrer-policy/css-integration/font-face/internal-stylesheet.html": [
"b3869bcebdcdadea3e50d7e8713c853d46ba4816", "eebd864bc56725b79c1f29c0597466574e2af091",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/font-face/processing-instruction.html": [ "referrer-policy/css-integration/font-face/processing-instruction.html": [
"89ee918e24e14b8ea5d35a7dfaf09610eb89ee11", "bfc42d9fcbe355514c7bf72ac087d7159439824e",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/image/external-import-stylesheet.html": [ "referrer-policy/css-integration/image/external-import-stylesheet.html": [
"0023af31b17ee883e6e9fe6cdd8f09b8eacf83d1", "80c71b0e215b547d664aee8757d70188c012a9c0",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/image/external-stylesheet.html": [ "referrer-policy/css-integration/image/external-stylesheet.html": [
"d14769db4a1221bb6e220aa594c4a3b6bab97aa1", "ba7497b97de6911c149b423bf25305123e97150e",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/image/inline-style.html": [ "referrer-policy/css-integration/image/inline-style.html": [
"42128ae062093c0e8feb5d90ab62a6cb281cf8e9", "758b6d91852f67d4e47726815804a5e366fe534d",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/image/internal-import-stylesheet.html": [ "referrer-policy/css-integration/image/internal-import-stylesheet.html": [
"90003547f4d4e2048cc33f7125d756d42507140d", "24aa1858304a2130624589b0a64c6f9ec9cac5a1",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/image/internal-stylesheet.html": [ "referrer-policy/css-integration/image/internal-stylesheet.html": [
"943108d66e4b273a6d3be30b2ea8a0edb0490c7b", "f4567885e1f1e215487a11f1023d117517cd88b8",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/image/presentation-attribute.html": [ "referrer-policy/css-integration/image/presentation-attribute.html": [
"78401d3ec16866f1e51618bdb5cb028f5eea8490", "d0a4d96f84c8e48ea5daf5699c7b04bbc877ba86",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/image/processing-instruction.html": [ "referrer-policy/css-integration/image/processing-instruction.html": [
"1ca18547dd54c4707250f400999a041f16f77ddf", "926147be489a85164758dcf644c715e4a5c02de6",
"testharness" "testharness"
], ],
"referrer-policy/css-integration/svg/external-stylesheet.html": [ "referrer-policy/css-integration/svg/external-stylesheet.html": [
@ -650176,7 +650176,7 @@
"testharness" "testharness"
], ],
"referrer-policy/generic/common.js": [ "referrer-policy/generic/common.js": [
"f9bbe42b914c46822ec8b74aacd849789723dd72", "a16691bccb2543ad68b81e9a16fa261d3cce6a9f",
"support" "support"
], ],
"referrer-policy/generic/iframe-inheritance.html": [ "referrer-policy/generic/iframe-inheritance.html": [
@ -650228,11 +650228,11 @@
"support" "support"
], ],
"referrer-policy/generic/referrer-policy-test-case.js": [ "referrer-policy/generic/referrer-policy-test-case.js": [
"4641683cd850da86279dcd062aaf868d346aa2bd", "2385cc2a1c4e51a2855299e42b69ac12362cd699",
"support" "support"
], ],
"referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html": [ "referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html": [
"8fee77f836378ec137c3bf0d554f4def83a5caba", "1b2b12bf6910e075338462de577dc4228f52a21f",
"testharness" "testharness"
], ],
"referrer-policy/generic/sanity-checker.js": [ "referrer-policy/generic/sanity-checker.js": [
@ -650240,7 +650240,7 @@
"support" "support"
], ],
"referrer-policy/generic/subresource-test/area-navigate.html": [ "referrer-policy/generic/subresource-test/area-navigate.html": [
"bca7e479fa2ca41505bc73cf74c6e518efa7e947", "3eb824521b7801c518a7b36218075eb3d74bd639",
"testharness" "testharness"
], ],
"referrer-policy/generic/subresource-test/attr-referrer-invalid-value.html": [ "referrer-policy/generic/subresource-test/attr-referrer-invalid-value.html": [
@ -650248,31 +650248,31 @@
"testharness" "testharness"
], ],
"referrer-policy/generic/subresource-test/fetch-messaging.html": [ "referrer-policy/generic/subresource-test/fetch-messaging.html": [
"046b29e9a3e94753c1a552732b0f44d2883a011d", "edb159d9eb1cf5eed6af249a40f70d9ecd079d68",
"testharness" "testharness"
], ],
"referrer-policy/generic/subresource-test/iframe-messaging.html": [ "referrer-policy/generic/subresource-test/iframe-messaging.html": [
"a3e55707c26f95624baaa54b8778d641cd756d72", "606e18b281f6c3498573dc9bfaefefca1390026a",
"testharness" "testharness"
], ],
"referrer-policy/generic/subresource-test/image-decoding.html": [ "referrer-policy/generic/subresource-test/image-decoding.html": [
"448f12b1348fa77aaaebd52b2c3ee6ae9c73a5f6", "9c50ea6619389dad8ad81c4c2afbeb8030b176db",
"testharness" "testharness"
], ],
"referrer-policy/generic/subresource-test/link-navigate.html": [ "referrer-policy/generic/subresource-test/link-navigate.html": [
"45e502004d4b640d0b2194e48d060b8d3cc3f120", "95582f65bac8a3b478cc8cd4fe9b883fb507237f",
"testharness" "testharness"
], ],
"referrer-policy/generic/subresource-test/script-messaging.html": [ "referrer-policy/generic/subresource-test/script-messaging.html": [
"09c5db6193fed52c60edc2526609c3d501c45da8", "f73f4406df20694480f82570ed8674fe283ea375",
"testharness" "testharness"
], ],
"referrer-policy/generic/subresource-test/worker-messaging.html": [ "referrer-policy/generic/subresource-test/worker-messaging.html": [
"6d34366b943ad2b3b15f08179a58ef5227c675d0", "fd7591882e91e7265fd740b9018248d21f13b5b9",
"testharness" "testharness"
], ],
"referrer-policy/generic/subresource-test/xhr-messaging.html": [ "referrer-policy/generic/subresource-test/xhr-messaging.html": [
"09f69140098a16bd66a117cf6187fedc862d9233", "6ef4a9cfd4b98c3562fe7ef6e04eb931073166de",
"testharness" "testharness"
], ],
"referrer-policy/generic/subresource/__init__.py": [ "referrer-policy/generic/subresource/__init__.py": [
@ -650400,7 +650400,7 @@
"support" "support"
], ],
"referrer-policy/generic/unsupported-csp-referrer-directive.html": [ "referrer-policy/generic/unsupported-csp-referrer-directive.html": [
"9627d16559903b5202f842f3c3355a2e7005f65c", "475efa55091778e747fa36030f7b422b89d6d4b9",
"testharness" "testharness"
], ],
"referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [ "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [

View file

@ -1,2 +0,0 @@
[floats-in-table-caption-001.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[line-height-204.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[mix-blend-mode-paragraph.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[background-repeat-round-roundup.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-break-normal-018.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-break-strict-018.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[text-transform-full-size-kana-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[trailing-ideographic-space-004.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[word-break-keep-all-006.html]
expected: FAIL

View file

@ -1,4 +0,0 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -2,3 +2,6 @@
[The root element is the last element returned for valid queries] [The root element is the last element returned for valid queries]
expected: FAIL expected: FAIL
[The root element is the last element returned for otherwise empty queries within the viewport]
expected: FAIL

View file

@ -1,2 +1,2 @@
[parser-sets-attributes-and-children.html] [parser-sets-attributes-and-children.html]
expected: TIMEOUT expected: CRASH

View file

@ -1,11 +1,10 @@
[iframe.tentative.https.sub.html] [iframe.tentative.https.sub.html]
expected: TIMEOUT
[Same-origin iframe] [Same-origin iframe]
expected: TIMEOUT expected: FAIL
[Same-site iframe] [Same-site iframe]
expected: TIMEOUT expected: FAIL
[Cross-site iframe] [Cross-site iframe]
expected: TIMEOUT expected: FAIL

View file

@ -1,2 +1,10 @@
[xslt.tentative.https.sub.html] [xslt.tentative.https.sub.html]
expected: TIMEOUT [Same-Origin xslt]
expected: FAIL
[Cross-site xslt]
expected: FAIL
[Same-site xslt]
expected: FAIL

View file

@ -8,7 +8,7 @@
expected: FAIL expected: FAIL
[Embedded credentials are treated as network errors in new windows.] [Embedded credentials are treated as network errors in new windows.]
expected: TIMEOUT expected: FAIL
[Embedded credentials matching the top-level are not treated as network errors for relative URLs.] [Embedded credentials matching the top-level are not treated as network errors for relative URLs.]
expected: TIMEOUT expected: TIMEOUT

View file

@ -0,0 +1,4 @@
[006.html]
[Link with onclick form submit and href navigation ]
expected: FAIL

View file

@ -1,11 +1,4 @@
[document_domain_feature_policy.tentative.sub.html] [document_domain_feature_policy.tentative.sub.html]
expected: TIMEOUT
[Default "document-domain" feature policy ["*"\] allows cross-origin iframes.]
expected: TIMEOUT
[Default "document-domain" feature policy ["*"\] allows same-origin iframes.]
expected: TIMEOUT
[Feature policy "document-domain" can be disabled in cross-origin iframes using "allow" attribute.] [Feature policy "document-domain" can be disabled in cross-origin iframes using "allow" attribute.]
expected: FAIL expected: FAIL

View file

@ -1,15 +1,14 @@
[document_domain_setter_null.tentative.html] [document_domain_setter_null.tentative.html]
type: testharness type: testharness
expected: TIMEOUT
[Access allowed with no 'document.domain' modification. (Sanity check)] [Access allowed with no 'document.domain' modification. (Sanity check)]
expected: TIMEOUT expected: FAIL
[No access when frame sets a `null` 'document.domain'.] [No access when frame sets a `null` 'document.domain'.]
expected: NOTRUN expected: FAIL
[No access when parent sets a `null` 'document.domain'.] [No access when parent sets a `null` 'document.domain'.]
expected: NOTRUN expected: FAIL
[No access when both sides set a `null` 'document.domain'.] [No access when both sides set a `null` 'document.domain'.]
expected: NOTRUN expected: FAIL

View file

@ -3,3 +3,30 @@
[HTML: window.open `features`: non-integer values for feature `height`] [HTML: window.open `features`: non-integer values for feature `height`]
expected: FAIL expected: FAIL
[features "height=405*3" should set "height=405"]
expected: FAIL
[features "height=405.32" should set "height=405"]
expected: FAIL
[features "height=405e1" should set "height=405"]
expected: FAIL
[features "height=405/5" should set "height=405"]
expected: FAIL
[features "height=405^4" should set "height=405"]
expected: FAIL
[features "height=405.5" should set "height=405"]
expected: FAIL
[features "height=405e-1" should set "height=405"]
expected: FAIL
[features "height=405 " should set "height=405"]
expected: FAIL
[features "height=405LLl" should set "height=405"]
expected: FAIL

View file

@ -3,3 +3,30 @@
[HTML: window.open `features`: non-integer values for legacy feature `innerheight`] [HTML: window.open `features`: non-integer values for legacy feature `innerheight`]
expected: FAIL expected: FAIL
[features "innerheight=405e-1" should set "height=405"]
expected: FAIL
[features "innerheight=405LLl" should set "height=405"]
expected: FAIL
[features "innerheight=405^4" should set "height=405"]
expected: FAIL
[features "innerheight=405e1" should set "height=405"]
expected: FAIL
[features "innerheight=405 " should set "height=405"]
expected: FAIL
[features "innerheight=405/5" should set "height=405"]
expected: FAIL
[features "innerheight=405.32" should set "height=405"]
expected: FAIL
[features "innerheight=405.5" should set "height=405"]
expected: FAIL
[features "innerheight=405*3" should set "height=405"]
expected: FAIL

View file

@ -3,3 +3,30 @@
[HTML: window.open `features`: non-integer values for legacy feature `innerwidth`] [HTML: window.open `features`: non-integer values for legacy feature `innerwidth`]
expected: FAIL expected: FAIL
[features "innerwidth=405e-1" should set "width=405"]
expected: FAIL
[features "innerwidth=405*3" should set "width=405"]
expected: FAIL
[features "innerwidth=405.5" should set "width=405"]
expected: FAIL
[features "innerwidth=405e1" should set "width=405"]
expected: FAIL
[features "innerwidth=405.32" should set "width=405"]
expected: FAIL
[features "innerwidth=405 " should set "width=405"]
expected: FAIL
[features "innerwidth=405LLl" should set "width=405"]
expected: FAIL
[features "innerwidth=405/5" should set "width=405"]
expected: FAIL
[features "innerwidth=405^4" should set "width=405"]
expected: FAIL

View file

@ -3,3 +3,30 @@
[HTML: window.open `features`: non-integer values for feature `left`] [HTML: window.open `features`: non-integer values for feature `left`]
expected: FAIL expected: FAIL
[features "left=105e1" should set "left=105"]
expected: FAIL
[features "left=105 " should set "left=105"]
expected: FAIL
[features "left=105/5" should set "left=105"]
expected: FAIL
[features "left=105e-1" should set "left=105"]
expected: FAIL
[features "left=105^4" should set "left=105"]
expected: FAIL
[features "left=105LLl" should set "left=105"]
expected: FAIL
[features "left=105.32" should set "left=105"]
expected: FAIL
[features "left=105*3" should set "left=105"]
expected: FAIL
[features "left=105.5" should set "left=105"]
expected: FAIL

View file

@ -3,3 +3,30 @@
[HTML: window.open `features`: non-integer values for legacy feature `screenx`] [HTML: window.open `features`: non-integer values for legacy feature `screenx`]
expected: FAIL expected: FAIL
[features "screenx=105.5" should set "left=105"]
expected: FAIL
[features "screenx=105e1" should set "left=105"]
expected: FAIL
[features "screenx=105 " should set "left=105"]
expected: FAIL
[features "screenx=105*3" should set "left=105"]
expected: FAIL
[features "screenx=105e-1" should set "left=105"]
expected: FAIL
[features "screenx=105^4" should set "left=105"]
expected: FAIL
[features "screenx=105LLl" should set "left=105"]
expected: FAIL
[features "screenx=105/5" should set "left=105"]
expected: FAIL
[features "screenx=105.32" should set "left=105"]
expected: FAIL

View file

@ -3,3 +3,30 @@
[HTML: window.open `features`: non-integer values for legacy feature `screeny`] [HTML: window.open `features`: non-integer values for legacy feature `screeny`]
expected: FAIL expected: FAIL
[features "screeny=405^4" should set "height=405"]
expected: FAIL
[features "screeny=405e-1" should set "height=405"]
expected: FAIL
[features "screeny=405LLl" should set "height=405"]
expected: FAIL
[features "screeny=405e1" should set "height=405"]
expected: FAIL
[features "screeny=405 " should set "height=405"]
expected: FAIL
[features "screeny=405/5" should set "height=405"]
expected: FAIL
[features "screeny=405*3" should set "height=405"]
expected: FAIL
[features "screeny=405.32" should set "height=405"]
expected: FAIL
[features "screeny=405.5" should set "height=405"]
expected: FAIL

View file

@ -3,3 +3,30 @@
[HTML: window.open `features`: non-integer values for feature `top`] [HTML: window.open `features`: non-integer values for feature `top`]
expected: FAIL expected: FAIL
[features "top=105/5" should set "top=105"]
expected: FAIL
[features "top=105*3" should set "top=105"]
expected: FAIL
[features "top=105LLl" should set "top=105"]
expected: FAIL
[features "top=105e-1" should set "top=105"]
expected: FAIL
[features "top=105.32" should set "top=105"]
expected: FAIL
[features "top=105e1" should set "top=105"]
expected: FAIL
[features "top=105 " should set "top=105"]
expected: FAIL
[features "top=105^4" should set "top=105"]
expected: FAIL
[features "top=105.5" should set "top=105"]
expected: FAIL

View file

@ -3,3 +3,30 @@
[HTML: window.open `features`: non-integer values for feature `width`] [HTML: window.open `features`: non-integer values for feature `width`]
expected: FAIL expected: FAIL
[features "width=405^4" should set "width=405"]
expected: FAIL
[features "width=405.5" should set "width=405"]
expected: FAIL
[features "width=405e1" should set "width=405"]
expected: FAIL
[features "width=405 " should set "width=405"]
expected: FAIL
[features "width=405.32" should set "width=405"]
expected: FAIL
[features "width=405LLl" should set "width=405"]
expected: FAIL
[features "width=405*3" should set "width=405"]
expected: FAIL
[features "width=405e-1" should set "width=405"]
expected: FAIL
[features "width=405/5" should set "width=405"]
expected: FAIL

View file

@ -1,11 +1,7 @@
[frameElement.sub.html] [frameElement.sub.html]
expected: TIMEOUT
[The window's frameElement attribute must return its container element if it is a nested browsing context] [The window's frameElement attribute must return its container element if it is a nested browsing context]
expected: FAIL expected: FAIL
[The SecurityError must be thrown if the window accesses to frameElement attribute of a Window which does not have the same effective script origin] [The SecurityError must be thrown if the window accesses to frameElement attribute of a Window which does not have the same effective script origin]
expected: FAIL expected: FAIL
[The window's frameElement attribute must return null if the container's document does not have the same effective script origin]
expected: NOTRUN

View file

@ -1,4 +0,0 @@
[targeting-with-embedded-null-in-target.html]
[Targeting with embedded null in target]
expected: FAIL

View file

@ -6792,9 +6792,6 @@
[HTMLMediaElement interface: document.createElement("video") must inherit property "controls" with the proper type] [HTMLMediaElement interface: document.createElement("video") must inherit property "controls" with the proper type]
expected: FAIL expected: FAIL
[HTMLMediaElement interface: document.createElement("video") must inherit property "volume" with the proper type]
expected: PASS
[HTMLMediaElement interface: document.createElement("video") must inherit property "muted" with the proper type] [HTMLMediaElement interface: document.createElement("video") must inherit property "muted" with the proper type]
expected: FAIL expected: FAIL
@ -6837,9 +6834,6 @@
[HTMLMediaElement interface: document.createElement("audio") must inherit property "controls" with the proper type] [HTMLMediaElement interface: document.createElement("audio") must inherit property "controls" with the proper type]
expected: FAIL expected: FAIL
[HTMLMediaElement interface: document.createElement("audio") must inherit property "volume" with the proper type]
expected: PASS
[HTMLMediaElement interface: document.createElement("audio") must inherit property "muted" with the proper type] [HTMLMediaElement interface: document.createElement("audio") must inherit property "muted" with the proper type]
expected: FAIL expected: FAIL
@ -6882,9 +6876,6 @@
[HTMLMediaElement interface: new Audio() must inherit property "controls" with the proper type] [HTMLMediaElement interface: new Audio() must inherit property "controls" with the proper type]
expected: FAIL expected: FAIL
[HTMLMediaElement interface: new Audio() must inherit property "volume" with the proper type]
expected: PASS
[HTMLMediaElement interface: new Audio() must inherit property "muted" with the proper type] [HTMLMediaElement interface: new Audio() must inherit property "muted" with the proper type]
expected: FAIL expected: FAIL
@ -7005,9 +6996,6 @@
[HTMLMediaElement interface: attribute controls] [HTMLMediaElement interface: attribute controls]
expected: FAIL expected: FAIL
[HTMLMediaElement interface: attribute volume]
expected: PASS
[HTMLMediaElement interface: attribute muted] [HTMLMediaElement interface: attribute muted]
expected: FAIL expected: FAIL
@ -10730,9 +10718,6 @@
[ImageBitmap interface: operation close()] [ImageBitmap interface: operation close()]
expected: FAIL expected: FAIL
[MessageEvent interface: attribute source]
expected: FAIL
[MessageEvent interface: attribute ports] [MessageEvent interface: attribute ports]
expected: FAIL expected: FAIL

View file

@ -3,6 +3,3 @@
[Check that sandboxed iframe cannot perform navigation on the top\n frame when allow-top-navigation is not set] [Check that sandboxed iframe cannot perform navigation on the top\n frame when allow-top-navigation is not set]
expected: FAIL expected: FAIL
[Frames without `allow-top-navigation` should not be able to navigate the top frame.]
expected: FAIL

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_escaping-1.html] [iframe_sandbox_popups_escaping-1.html]
type: testharness type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL expected: TIMEOUT

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-2.html] [iframe_sandbox_popups_escaping-2.html]
type: testharness expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL expected: TIMEOUT

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_nonescaping-1.html] [iframe_sandbox_popups_nonescaping-1.html]
type: testharness type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL expected: NOTRUN

View file

@ -1,10 +0,0 @@
[non-active-document.html]
[DOMParser]
expected: FAIL
[createHTMLDocument]
expected: FAIL
[<template>]
expected: FAIL

View file

@ -0,0 +1,4 @@
[077.html]
[ adding several types of scripts through the DOM and removing some of them confuses scheduler ]
expected: FAIL

View file

@ -12,6 +12,3 @@
[document.open should throw a SecurityError with cross-origin document even when the ignore-opens-during-unload counter is greater than 0 (during pagehide event)] [document.open should throw a SecurityError with cross-origin document even when the ignore-opens-during-unload counter is greater than 0 (during pagehide event)]
expected: FAIL expected: FAIL
[document.open should throw a SecurityError with cross-origin document even when there is an active parser executing script]
expected: FAIL

View file

@ -9,6 +9,3 @@
[document.open should throw an InvalidStateError with XML document even when the ignore-opens-during-unload counter is greater than 0 (during pagehide event)] [document.open should throw an InvalidStateError with XML document even when the ignore-opens-during-unload counter is greater than 0 (during pagehide event)]
expected: FAIL expected: FAIL
[document.open should throw an InvalidStateError with XML document even when there is an active parser executing script]
expected: FAIL

View file

@ -1,4 +0,0 @@
[bailout-side-effects-synchronous-script.window.html]
[document.open bailout should not have any side effects (active parser whose script nesting level is greater than 0)]
expected: FAIL

View file

@ -1,5 +1,4 @@
[processing-instruction.html] [processing-instruction.html]
expected: ERROR
[Child css via a ProcessingInstruction.] [Child css via a ProcessingInstruction.]
expected: TIMEOUT expected: FAIL

View file

@ -1,5 +1,4 @@
[external-import-stylesheet.html] [external-import-stylesheet.html]
expected: ERROR
[Font from imported stylesheet (external).] [Font from imported stylesheet (external).]
expected: TIMEOUT expected: FAIL

View file

@ -1,5 +1,4 @@
[internal-import-stylesheet.html] [internal-import-stylesheet.html]
expected: ERROR
[Font from imported stylesheet (internal).] [Font from imported stylesheet (internal).]
expected: TIMEOUT expected: FAIL

View file

@ -1,5 +1,4 @@
[processing-instruction.html] [processing-instruction.html]
expected: ERROR
[Font from external stylesheet (from ProcessingInstruction).] [Font from external stylesheet (from ProcessingInstruction).]
expected: TIMEOUT expected: FAIL

View file

@ -1,5 +1,4 @@
[external-import-stylesheet.html] [external-import-stylesheet.html]
expected: ERROR
[Image from imported stylesheet (external).] [Image from imported stylesheet (external).]
expected: TIMEOUT expected: FAIL

View file

@ -1,5 +1,4 @@
[external-stylesheet.html] [external-stylesheet.html]
expected: ERROR
[Image from external stylesheet.] [Image from external stylesheet.]
expected: TIMEOUT expected: FAIL

View file

@ -1,5 +1,4 @@
[inline-style.html] [inline-style.html]
expected: ERROR
[Image from inline styles.] [Image from inline styles.]
expected: TIMEOUT expected: FAIL

View file

@ -1,5 +1,4 @@
[internal-import-stylesheet.html] [internal-import-stylesheet.html]
expected: ERROR
[Image from imported stylesheet (internal).] [Image from imported stylesheet (internal).]
expected: TIMEOUT expected: FAIL

View file

@ -1,5 +1,4 @@
[internal-stylesheet.html] [internal-stylesheet.html]
expected: ERROR
[Image from internal stylesheet.] [Image from internal stylesheet.]
expected: TIMEOUT expected: FAIL

View file

@ -1,5 +1,4 @@
[processing-instruction.html] [processing-instruction.html]
expected: ERROR
[Image from external stylesheet (from ProcessingInstruction).] [Image from external stylesheet (from ProcessingInstruction).]
expected: TIMEOUT expected: FAIL

View file

@ -1,8 +1,28 @@
[external-stylesheet.html] [external-stylesheet.html]
expected: ERROR
[Test styling SVG from external style fill] [Test styling SVG from external style fill]
expected: TIMEOUT expected: FAIL
[Test styling SVG from external style stroke] [Test styling SVG from external style stroke]
expected: NOTRUN expected: FAIL
[Test styling SVG from external style mask]
expected: FAIL
[Test styling SVG from external style marker-start]
expected: FAIL
[Test styling SVG from external style filter]
expected: FAIL
[Test styling SVG from external style clip-path]
expected: FAIL
[Test styling SVG from external style marker-end]
expected: FAIL
[Test styling SVG from external style marker-mid]
expected: FAIL
[Test styling SVG from external style mask-image]
expected: FAIL

View file

@ -1,8 +1,28 @@
[inline-style.html] [inline-style.html]
expected: ERROR
[Styling SVG from inline styles stroke] [Styling SVG from inline styles stroke]
expected: NOTRUN expected: FAIL
[Styling SVG from inline styles fill] [Styling SVG from inline styles fill]
expected: TIMEOUT expected: FAIL
[Styling SVG from inline styles marker-start]
expected: FAIL
[Styling SVG from inline styles mask-image]
expected: FAIL
[Styling SVG from inline styles filter]
expected: FAIL
[Styling SVG from inline styles marker-mid]
expected: FAIL
[Styling SVG from inline styles clip-path]
expected: FAIL
[Styling SVG from inline styles mask]
expected: FAIL
[Styling SVG from inline styles marker-end]
expected: FAIL

View file

@ -1,8 +1,28 @@
[internal-stylesheet.html] [internal-stylesheet.html]
expected: ERROR
[Styling SVG from internal styles stroke] [Styling SVG from internal styles stroke]
expected: NOTRUN expected: FAIL
[Styling SVG from internal styles fill] [Styling SVG from internal styles fill]
expected: TIMEOUT expected: FAIL
[Styling SVG from internal styles clip-path]
expected: FAIL
[Styling SVG from internal styles marker-mid]
expected: FAIL
[Styling SVG from internal styles mask-image]
expected: FAIL
[Styling SVG from internal styles marker-end]
expected: FAIL
[Styling SVG from internal styles filter]
expected: FAIL
[Styling SVG from internal styles marker-start]
expected: FAIL
[Styling SVG from internal styles mask]
expected: FAIL

View file

@ -1,8 +1,25 @@
[presentation-attribute.html] [presentation-attribute.html]
expected: ERROR
[Styling SVG from presentation attributes fill] [Styling SVG from presentation attributes fill]
expected: TIMEOUT expected: FAIL
[Styling SVG from presentation attributes stroke] [Styling SVG from presentation attributes stroke]
expected: NOTRUN expected: FAIL
[Styling SVG from presentation attributes marker-start]
expected: FAIL
[Styling SVG from presentation attributes filter]
expected: FAIL
[Styling SVG from presentation attributes mask]
expected: FAIL
[Styling SVG from presentation attributes marker-end]
expected: FAIL
[Styling SVG from presentation attributes marker-mid]
expected: FAIL
[Styling SVG from presentation attributes clip-path]
expected: FAIL

View file

@ -1,8 +1,28 @@
[processing-instruction.html] [processing-instruction.html]
expected: ERROR
[Styling SVG from ProcessingInstruction stroke] [Styling SVG from ProcessingInstruction stroke]
expected: NOTRUN expected: FAIL
[Styling SVG from ProcessingInstruction fill] [Styling SVG from ProcessingInstruction fill]
expected: TIMEOUT expected: FAIL
[Styling SVG from ProcessingInstruction mask-image]
expected: FAIL
[Styling SVG from ProcessingInstruction marker-end]
expected: FAIL
[Styling SVG from ProcessingInstruction marker-mid]
expected: FAIL
[Styling SVG from ProcessingInstruction clip-path]
expected: FAIL
[Styling SVG from ProcessingInstruction marker-start]
expected: FAIL
[Styling SVG from ProcessingInstruction filter]
expected: FAIL
[Styling SVG from ProcessingInstruction mask]
expected: FAIL

View file

@ -1,5 +1,4 @@
[multiple-headers-and-values.html] [multiple-headers-and-values.html]
expected: ERROR
[Image uses the last recognized Referrer-Policy header value] [Image uses the last recognized Referrer-Policy header value]
expected: NOTRUN expected: FAIL

View file

@ -1,5 +1,4 @@
[multiple-headers-combined.html] [multiple-headers-combined.html]
expected: ERROR
[Image uses the last recognized Referrer-Policy header value] [Image uses the last recognized Referrer-Policy header value]
expected: NOTRUN expected: FAIL

View file

@ -1,5 +1,4 @@
[multiple-headers-one-invalid.html] [multiple-headers-one-invalid.html]
expected: ERROR
[Referrer policy header parsing fails if one header is invalid] [Referrer policy header parsing fails if one header is invalid]
expected: NOTRUN expected: FAIL

View file

@ -1,5 +1,4 @@
[multiple-headers-one-unknown-token.html] [multiple-headers-one-unknown-token.html]
expected: ERROR
[Image uses last recognized referrer policy token from Referrer-Policy headers] [Image uses last recognized referrer policy token from Referrer-Policy headers]
expected: NOTRUN expected: FAIL

View file

@ -1,5 +1,4 @@
[multiple-headers.html] [multiple-headers.html]
expected: ERROR
[Image uses the last recognized Referrer-Policy header] [Image uses the last recognized Referrer-Policy header]
expected: NOTRUN expected: FAIL

View file

@ -2,8 +2,8 @@
type: testharness type: testharness
expected: TIMEOUT expected: TIMEOUT
[Sandboxed iframe with opaque origin doesn't send referrers.] [Sandboxed iframe with opaque origin doesn't send referrers.]
expected: NOTRUN expected: TIMEOUT
[Sandboxed iframe with tuple origin sends referrers.] [Sandboxed iframe with tuple origin sends referrers.]
expected: NOTRUN expected: TIMEOUT

View file

@ -0,0 +1,5 @@
[area-navigate.html]
expected: TIMEOUT
[Area is responding with HTTP headers]
expected: TIMEOUT

View file

@ -0,0 +1,4 @@
[attr-referrer-invalid-value.html]
[Invalid referrerpolicy values not reflected]
expected: FAIL

View file

@ -0,0 +1,4 @@
[fetch-messaging.html]
[Fetch is responding with HTTP headers]
expected: FAIL

View file

@ -0,0 +1,4 @@
[iframe-messaging.html]
[Iframe is responding with HTTP headers]
expected: FAIL

View file

@ -0,0 +1,4 @@
[image-decoding.html]
[Image is encoding headers as JSON.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[link-navigate.html]
[Link is responding with HTTP headers]
expected: FAIL

View file

@ -0,0 +1,4 @@
[script-messaging.html]
[Script is responding with HTTP headers]
expected: FAIL

View file

@ -0,0 +1,4 @@
[worker-messaging.html]
[Worker is responding with HTTP headers]
expected: FAIL

View file

@ -0,0 +1,4 @@
[xhr-messaging.html]
[XHR is responding with HTTP headers]
expected: FAIL

View file

@ -1,3 +1,4 @@
[unsupported-csp-referrer-directive.html] [unsupported-csp-referrer-directive.html]
type: testharness [Image has a referrer despite CSP 'referrer' directive]
disabled: https://github.com/servo/servo/issues/4767 expected: FAIL

View file

@ -0,0 +1,4 @@
[insecure-protocol.http.html]
[The referrer URL is stripped-referrer when a\n document served over http requires an http\n sub-resource via a-tag using the attr-referrer\n delivery method with no-redirect and when\n the target request is cross-origin.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[insecure-protocol.http.html]
[The referrer URL is stripped-referrer when a\n document served over http requires an http\n sub-resource via img-tag using the attr-referrer\n delivery method with keep-origin-redirect and when\n the target request is cross-origin.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[insecure-protocol.http.html]
[The referrer URL is stripped-referrer when a\n document served over http requires an http\n sub-resource via img-tag using the attr-referrer\n delivery method with no-redirect and when\n the target request is cross-origin.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[insecure-protocol.http.html]
[The referrer URL is stripped-referrer when a\n document served over http requires an http\n sub-resource via img-tag using the attr-referrer\n delivery method with swap-origin-redirect and when\n the target request is cross-origin.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[upgrade-protocol.http.html]
[The referrer URL is stripped-referrer when a\n document served over http requires an https\n sub-resource via a-tag using the attr-referrer\n delivery method with no-redirect and when\n the target request is cross-origin.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[upgrade-protocol.http.html]
[The referrer URL is stripped-referrer when a\n document served over http requires an https\n sub-resource via img-tag using the attr-referrer\n delivery method with keep-origin-redirect and when\n the target request is cross-origin.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[upgrade-protocol.http.html]
[The referrer URL is stripped-referrer when a\n document served over http requires an https\n sub-resource via img-tag using the attr-referrer\n delivery method with no-redirect and when\n the target request is cross-origin.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[upgrade-protocol.http.html]
[The referrer URL is stripped-referrer when a\n document served over http requires an https\n sub-resource via img-tag using the attr-referrer\n delivery method with swap-origin-redirect and when\n the target request is cross-origin.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[insecure-protocol.http.html]
[The referrer URL is stripped-referrer when a\n document served over http requires an http\n sub-resource via a-tag using the attr-referrer\n delivery method with no-redirect and when\n the target request is same-origin.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[insecure-protocol.http.html]
[The referrer URL is stripped-referrer when a\n document served over http requires an http\n sub-resource via img-tag using the attr-referrer\n delivery method with keep-origin-redirect and when\n the target request is same-origin.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[insecure-protocol.http.html]
[The referrer URL is stripped-referrer when a\n document served over http requires an http\n sub-resource via img-tag using the attr-referrer\n delivery method with no-redirect and when\n the target request is same-origin.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[insecure-protocol.http.html]
[The referrer URL is stripped-referrer when a\n document served over http requires an http\n sub-resource via img-tag using the attr-referrer\n delivery method with swap-origin-redirect and when\n the target request is same-origin.]
expected: FAIL

Some files were not shown because too many files have changed in this diff Show more