mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
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:
commit
11d1184663
919 changed files with 2736 additions and 1905 deletions
|
@ -1279,8 +1279,13 @@ where
|
|||
warn!("constellation got set final url message for dead pipeline");
|
||||
}
|
||||
},
|
||||
FromScriptMsg::PostMessage(browsing_context_id, origin, data) => {
|
||||
self.handle_post_message_msg(browsing_context_id, origin, data);
|
||||
FromScriptMsg::PostMessage {
|
||||
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 => {
|
||||
self.handle_focus_msg(source_pipeline_id);
|
||||
|
@ -2844,6 +2849,7 @@ where
|
|||
fn handle_post_message_msg(
|
||||
&mut self,
|
||||
browsing_context_id: BrowsingContextId,
|
||||
source_pipeline: PipelineId,
|
||||
origin: Option<ImmutableOrigin>,
|
||||
data: Vec<u8>,
|
||||
) {
|
||||
|
@ -2856,7 +2862,17 @@ where
|
|||
},
|
||||
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) {
|
||||
Some(pipeline) => pipeline.event_loop.send(msg),
|
||||
None => return warn!("postMessage to closed pipeline {}.", pipeline_id),
|
||||
|
|
|
@ -424,7 +424,7 @@ impl DedicatedWorkerGlobalScope {
|
|||
JSAutoCompartment::new(scope.get_cx(), scope.reflector().get_jsobject().get());
|
||||
rooted!(in(scope.get_cx()) let mut message = UndefinedValue());
|
||||
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) => {
|
||||
self.upcast::<WorkerGlobalScope>().process_event(msg);
|
||||
|
|
|
@ -203,11 +203,12 @@ impl DissimilarOriginWindow {
|
|||
None => return warn!("postMessage called with no incumbent global"),
|
||||
Some(incumbent) => incumbent,
|
||||
};
|
||||
let msg = ScriptMsg::PostMessage(
|
||||
self.window_proxy.browsing_context_id(),
|
||||
origin,
|
||||
data.move_to_arraybuffer(),
|
||||
);
|
||||
let msg = ScriptMsg::PostMessage {
|
||||
target: self.window_proxy.browsing_context_id(),
|
||||
source: incumbent.pipeline_id(),
|
||||
target_origin: origin,
|
||||
data: data.move_to_arraybuffer(),
|
||||
};
|
||||
let _ = incumbent.script_to_constellation_chan().send(msg);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -238,6 +238,7 @@ impl EventSourceContext {
|
|||
false,
|
||||
data.handle(),
|
||||
DOMString::from(self.origin.clone()),
|
||||
None,
|
||||
event_source.last_event_id.borrow().clone(),
|
||||
)
|
||||
};
|
||||
|
|
|
@ -7,24 +7,27 @@ use crate::dom::bindings::codegen::Bindings::MessageEventBinding;
|
|||
use crate::dom::bindings::codegen::Bindings::MessageEventBinding::MessageEventMethods;
|
||||
use crate::dom::bindings::error::Fallible;
|
||||
use crate::dom::bindings::inheritance::Castable;
|
||||
use crate::dom::bindings::reflector::reflect_dom_object;
|
||||
use crate::dom::bindings::root::DomRoot;
|
||||
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
|
||||
use crate::dom::bindings::root::{Dom, DomRoot};
|
||||
use crate::dom::bindings::str::DOMString;
|
||||
use crate::dom::bindings::trace::RootedTraceableBox;
|
||||
use crate::dom::event::Event;
|
||||
use crate::dom::eventtarget::EventTarget;
|
||||
use crate::dom::globalscope::GlobalScope;
|
||||
use crate::dom::windowproxy::WindowProxy;
|
||||
use dom_struct::dom_struct;
|
||||
use js::jsapi::{Heap, JSContext};
|
||||
use js::jsapi::{Heap, JSContext, JSObject};
|
||||
use js::jsval::JSVal;
|
||||
use js::rust::HandleValue;
|
||||
use servo_atoms::Atom;
|
||||
use std::ptr::NonNull;
|
||||
|
||||
#[dom_struct]
|
||||
pub struct MessageEvent {
|
||||
event: Event,
|
||||
data: Heap<JSVal>,
|
||||
origin: DOMString,
|
||||
source: Option<Dom<WindowProxy>>,
|
||||
lastEventId: DOMString,
|
||||
}
|
||||
|
||||
|
@ -34,6 +37,7 @@ impl MessageEvent {
|
|||
global,
|
||||
HandleValue::undefined(),
|
||||
DOMString::new(),
|
||||
None,
|
||||
DOMString::new(),
|
||||
)
|
||||
}
|
||||
|
@ -42,12 +46,14 @@ impl MessageEvent {
|
|||
global: &GlobalScope,
|
||||
data: HandleValue,
|
||||
origin: DOMString,
|
||||
source: Option<&WindowProxy>,
|
||||
lastEventId: DOMString,
|
||||
) -> DomRoot<MessageEvent> {
|
||||
let ev = Box::new(MessageEvent {
|
||||
event: Event::new_inherited(),
|
||||
data: Heap::default(),
|
||||
origin: origin,
|
||||
source: source.map(Dom::from_ref),
|
||||
lastEventId: lastEventId,
|
||||
});
|
||||
let ev = reflect_dom_object(ev, global, MessageEventBinding::Wrap);
|
||||
|
@ -63,9 +69,10 @@ impl MessageEvent {
|
|||
cancelable: bool,
|
||||
data: HandleValue,
|
||||
origin: DOMString,
|
||||
source: Option<&WindowProxy>,
|
||||
lastEventId: DOMString,
|
||||
) -> 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>();
|
||||
event.init_event(type_, bubbles, cancelable);
|
||||
|
@ -78,6 +85,10 @@ impl MessageEvent {
|
|||
type_: DOMString,
|
||||
init: RootedTraceableBox<MessageEventBinding::MessageEventInit>,
|
||||
) -> Fallible<DomRoot<MessageEvent>> {
|
||||
let source = init
|
||||
.source
|
||||
.as_ref()
|
||||
.and_then(|inner| inner.as_ref().map(|source| source.window_proxy()));
|
||||
let ev = MessageEvent::new(
|
||||
global,
|
||||
Atom::from(type_),
|
||||
|
@ -85,6 +96,7 @@ impl MessageEvent {
|
|||
init.parent.cancelable,
|
||||
init.data.handle(),
|
||||
init.origin.clone(),
|
||||
source.as_ref().map(|source| &**source),
|
||||
init.lastEventId.clone(),
|
||||
);
|
||||
Ok(ev)
|
||||
|
@ -97,6 +109,7 @@ impl MessageEvent {
|
|||
scope: &GlobalScope,
|
||||
message: HandleValue,
|
||||
origin: Option<&str>,
|
||||
source: Option<&WindowProxy>,
|
||||
) {
|
||||
let messageevent = MessageEvent::new(
|
||||
scope,
|
||||
|
@ -105,6 +118,7 @@ impl MessageEvent {
|
|||
false,
|
||||
message,
|
||||
DOMString::from(origin.unwrap_or("")),
|
||||
source,
|
||||
DOMString::new(),
|
||||
);
|
||||
messageevent.upcast::<Event>().fire(target);
|
||||
|
@ -123,6 +137,14 @@ impl MessageEventMethods for MessageEvent {
|
|||
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
|
||||
fn LastEventId(&self) -> DOMString {
|
||||
self.lastEventId.clone()
|
||||
|
|
|
@ -8,6 +8,8 @@ interface MessageEvent : Event {
|
|||
readonly attribute any data;
|
||||
readonly attribute DOMString origin;
|
||||
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 MessagePort[]? ports;
|
||||
};
|
||||
|
@ -17,6 +19,7 @@ dictionary MessageEventInit : EventInit {
|
|||
DOMString origin = "";
|
||||
DOMString lastEventId = "";
|
||||
//DOMString channel;
|
||||
Window? source;
|
||||
//(WindowProxy or MessagePort)? source;
|
||||
//sequence<MessagePort> ports;
|
||||
};
|
||||
|
|
|
@ -599,6 +599,7 @@ impl TaskOnce for MessageReceivedTask {
|
|||
&global,
|
||||
message.handle(),
|
||||
Some(&ws.origin().ascii_serialization()),
|
||||
None,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -859,14 +859,13 @@ impl WindowMethods for Window {
|
|||
message: HandleValue,
|
||||
origin: DOMString,
|
||||
) -> ErrorResult {
|
||||
let source_global = GlobalScope::incumbent().expect("no incumbent global??");
|
||||
let source = source_global.as_window();
|
||||
|
||||
// Step 3-5.
|
||||
let origin = match &origin[..] {
|
||||
"*" => None,
|
||||
"/" => {
|
||||
// TODO(#12715): Should be the origin of the incumbent settings
|
||||
// object, not self's.
|
||||
Some(self.Document().origin().immutable().clone())
|
||||
},
|
||||
"/" => Some(source.Document().origin().immutable().clone()),
|
||||
url => match ServoUrl::parse(&url) {
|
||||
Ok(url) => Some(url.origin().clone()),
|
||||
Err(_) => return Err(Error::Syntax),
|
||||
|
@ -878,7 +877,7 @@ impl WindowMethods for Window {
|
|||
let data = StructuredCloneData::write(cx, message)?;
|
||||
|
||||
// Step 9.
|
||||
self.post_message(origin, data);
|
||||
self.post_message(origin, &*source.window_proxy(), data);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -2194,11 +2193,14 @@ impl Window {
|
|||
pub fn post_message(
|
||||
&self,
|
||||
target_origin: Option<ImmutableOrigin>,
|
||||
source: &WindowProxy,
|
||||
serialize_with_transfer_result: StructuredCloneData,
|
||||
) {
|
||||
let this = Trusted::new(self);
|
||||
let source = Trusted::new(source);
|
||||
let task = task!(post_serialised_message: move || {
|
||||
let this = this.root();
|
||||
let source = source.root();
|
||||
|
||||
// Step 7.1.
|
||||
if let Some(target_origin) = target_origin {
|
||||
|
@ -2226,7 +2228,8 @@ impl Window {
|
|||
this.upcast(),
|
||||
this.upcast(),
|
||||
message_clone.handle(),
|
||||
None
|
||||
None,
|
||||
Some(&*source),
|
||||
);
|
||||
});
|
||||
// FIXME(nox): Why are errors silenced here?
|
||||
|
|
|
@ -140,7 +140,7 @@ impl Worker {
|
|||
let _ac = JSAutoCompartment::new(global.get_cx(), target.reflector().get_jsobject().get());
|
||||
rooted!(in(global.get_cx()) let mut message = UndefinedValue());
|
||||
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) {
|
||||
|
|
|
@ -1419,7 +1419,7 @@ impl ScriptThread {
|
|||
ChangeFrameVisibilityStatus(id, ..) => Some(id),
|
||||
NotifyVisibilityChange(id, ..) => Some(id),
|
||||
Navigate(id, ..) => Some(id),
|
||||
PostMessage(id, ..) => Some(id),
|
||||
PostMessage { target: id, .. } => Some(id),
|
||||
UpdatePipelineId(_, _, id, _) => Some(id),
|
||||
UpdateHistoryState(id, ..) => Some(id),
|
||||
RemoveHistoryStates(id, ..) => Some(id),
|
||||
|
@ -1592,9 +1592,19 @@ impl ScriptThread {
|
|||
browsing_context_id,
|
||||
visible,
|
||||
),
|
||||
ConstellationControlMsg::PostMessage(pipeline_id, origin, data) => {
|
||||
self.handle_post_message_msg(pipeline_id, origin, data)
|
||||
},
|
||||
ConstellationControlMsg::PostMessage {
|
||||
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(
|
||||
parent_pipeline_id,
|
||||
browsing_context_id,
|
||||
|
@ -2080,12 +2090,33 @@ impl ScriptThread {
|
|||
fn handle_post_message_msg(
|
||||
&self,
|
||||
pipeline_id: PipelineId,
|
||||
source_pipeline_id: PipelineId,
|
||||
source_browsing_context: TopLevelBrowsingContextId,
|
||||
origin: Option<ImmutableOrigin>,
|
||||
data: Vec<u8>,
|
||||
) {
|
||||
match { self.documents.borrow().find_window(pipeline_id) } {
|
||||
None => return warn!("postMessage after pipeline {} closed.", pipeline_id),
|
||||
Some(window) => window.post_message(origin, StructuredCloneData::Vector(data)),
|
||||
None => return warn!("postMessage after target pipeline {} closed.", pipeline_id),
|
||||
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);
|
||||
|
||||
// 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
|
||||
.send((incomplete.pipeline_id, ScriptMsg::ActivateDocument))
|
||||
.unwrap();
|
||||
|
|
|
@ -284,7 +284,18 @@ pub enum ConstellationControlMsg {
|
|||
/// PipelineId is for the parent, BrowsingContextId is for the nested browsing context
|
||||
Navigate(PipelineId, BrowsingContextId, LoadData, bool),
|
||||
/// 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.
|
||||
/// First PipelineId is for the parent, second is the new PipelineId for the frame.
|
||||
UpdatePipelineId(
|
||||
|
@ -358,7 +369,7 @@ impl fmt::Debug for ConstellationControlMsg {
|
|||
ChangeFrameVisibilityStatus(..) => "ChangeFrameVisibilityStatus",
|
||||
NotifyVisibilityChange(..) => "NotifyVisibilityChange",
|
||||
Navigate(..) => "Navigate",
|
||||
PostMessage(..) => "PostMessage",
|
||||
PostMessage { .. } => "PostMessage",
|
||||
UpdatePipelineId(..) => "UpdatePipelineId",
|
||||
UpdateHistoryState(..) => "UpdateHistoryState",
|
||||
RemoveHistoryStates(..) => "RemoveHistoryStates",
|
||||
|
|
|
@ -134,7 +134,16 @@ pub enum ScriptMsg {
|
|||
/// Abort loading after sending a LoadUrl message.
|
||||
AbortLoadUrl,
|
||||
/// 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.
|
||||
NavigatedToFragment(ServoUrl, bool),
|
||||
/// HTMLIFrameElement Forward or Back traversal.
|
||||
|
@ -209,7 +218,7 @@ impl fmt::Debug for ScriptMsg {
|
|||
LoadComplete => "LoadComplete",
|
||||
LoadUrl(..) => "LoadUrl",
|
||||
AbortLoadUrl => "AbortLoadUrl",
|
||||
PostMessage(..) => "PostMessage",
|
||||
PostMessage { .. } => "PostMessage",
|
||||
NavigatedToFragment(..) => "NavigatedToFragment",
|
||||
TraverseHistory(..) => "TraverseHistory",
|
||||
PushHistoryState(..) => "PushHistoryState",
|
||||
|
|
|
@ -4,7 +4,7 @@ skip: true
|
|||
[mozilla]
|
||||
skip: false
|
||||
[referrer-policy]
|
||||
skip: true
|
||||
skip: false
|
||||
[_webgl]
|
||||
skip: false
|
||||
[2dcontext]
|
||||
|
@ -106,7 +106,7 @@ skip: true
|
|||
[quirks]
|
||||
skip: false
|
||||
[referrer-policy]
|
||||
skip: true
|
||||
skip: false
|
||||
[resource-timing]
|
||||
skip: false
|
||||
[subresource-integrity]
|
||||
|
|
|
@ -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
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[unicode-origin.sub.html]
|
||||
expected: TIMEOUT
|
||||
[Verify serialization of non-ascii origin in Blob URLs]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
[url-lifetime.html]
|
||||
expected: TIMEOUT
|
||||
[Terminating worker revokes its URLs]
|
||||
expected: FAIL
|
||||
|
||||
[Removing an iframe revokes its URLs]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -650092,67 +650092,67 @@
|
|||
"support"
|
||||
],
|
||||
"referrer-policy/css-integration/child-css/external-import-stylesheet.html": [
|
||||
"a2d3e8ced0412b97422847d4d81c1403cf9ae52c",
|
||||
"40f4234ad48d19162cefae933fd0f53a72ff0c19",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/child-css/internal-import-stylesheet.html": [
|
||||
"aebf5031484b799989d6b6a9dd72a5bc28575214",
|
||||
"30c5ea2903094af38dea9a7a565255d178069178",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/child-css/processing-instruction.html": [
|
||||
"b6333e2c7b248c3f3b863bd06f1c99abd472f162",
|
||||
"52a0ded42a185ed5ff6f449879e0ce50f8255868",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/css-test-helper.js": [
|
||||
"f5886dbbcbe358438dfbac45c5a0127e9e990ad4",
|
||||
"788df16a456b83a23de662b710c200042a1e7254",
|
||||
"support"
|
||||
],
|
||||
"referrer-policy/css-integration/font-face/external-import-stylesheet.html": [
|
||||
"c344c56c5bf322f35e8d8c74427d80391e6637d3",
|
||||
"80e3587ad62f040f2cfb28645437fcbc0e66b415",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/font-face/external-stylesheet.html": [
|
||||
"24e4bb99900a556cb0b44144a25c9f8249224eb7",
|
||||
"a91eb3fe758299229040466deb2d1b0263f77197",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/font-face/internal-import-stylesheet.html": [
|
||||
"54e2383423cab8679635d05c256c32e27a94c024",
|
||||
"a637082a4ce7dff612b223fc8a4c2195db300013",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/font-face/internal-stylesheet.html": [
|
||||
"b3869bcebdcdadea3e50d7e8713c853d46ba4816",
|
||||
"eebd864bc56725b79c1f29c0597466574e2af091",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/font-face/processing-instruction.html": [
|
||||
"89ee918e24e14b8ea5d35a7dfaf09610eb89ee11",
|
||||
"bfc42d9fcbe355514c7bf72ac087d7159439824e",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/image/external-import-stylesheet.html": [
|
||||
"0023af31b17ee883e6e9fe6cdd8f09b8eacf83d1",
|
||||
"80c71b0e215b547d664aee8757d70188c012a9c0",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/image/external-stylesheet.html": [
|
||||
"d14769db4a1221bb6e220aa594c4a3b6bab97aa1",
|
||||
"ba7497b97de6911c149b423bf25305123e97150e",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/image/inline-style.html": [
|
||||
"42128ae062093c0e8feb5d90ab62a6cb281cf8e9",
|
||||
"758b6d91852f67d4e47726815804a5e366fe534d",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/image/internal-import-stylesheet.html": [
|
||||
"90003547f4d4e2048cc33f7125d756d42507140d",
|
||||
"24aa1858304a2130624589b0a64c6f9ec9cac5a1",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/image/internal-stylesheet.html": [
|
||||
"943108d66e4b273a6d3be30b2ea8a0edb0490c7b",
|
||||
"f4567885e1f1e215487a11f1023d117517cd88b8",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/image/presentation-attribute.html": [
|
||||
"78401d3ec16866f1e51618bdb5cb028f5eea8490",
|
||||
"d0a4d96f84c8e48ea5daf5699c7b04bbc877ba86",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/image/processing-instruction.html": [
|
||||
"1ca18547dd54c4707250f400999a041f16f77ddf",
|
||||
"926147be489a85164758dcf644c715e4a5c02de6",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/css-integration/svg/external-stylesheet.html": [
|
||||
|
@ -650176,7 +650176,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"referrer-policy/generic/common.js": [
|
||||
"f9bbe42b914c46822ec8b74aacd849789723dd72",
|
||||
"a16691bccb2543ad68b81e9a16fa261d3cce6a9f",
|
||||
"support"
|
||||
],
|
||||
"referrer-policy/generic/iframe-inheritance.html": [
|
||||
|
@ -650228,11 +650228,11 @@
|
|||
"support"
|
||||
],
|
||||
"referrer-policy/generic/referrer-policy-test-case.js": [
|
||||
"4641683cd850da86279dcd062aaf868d346aa2bd",
|
||||
"2385cc2a1c4e51a2855299e42b69ac12362cd699",
|
||||
"support"
|
||||
],
|
||||
"referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html": [
|
||||
"8fee77f836378ec137c3bf0d554f4def83a5caba",
|
||||
"1b2b12bf6910e075338462de577dc4228f52a21f",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/generic/sanity-checker.js": [
|
||||
|
@ -650240,7 +650240,7 @@
|
|||
"support"
|
||||
],
|
||||
"referrer-policy/generic/subresource-test/area-navigate.html": [
|
||||
"bca7e479fa2ca41505bc73cf74c6e518efa7e947",
|
||||
"3eb824521b7801c518a7b36218075eb3d74bd639",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/generic/subresource-test/attr-referrer-invalid-value.html": [
|
||||
|
@ -650248,31 +650248,31 @@
|
|||
"testharness"
|
||||
],
|
||||
"referrer-policy/generic/subresource-test/fetch-messaging.html": [
|
||||
"046b29e9a3e94753c1a552732b0f44d2883a011d",
|
||||
"edb159d9eb1cf5eed6af249a40f70d9ecd079d68",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/generic/subresource-test/iframe-messaging.html": [
|
||||
"a3e55707c26f95624baaa54b8778d641cd756d72",
|
||||
"606e18b281f6c3498573dc9bfaefefca1390026a",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/generic/subresource-test/image-decoding.html": [
|
||||
"448f12b1348fa77aaaebd52b2c3ee6ae9c73a5f6",
|
||||
"9c50ea6619389dad8ad81c4c2afbeb8030b176db",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/generic/subresource-test/link-navigate.html": [
|
||||
"45e502004d4b640d0b2194e48d060b8d3cc3f120",
|
||||
"95582f65bac8a3b478cc8cd4fe9b883fb507237f",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/generic/subresource-test/script-messaging.html": [
|
||||
"09c5db6193fed52c60edc2526609c3d501c45da8",
|
||||
"f73f4406df20694480f82570ed8674fe283ea375",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/generic/subresource-test/worker-messaging.html": [
|
||||
"6d34366b943ad2b3b15f08179a58ef5227c675d0",
|
||||
"fd7591882e91e7265fd740b9018248d21f13b5b9",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/generic/subresource-test/xhr-messaging.html": [
|
||||
"09f69140098a16bd66a117cf6187fedc862d9233",
|
||||
"6ef4a9cfd4b98c3562fe7ef6e04eb931073166de",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/generic/subresource/__init__.py": [
|
||||
|
@ -650400,7 +650400,7 @@
|
|||
"support"
|
||||
],
|
||||
"referrer-policy/generic/unsupported-csp-referrer-directive.html": [
|
||||
"9627d16559903b5202f842f3c3355a2e7005f65c",
|
||||
"475efa55091778e747fa36030f7b422b89d6d4b9",
|
||||
"testharness"
|
||||
],
|
||||
"referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[floats-in-table-caption-001.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[line-height-204.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[mix-blend-mode-paragraph.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[background-repeat-round-roundup.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[line-break-normal-018.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[line-break-strict-018.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[text-transform-full-size-kana-001.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[trailing-ideographic-space-004.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[word-break-keep-all-006.html]
|
||||
expected: FAIL
|
|
@ -1,4 +0,0 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[The root element is the last element returned for valid queries]
|
||||
expected: FAIL
|
||||
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
[parser-sets-attributes-and-children.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
[iframe.tentative.https.sub.html]
|
||||
expected: TIMEOUT
|
||||
[Same-origin iframe]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Same-site iframe]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Cross-site iframe]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +1,10 @@
|
|||
[xslt.tentative.https.sub.html]
|
||||
expected: TIMEOUT
|
||||
[Same-Origin xslt]
|
||||
expected: FAIL
|
||||
|
||||
[Cross-site xslt]
|
||||
expected: FAIL
|
||||
|
||||
[Same-site xslt]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[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.]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[006.html]
|
||||
[Link with onclick form submit and href navigation ]
|
||||
expected: FAIL
|
||||
|
|
@ -1,11 +1,4 @@
|
|||
[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.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
[document_domain_setter_null.tentative.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Access allowed with no 'document.domain' modification. (Sanity check)]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[No access when frame sets a `null` 'document.domain'.]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[No access when parent sets a `null` 'document.domain'.]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[No access when both sides set a `null` 'document.domain'.]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -3,3 +3,30 @@
|
|||
[HTML: window.open `features`: non-integer values for feature `height`]
|
||||
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
|
||||
|
||||
|
|
|
@ -3,3 +3,30 @@
|
|||
[HTML: window.open `features`: non-integer values for legacy feature `innerheight`]
|
||||
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
|
||||
|
||||
|
|
|
@ -3,3 +3,30 @@
|
|||
[HTML: window.open `features`: non-integer values for legacy feature `innerwidth`]
|
||||
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
|
||||
|
||||
|
|
|
@ -3,3 +3,30 @@
|
|||
[HTML: window.open `features`: non-integer values for feature `left`]
|
||||
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
|
||||
|
||||
|
|
|
@ -3,3 +3,30 @@
|
|||
[HTML: window.open `features`: non-integer values for legacy feature `screenx`]
|
||||
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
|
||||
|
||||
|
|
|
@ -3,3 +3,30 @@
|
|||
[HTML: window.open `features`: non-integer values for legacy feature `screeny`]
|
||||
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
|
||||
|
||||
|
|
|
@ -3,3 +3,30 @@
|
|||
[HTML: window.open `features`: non-integer values for feature `top`]
|
||||
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
|
||||
|
||||
|
|
|
@ -3,3 +3,30 @@
|
|||
[HTML: window.open `features`: non-integer values for feature `width`]
|
||||
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
|
||||
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
[frameElement.sub.html]
|
||||
expected: TIMEOUT
|
||||
[The window's frameElement attribute must return its container element if it is a nested browsing context]
|
||||
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]
|
||||
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
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[targeting-with-embedded-null-in-target.html]
|
||||
[Targeting with embedded null in target]
|
||||
expected: FAIL
|
||||
|
|
@ -6792,9 +6792,6 @@
|
|||
[HTMLMediaElement interface: document.createElement("video") must inherit property "controls" with the proper type]
|
||||
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]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -6837,9 +6834,6 @@
|
|||
[HTMLMediaElement interface: document.createElement("audio") must inherit property "controls" with the proper type]
|
||||
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]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -6882,9 +6876,6 @@
|
|||
[HTMLMediaElement interface: new Audio() must inherit property "controls" with the proper type]
|
||||
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]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -7005,9 +6996,6 @@
|
|||
[HTMLMediaElement interface: attribute controls]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLMediaElement interface: attribute volume]
|
||||
expected: PASS
|
||||
|
||||
[HTMLMediaElement interface: attribute muted]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -10730,9 +10718,6 @@
|
|||
[ImageBitmap interface: operation close()]
|
||||
expected: FAIL
|
||||
|
||||
[MessageEvent interface: attribute source]
|
||||
expected: FAIL
|
||||
|
||||
[MessageEvent interface: attribute ports]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -3,6 +3,3 @@
|
|||
[Check that sandboxed iframe cannot perform navigation on the top\n frame when allow-top-navigation is not set]
|
||||
expected: FAIL
|
||||
|
||||
[Frames without `allow-top-navigation` should not be able to navigate the top frame.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[iframe_sandbox_popups_escaping-1.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[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]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
[non-active-document.html]
|
||||
[DOMParser]
|
||||
expected: FAIL
|
||||
|
||||
[createHTMLDocument]
|
||||
expected: FAIL
|
||||
|
||||
[<template>]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[077.html]
|
||||
[ adding several types of scripts through the DOM and removing some of them confuses scheduler ]
|
||||
expected: FAIL
|
||||
|
|
@ -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)]
|
||||
expected: FAIL
|
||||
|
||||
[document.open should throw a SecurityError with cross-origin document even when there is an active parser executing script]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -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)]
|
||||
expected: FAIL
|
||||
|
||||
[document.open should throw an InvalidStateError with XML document even when there is an active parser executing script]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[processing-instruction.html]
|
||||
expected: ERROR
|
||||
[Child css via a ProcessingInstruction.]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[external-import-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Font from imported stylesheet (external).]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[internal-import-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Font from imported stylesheet (internal).]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[processing-instruction.html]
|
||||
expected: ERROR
|
||||
[Font from external stylesheet (from ProcessingInstruction).]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[external-import-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Image from imported stylesheet (external).]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[external-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Image from external stylesheet.]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[inline-style.html]
|
||||
expected: ERROR
|
||||
[Image from inline styles.]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[internal-import-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Image from imported stylesheet (internal).]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[internal-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Image from internal stylesheet.]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[processing-instruction.html]
|
||||
expected: ERROR
|
||||
[Image from external stylesheet (from ProcessingInstruction).]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,8 +1,28 @@
|
|||
[external-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Test styling SVG from external style fill]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[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
|
||||
|
||||
|
|
|
@ -1,8 +1,28 @@
|
|||
[inline-style.html]
|
||||
expected: ERROR
|
||||
[Styling SVG from inline styles stroke]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[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
|
||||
|
||||
|
|
|
@ -1,8 +1,28 @@
|
|||
[internal-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Styling SVG from internal styles stroke]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[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
|
||||
|
||||
|
|
|
@ -1,8 +1,25 @@
|
|||
[presentation-attribute.html]
|
||||
expected: ERROR
|
||||
[Styling SVG from presentation attributes fill]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[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
|
||||
|
||||
|
|
|
@ -1,8 +1,28 @@
|
|||
[processing-instruction.html]
|
||||
expected: ERROR
|
||||
[Styling SVG from ProcessingInstruction stroke]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[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
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[multiple-headers-and-values.html]
|
||||
expected: ERROR
|
||||
[Image uses the last recognized Referrer-Policy header value]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[multiple-headers-combined.html]
|
||||
expected: ERROR
|
||||
[Image uses the last recognized Referrer-Policy header value]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[multiple-headers-one-invalid.html]
|
||||
expected: ERROR
|
||||
[Referrer policy header parsing fails if one header is invalid]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[multiple-headers-one-unknown-token.html]
|
||||
expected: ERROR
|
||||
[Image uses last recognized referrer policy token from Referrer-Policy headers]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[multiple-headers.html]
|
||||
expected: ERROR
|
||||
[Image uses the last recognized Referrer-Policy header]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Sandboxed iframe with opaque origin doesn't send referrers.]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[Sandboxed iframe with tuple origin sends referrers.]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
disabled: for now
|
|
@ -0,0 +1,5 @@
|
|||
[area-navigate.html]
|
||||
expected: TIMEOUT
|
||||
[Area is responding with HTTP headers]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[attr-referrer-invalid-value.html]
|
||||
[Invalid referrerpolicy values not reflected]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[fetch-messaging.html]
|
||||
[Fetch is responding with HTTP headers]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[iframe-messaging.html]
|
||||
[Iframe is responding with HTTP headers]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[image-decoding.html]
|
||||
[Image is encoding headers as JSON.]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[link-navigate.html]
|
||||
[Link is responding with HTTP headers]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[script-messaging.html]
|
||||
[Script is responding with HTTP headers]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[worker-messaging.html]
|
||||
[Worker is responding with HTTP headers]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[xhr-messaging.html]
|
||||
[XHR is responding with HTTP headers]
|
||||
expected: FAIL
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
[unsupported-csp-referrer-directive.html]
|
||||
type: testharness
|
||||
disabled: https://github.com/servo/servo/issues/4767
|
||||
[Image has a referrer despite CSP 'referrer' directive]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
disabled: for now
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue