mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +01: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");
|
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),
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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(),
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
|
@ -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,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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?
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -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]
|
[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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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": [
|
||||||
|
|
|
@ -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]
|
[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
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
[parser-sets-attributes-and-children.html]
|
[parser-sets-attributes-and-children.html]
|
||||||
expected: TIMEOUT
|
expected: CRASH
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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]
|
[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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
||||||
|
|
|
@ -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]
|
[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
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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)]
|
[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
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
||||||
|
|
|
@ -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]
|
[processing-instruction.html]
|
||||||
expected: ERROR
|
|
||||||
[Child css via a ProcessingInstruction.]
|
[Child css via a ProcessingInstruction.]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[external-stylesheet.html]
|
[external-stylesheet.html]
|
||||||
expected: ERROR
|
|
||||||
[Image from external stylesheet.]
|
[Image from external stylesheet.]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[inline-style.html]
|
[inline-style.html]
|
||||||
expected: ERROR
|
|
||||||
[Image from inline styles.]
|
[Image from inline styles.]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[internal-stylesheet.html]
|
[internal-stylesheet.html]
|
||||||
expected: ERROR
|
|
||||||
[Image from internal stylesheet.]
|
[Image from internal stylesheet.]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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]
|
[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
|
||||||
|
|
||||||
|
|
|
@ -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