mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Implement synchronous about:blank loading.
Based on initial work by jdm in <https://github.com/servo/servo/pull/8600>.
This commit is contained in:
parent
2677540cd0
commit
b86965f394
34 changed files with 456 additions and 906 deletions
|
@ -42,7 +42,7 @@ use rand::{Rng, SeedableRng, StdRng, random};
|
||||||
use script_traits::{AnimationState, AnimationTickType, CompositorEvent};
|
use script_traits::{AnimationState, AnimationTickType, CompositorEvent};
|
||||||
use script_traits::{ConstellationControlMsg, ConstellationMsg as FromCompositorMsg};
|
use script_traits::{ConstellationControlMsg, ConstellationMsg as FromCompositorMsg};
|
||||||
use script_traits::{DocumentState, LayoutControlMsg, LoadData};
|
use script_traits::{DocumentState, LayoutControlMsg, LoadData};
|
||||||
use script_traits::{IFrameLoadInfo, IFrameSandboxState, TimerEventRequest};
|
use script_traits::{IFrameLoadInfo, IFrameLoadInfoWithData, IFrameSandboxState, TimerEventRequest};
|
||||||
use script_traits::{LayoutMsg as FromLayoutMsg, ScriptMsg as FromScriptMsg, ScriptThreadFactory};
|
use script_traits::{LayoutMsg as FromLayoutMsg, ScriptMsg as FromScriptMsg, ScriptThreadFactory};
|
||||||
use script_traits::{LogEntry, ServiceWorkerMsg, webdriver_msg};
|
use script_traits::{LogEntry, ServiceWorkerMsg, webdriver_msg};
|
||||||
use script_traits::{MozBrowserErrorType, MozBrowserEvent, WebDriverCommandMsg, WindowSizeData};
|
use script_traits::{MozBrowserErrorType, MozBrowserEvent, WebDriverCommandMsg, WindowSizeData};
|
||||||
|
@ -914,11 +914,17 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
||||||
}
|
}
|
||||||
FromScriptMsg::ScriptLoadedURLInIFrame(load_info) => {
|
FromScriptMsg::ScriptLoadedURLInIFrame(load_info) => {
|
||||||
debug!("constellation got iframe URL load message {:?} {:?} {:?}",
|
debug!("constellation got iframe URL load message {:?} {:?} {:?}",
|
||||||
load_info.parent_pipeline_id,
|
load_info.info.parent_pipeline_id,
|
||||||
load_info.old_pipeline_id,
|
load_info.old_pipeline_id,
|
||||||
load_info.new_pipeline_id);
|
load_info.info.new_pipeline_id);
|
||||||
self.handle_script_loaded_url_in_iframe_msg(load_info);
|
self.handle_script_loaded_url_in_iframe_msg(load_info);
|
||||||
}
|
}
|
||||||
|
FromScriptMsg::ScriptLoadedAboutBlankInIFrame(load_info, lc) => {
|
||||||
|
debug!("constellation got loaded `about:blank` in iframe message {:?} {:?}",
|
||||||
|
load_info.parent_pipeline_id,
|
||||||
|
load_info.new_pipeline_id);
|
||||||
|
self.handle_script_loaded_about_blank_in_iframe_msg(load_info, lc);
|
||||||
|
}
|
||||||
FromScriptMsg::ChangeRunningAnimationsState(pipeline_id, animation_state) => {
|
FromScriptMsg::ChangeRunningAnimationsState(pipeline_id, animation_state) => {
|
||||||
self.handle_change_running_animations_state(pipeline_id, animation_state)
|
self.handle_change_running_animations_state(pipeline_id, animation_state)
|
||||||
}
|
}
|
||||||
|
@ -1363,14 +1369,14 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
||||||
// will result in a new pipeline being spawned and a frame tree being added to
|
// will result in a new pipeline being spawned and a frame tree being added to
|
||||||
// parent_pipeline_id's frame tree's children. This message is never the result of a
|
// parent_pipeline_id's frame tree's children. This message is never the result of a
|
||||||
// page navigation.
|
// page navigation.
|
||||||
fn handle_script_loaded_url_in_iframe_msg(&mut self, load_info: IFrameLoadInfo) {
|
fn handle_script_loaded_url_in_iframe_msg(&mut self, load_info: IFrameLoadInfoWithData) {
|
||||||
let (load_data, window_size, is_private) = {
|
let (load_data, window_size, is_private) = {
|
||||||
let old_pipeline = load_info.old_pipeline_id
|
let old_pipeline = load_info.old_pipeline_id
|
||||||
.and_then(|old_pipeline_id| self.pipelines.get(&old_pipeline_id));
|
.and_then(|old_pipeline_id| self.pipelines.get(&old_pipeline_id));
|
||||||
|
|
||||||
let source_pipeline = match self.pipelines.get(&load_info.parent_pipeline_id) {
|
let source_pipeline = match self.pipelines.get(&load_info.info.parent_pipeline_id) {
|
||||||
Some(source_pipeline) => source_pipeline,
|
Some(source_pipeline) => source_pipeline,
|
||||||
None => return warn!("Script loaded url in closed iframe {}.", load_info.parent_pipeline_id),
|
None => return warn!("Script loaded url in closed iframe {}.", load_info.info.parent_pipeline_id),
|
||||||
};
|
};
|
||||||
|
|
||||||
// If no url is specified, reload.
|
// If no url is specified, reload.
|
||||||
|
@ -1384,7 +1390,7 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
||||||
LoadData::new(url, None, None)
|
LoadData::new(url, None, None)
|
||||||
});
|
});
|
||||||
|
|
||||||
let is_private = load_info.is_private || source_pipeline.is_private;
|
let is_private = load_info.info.is_private || source_pipeline.is_private;
|
||||||
|
|
||||||
let window_size = old_pipeline.and_then(|old_pipeline| old_pipeline.size);
|
let window_size = old_pipeline.and_then(|old_pipeline| old_pipeline.size);
|
||||||
|
|
||||||
|
@ -1396,20 +1402,65 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
||||||
};
|
};
|
||||||
|
|
||||||
// Create the new pipeline, attached to the parent and push to pending frames
|
// Create the new pipeline, attached to the parent and push to pending frames
|
||||||
self.new_pipeline(load_info.new_pipeline_id,
|
self.new_pipeline(load_info.info.new_pipeline_id,
|
||||||
load_info.frame_id,
|
load_info.info.frame_id,
|
||||||
Some((load_info.parent_pipeline_id, load_info.frame_type)),
|
Some((load_info.info.parent_pipeline_id, load_info.info.frame_type)),
|
||||||
window_size,
|
window_size,
|
||||||
load_data,
|
load_data,
|
||||||
load_info.sandbox,
|
load_info.sandbox,
|
||||||
is_private);
|
is_private);
|
||||||
|
|
||||||
self.pending_frames.push(FrameChange {
|
self.pending_frames.push(FrameChange {
|
||||||
frame_id: load_info.frame_id,
|
frame_id: load_info.info.frame_id,
|
||||||
old_pipeline_id: load_info.old_pipeline_id,
|
old_pipeline_id: load_info.old_pipeline_id,
|
||||||
new_pipeline_id: load_info.new_pipeline_id,
|
new_pipeline_id: load_info.info.new_pipeline_id,
|
||||||
document_ready: false,
|
document_ready: false,
|
||||||
replace: load_info.replace,
|
replace: load_info.info.replace,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
fn handle_script_loaded_about_blank_in_iframe_msg(&mut self,
|
||||||
|
load_info: IFrameLoadInfo,
|
||||||
|
layout_sender: IpcSender<LayoutControlMsg>) {
|
||||||
|
let IFrameLoadInfo {
|
||||||
|
parent_pipeline_id,
|
||||||
|
new_pipeline_id,
|
||||||
|
frame_type,
|
||||||
|
replace,
|
||||||
|
frame_id,
|
||||||
|
is_private,
|
||||||
|
} = load_info;
|
||||||
|
|
||||||
|
let pipeline = {
|
||||||
|
let parent_pipeline = match self.pipelines.get(&parent_pipeline_id) {
|
||||||
|
Some(parent_pipeline) => parent_pipeline,
|
||||||
|
None => return warn!("Script loaded url in closed iframe {}.", parent_pipeline_id),
|
||||||
|
};
|
||||||
|
|
||||||
|
let script_sender = parent_pipeline.script_chan.clone();
|
||||||
|
|
||||||
|
let url = ServoUrl::parse("about:blank").expect("infallible");
|
||||||
|
Pipeline::new(new_pipeline_id,
|
||||||
|
frame_id,
|
||||||
|
Some((parent_pipeline_id, frame_type)),
|
||||||
|
script_sender,
|
||||||
|
layout_sender,
|
||||||
|
self.compositor_proxy.clone_compositor_proxy(),
|
||||||
|
is_private || parent_pipeline.is_private,
|
||||||
|
url,
|
||||||
|
None,
|
||||||
|
parent_pipeline.visible)
|
||||||
|
};
|
||||||
|
|
||||||
|
assert!(!self.pipelines.contains_key(&new_pipeline_id));
|
||||||
|
self.pipelines.insert(new_pipeline_id, pipeline);
|
||||||
|
|
||||||
|
self.pending_frames.push(FrameChange {
|
||||||
|
frame_id: frame_id,
|
||||||
|
old_pipeline_id: None,
|
||||||
|
new_pipeline_id: new_pipeline_id,
|
||||||
|
document_ready: false,
|
||||||
|
replace: replace,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -256,7 +256,9 @@ impl Pipeline {
|
||||||
Ok((pipeline, child_process))
|
Ok((pipeline, child_process))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn new(id: PipelineId,
|
/// Creates a new `Pipeline`, after the script and layout threads have been
|
||||||
|
/// spawned.
|
||||||
|
pub fn new(id: PipelineId,
|
||||||
frame_id: FrameId,
|
frame_id: FrameId,
|
||||||
parent_info: Option<(PipelineId, FrameType)>,
|
parent_info: Option<(PipelineId, FrameType)>,
|
||||||
script_chan: Rc<ScriptChan>,
|
script_chan: Rc<ScriptChan>,
|
||||||
|
|
|
@ -20,6 +20,7 @@ use dom::bindings::conversions::ToJSValConvertible;
|
||||||
use dom::bindings::error::{Error, ErrorResult, Fallible};
|
use dom::bindings::error::{Error, ErrorResult, Fallible};
|
||||||
use dom::bindings::inheritance::Castable;
|
use dom::bindings::inheritance::Castable;
|
||||||
use dom::bindings::js::{JS, LayoutJS, MutNullableHeap, Root};
|
use dom::bindings::js::{JS, LayoutJS, MutNullableHeap, Root};
|
||||||
|
use dom::bindings::refcounted::Trusted;
|
||||||
use dom::bindings::reflector::Reflectable;
|
use dom::bindings::reflector::Reflectable;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::browsingcontext::BrowsingContext;
|
use dom::browsingcontext::BrowsingContext;
|
||||||
|
@ -42,14 +43,16 @@ use js::jsval::{NullValue, UndefinedValue};
|
||||||
use msg::constellation_msg::{FrameType, FrameId, PipelineId, TraversalDirection};
|
use msg::constellation_msg::{FrameType, FrameId, PipelineId, TraversalDirection};
|
||||||
use net_traits::response::HttpsState;
|
use net_traits::response::HttpsState;
|
||||||
use script_layout_interface::message::ReflowQueryType;
|
use script_layout_interface::message::ReflowQueryType;
|
||||||
use script_thread::ScriptThread;
|
use script_thread::{ScriptThread, Runnable};
|
||||||
use script_traits::{IFrameLoadInfo, LoadData, MozBrowserEvent, ScriptMsg as ConstellationMsg};
|
use script_traits::{IFrameLoadInfo, IFrameLoadInfoWithData, LoadData};
|
||||||
|
use script_traits::{MozBrowserEvent, NewLayoutInfo, ScriptMsg as ConstellationMsg};
|
||||||
use script_traits::IFrameSandboxState::{IFrameSandboxed, IFrameUnsandboxed};
|
use script_traits::IFrameSandboxState::{IFrameSandboxed, IFrameUnsandboxed};
|
||||||
use servo_atoms::Atom;
|
use servo_atoms::Atom;
|
||||||
use servo_url::ServoUrl;
|
use servo_url::ServoUrl;
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
use style::attr::{AttrValue, LengthOrPercentageOrAuto};
|
use style::attr::{AttrValue, LengthOrPercentageOrAuto};
|
||||||
use style::context::ReflowGoal;
|
use style::context::ReflowGoal;
|
||||||
|
use task_source::TaskSource;
|
||||||
use util::prefs::PREFS;
|
use util::prefs::PREFS;
|
||||||
use util::servo_version;
|
use util::servo_version;
|
||||||
|
|
||||||
|
@ -66,6 +69,12 @@ bitflags! {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(PartialEq)]
|
||||||
|
enum ProcessingMode {
|
||||||
|
FirstTime,
|
||||||
|
NotFirstTime,
|
||||||
|
}
|
||||||
|
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
pub struct HTMLIFrameElement {
|
pub struct HTMLIFrameElement {
|
||||||
htmlelement: HTMLElement,
|
htmlelement: HTMLElement,
|
||||||
|
@ -131,20 +140,46 @@ impl HTMLIFrameElement {
|
||||||
|
|
||||||
let global_scope = window.upcast::<GlobalScope>();
|
let global_scope = window.upcast::<GlobalScope>();
|
||||||
let load_info = IFrameLoadInfo {
|
let load_info = IFrameLoadInfo {
|
||||||
load_data: load_data,
|
|
||||||
parent_pipeline_id: global_scope.pipeline_id(),
|
parent_pipeline_id: global_scope.pipeline_id(),
|
||||||
frame_id: self.frame_id,
|
frame_id: self.frame_id,
|
||||||
old_pipeline_id: old_pipeline_id,
|
|
||||||
new_pipeline_id: new_pipeline_id,
|
new_pipeline_id: new_pipeline_id,
|
||||||
sandbox: sandboxed,
|
|
||||||
is_private: private_iframe,
|
is_private: private_iframe,
|
||||||
frame_type: frame_type,
|
frame_type: frame_type,
|
||||||
replace: replace,
|
replace: replace,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if load_data.as_ref().map_or(false, |d| d.url.as_str() == "about:blank") {
|
||||||
|
let (pipeline_sender, pipeline_receiver) = ipc::channel().unwrap();
|
||||||
|
|
||||||
|
global_scope
|
||||||
|
.constellation_chan()
|
||||||
|
.send(ConstellationMsg::ScriptLoadedAboutBlankInIFrame(load_info, pipeline_sender))
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
let new_layout_info = NewLayoutInfo {
|
||||||
|
parent_info: Some((global_scope.pipeline_id(), frame_type)),
|
||||||
|
new_pipeline_id: new_pipeline_id,
|
||||||
|
frame_id: self.frame_id,
|
||||||
|
load_data: load_data.unwrap(),
|
||||||
|
pipeline_port: pipeline_receiver,
|
||||||
|
content_process_shutdown_chan: None,
|
||||||
|
window_size: None,
|
||||||
|
layout_threads: PREFS.get("layout.threads").as_u64().expect("count") as usize,
|
||||||
|
};
|
||||||
|
|
||||||
|
ScriptThread::process_attach_layout(new_layout_info);
|
||||||
|
} else {
|
||||||
|
let load_info = IFrameLoadInfoWithData {
|
||||||
|
info: load_info,
|
||||||
|
load_data: load_data,
|
||||||
|
old_pipeline_id: old_pipeline_id,
|
||||||
|
sandbox: sandboxed,
|
||||||
|
};
|
||||||
global_scope
|
global_scope
|
||||||
.constellation_chan()
|
.constellation_chan()
|
||||||
.send(ConstellationMsg::ScriptLoadedURLInIFrame(load_info))
|
.send(ConstellationMsg::ScriptLoadedURLInIFrame(load_info))
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
if PREFS.is_mozbrowser_enabled() {
|
if PREFS.is_mozbrowser_enabled() {
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowserloadstart
|
// https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowserloadstart
|
||||||
|
@ -152,9 +187,23 @@ impl HTMLIFrameElement {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn process_the_iframe_attributes(&self) {
|
/// https://html.spec.whatwg.org/multipage/#process-the-iframe-attributes
|
||||||
|
fn process_the_iframe_attributes(&self, mode: ProcessingMode) {
|
||||||
|
// TODO: srcdoc
|
||||||
|
|
||||||
|
// https://github.com/whatwg/html/issues/490
|
||||||
|
if mode == ProcessingMode::FirstTime && !self.upcast::<Element>().has_attribute(&local_name!("src")) {
|
||||||
|
let window = window_from_node(self);
|
||||||
|
let event_loop = window.dom_manipulation_task_source();
|
||||||
|
let _ = event_loop.queue(box IframeLoadEventSteps::new(self),
|
||||||
|
window.upcast());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let url = self.get_url();
|
let url = self.get_url();
|
||||||
|
|
||||||
|
// TODO: check ancestor browsing contexts for same URL
|
||||||
|
|
||||||
let document = document_from_node(self);
|
let document = document_from_node(self);
|
||||||
self.navigate_or_reload_child_browsing_context(
|
self.navigate_or_reload_child_browsing_context(
|
||||||
Some(LoadData::new(url, document.get_referrer_policy(), Some(document.url()))), false);
|
Some(LoadData::new(url, document.get_referrer_policy(), Some(document.url()))), false);
|
||||||
|
@ -171,6 +220,16 @@ impl HTMLIFrameElement {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn create_nested_browsing_context(&self) {
|
||||||
|
// Synchronously create a new context and navigate it to about:blank.
|
||||||
|
let url = ServoUrl::parse("about:blank").unwrap();
|
||||||
|
let document = document_from_node(self);
|
||||||
|
let load_data = LoadData::new(url,
|
||||||
|
document.get_referrer_policy(),
|
||||||
|
Some(document.url().clone()));
|
||||||
|
self.navigate_or_reload_child_browsing_context(Some(load_data), false);
|
||||||
|
}
|
||||||
|
|
||||||
pub fn update_pipeline_id(&self, new_pipeline_id: PipelineId) {
|
pub fn update_pipeline_id(&self, new_pipeline_id: PipelineId) {
|
||||||
self.pipeline_id.set(Some(new_pipeline_id));
|
self.pipeline_id.set(Some(new_pipeline_id));
|
||||||
|
|
||||||
|
@ -272,7 +331,11 @@ impl HTMLIFrameElement {
|
||||||
self.pipeline_id.get()
|
self.pipeline_id.get()
|
||||||
.and_then(|pipeline_id| ScriptThread::find_document(pipeline_id))
|
.and_then(|pipeline_id| ScriptThread::find_document(pipeline_id))
|
||||||
.and_then(|document| {
|
.and_then(|document| {
|
||||||
if self.global().get_url().origin() == document.global().get_url().origin() {
|
// FIXME(#10964): this should use the Document's origin and the
|
||||||
|
// origin of the incumbent settings object.
|
||||||
|
let contained_url = document.global().get_url();
|
||||||
|
if self.global().get_url().origin() == contained_url.origin() ||
|
||||||
|
contained_url.as_str() == "about:blank" {
|
||||||
Some(Root::from_ref(document.window()))
|
Some(Root::from_ref(document.window()))
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
@ -458,18 +521,7 @@ impl HTMLIFrameElementMethods for HTMLIFrameElement {
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#dom-iframe-contentdocument
|
// https://html.spec.whatwg.org/multipage/#dom-iframe-contentdocument
|
||||||
fn GetContentDocument(&self) -> Option<Root<Document>> {
|
fn GetContentDocument(&self) -> Option<Root<Document>> {
|
||||||
self.get_content_window().and_then(|window| {
|
self.get_content_window().map(|window| window.Document())
|
||||||
// FIXME(#10964): this should use the Document's origin and the
|
|
||||||
// origin of the incumbent settings object.
|
|
||||||
let self_url = self.get_url();
|
|
||||||
let win_url = window_from_node(self).get_url();
|
|
||||||
|
|
||||||
if UrlHelper::SameOrigin(&self_url, &win_url) {
|
|
||||||
Some(window.Document())
|
|
||||||
} else {
|
|
||||||
None
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Experimental mozbrowser implementation is based on the webidl
|
// Experimental mozbrowser implementation is based on the webidl
|
||||||
|
@ -601,7 +653,6 @@ impl VirtualMethods for HTMLIFrameElement {
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
&local_name!("src") => {
|
&local_name!("src") => {
|
||||||
if let AttributeMutation::Set(_) = mutation {
|
|
||||||
// https://html.spec.whatwg.org/multipage/#the-iframe-element
|
// https://html.spec.whatwg.org/multipage/#the-iframe-element
|
||||||
// "Similarly, whenever an iframe element with a non-null nested browsing context
|
// "Similarly, whenever an iframe element with a non-null nested browsing context
|
||||||
// but with no srcdoc attribute specified has its src attribute set, changed, or removed,
|
// but with no srcdoc attribute specified has its src attribute set, changed, or removed,
|
||||||
|
@ -612,8 +663,7 @@ impl VirtualMethods for HTMLIFrameElement {
|
||||||
// the child browsing context to be created.
|
// the child browsing context to be created.
|
||||||
if self.upcast::<Node>().is_in_doc_with_browsing_context() {
|
if self.upcast::<Node>().is_in_doc_with_browsing_context() {
|
||||||
debug!("iframe {} src set while in browsing context.", self.frame_id);
|
debug!("iframe {} src set while in browsing context.", self.frame_id);
|
||||||
self.process_the_iframe_attributes();
|
self.process_the_iframe_attributes(ProcessingMode::NotFirstTime);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_ => {},
|
_ => {},
|
||||||
|
@ -642,7 +692,8 @@ impl VirtualMethods for HTMLIFrameElement {
|
||||||
// iframe attributes for the "first time"."
|
// iframe attributes for the "first time"."
|
||||||
if self.upcast::<Node>().is_in_doc_with_browsing_context() {
|
if self.upcast::<Node>().is_in_doc_with_browsing_context() {
|
||||||
debug!("iframe {} bound to browsing context.", self.frame_id);
|
debug!("iframe {} bound to browsing context.", self.frame_id);
|
||||||
self.process_the_iframe_attributes();
|
self.create_nested_browsing_context();
|
||||||
|
self.process_the_iframe_attributes(ProcessingMode::FirstTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -667,7 +718,7 @@ impl VirtualMethods for HTMLIFrameElement {
|
||||||
// HTMLIFrameElement::contentDocument.
|
// HTMLIFrameElement::contentDocument.
|
||||||
let self_url = self.get_url();
|
let self_url = self.get_url();
|
||||||
let win_url = window_from_node(self).get_url();
|
let win_url = window_from_node(self).get_url();
|
||||||
UrlHelper::SameOrigin(&self_url, &win_url)
|
UrlHelper::SameOrigin(&self_url, &win_url) || self_url.as_str() == "about:blank"
|
||||||
};
|
};
|
||||||
let (sender, receiver) = if same_origin {
|
let (sender, receiver) = if same_origin {
|
||||||
(None, None)
|
(None, None)
|
||||||
|
@ -690,3 +741,24 @@ impl VirtualMethods for HTMLIFrameElement {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct IframeLoadEventSteps {
|
||||||
|
frame_element: Trusted<HTMLIFrameElement>,
|
||||||
|
pipeline_id: PipelineId,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl IframeLoadEventSteps {
|
||||||
|
fn new(frame_element: &HTMLIFrameElement) -> IframeLoadEventSteps {
|
||||||
|
IframeLoadEventSteps {
|
||||||
|
frame_element: Trusted::new(frame_element),
|
||||||
|
pipeline_id: frame_element.pipeline_id().unwrap(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Runnable for IframeLoadEventSteps {
|
||||||
|
fn handler(self: Box<IframeLoadEventSteps>) {
|
||||||
|
let this = self.frame_element.root();
|
||||||
|
this.iframe_load_event_steps(self.pipeline_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -71,7 +71,8 @@ use js::rust::Runtime;
|
||||||
use layout_wrapper::ServoLayoutNode;
|
use layout_wrapper::ServoLayoutNode;
|
||||||
use mem::heap_size_of_self_and_children;
|
use mem::heap_size_of_self_and_children;
|
||||||
use msg::constellation_msg::{FrameId, FrameType, PipelineId, PipelineNamespace};
|
use msg::constellation_msg::{FrameId, FrameType, PipelineId, PipelineNamespace};
|
||||||
use net_traits::{CoreResourceMsg, IpcSend, Metadata, ReferrerPolicy, ResourceThreads};
|
use net_traits::{CoreResourceMsg, FetchMetadata, FetchResponseListener};
|
||||||
|
use net_traits::{IpcSend, Metadata, ReferrerPolicy, ResourceThreads};
|
||||||
use net_traits::image_cache_thread::{ImageCacheChan, ImageCacheResult, ImageCacheThread};
|
use net_traits::image_cache_thread::{ImageCacheChan, ImageCacheResult, ImageCacheThread};
|
||||||
use net_traits::request::{CredentialsMode, Destination, RequestInit};
|
use net_traits::request::{CredentialsMode, Destination, RequestInit};
|
||||||
use net_traits::storage_thread::StorageType;
|
use net_traits::storage_thread::StorageType;
|
||||||
|
@ -605,6 +606,17 @@ impl ScriptThread {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn process_attach_layout(new_layout_info: NewLayoutInfo) {
|
||||||
|
SCRIPT_THREAD_ROOT.with(|root| {
|
||||||
|
if let Some(script_thread) = root.get() {
|
||||||
|
let script_thread = unsafe { &*script_thread };
|
||||||
|
script_thread.profile_event(ScriptThreadEventCategory::AttachLayout, || {
|
||||||
|
script_thread.handle_new_layout(new_layout_info);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
pub fn find_document(id: PipelineId) -> Option<Root<Document>> {
|
pub fn find_document(id: PipelineId) -> Option<Root<Document>> {
|
||||||
SCRIPT_THREAD_ROOT.with(|root| root.get().and_then(|script_thread| {
|
SCRIPT_THREAD_ROOT.with(|root| root.get().and_then(|script_thread| {
|
||||||
let script_thread = unsafe { &*script_thread };
|
let script_thread = unsafe { &*script_thread };
|
||||||
|
@ -1219,8 +1231,12 @@ impl ScriptThread {
|
||||||
let new_load = InProgressLoad::new(new_pipeline_id, frame_id, parent_info,
|
let new_load = InProgressLoad::new(new_pipeline_id, frame_id, parent_info,
|
||||||
layout_chan, window_size,
|
layout_chan, window_size,
|
||||||
load_data.url.clone());
|
load_data.url.clone());
|
||||||
|
if load_data.url.as_str() == "about:blank" {
|
||||||
|
self.start_page_load_about_blank(new_load);
|
||||||
|
} else {
|
||||||
self.start_page_load(new_load, load_data);
|
self.start_page_load(new_load, load_data);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn handle_loads_complete(&self, pipeline: PipelineId) {
|
fn handle_loads_complete(&self, pipeline: PipelineId) {
|
||||||
let doc = match self.documents.borrow().find_document(pipeline) {
|
let doc = match self.documents.borrow().find_document(pipeline) {
|
||||||
|
@ -1645,7 +1661,8 @@ impl ScriptThread {
|
||||||
|
|
||||||
/// Notify the containing document of a child frame that has completed loading.
|
/// Notify the containing document of a child frame that has completed loading.
|
||||||
fn handle_frame_load_event(&self, parent_id: PipelineId, frame_id: FrameId, child_id: PipelineId) {
|
fn handle_frame_load_event(&self, parent_id: PipelineId, frame_id: FrameId, child_id: PipelineId) {
|
||||||
match self.documents.borrow().find_iframe(parent_id, frame_id) {
|
let iframe = self.documents.borrow().find_iframe(parent_id, frame_id);
|
||||||
|
match iframe {
|
||||||
Some(iframe) => iframe.iframe_load_event_steps(child_id),
|
Some(iframe) => iframe.iframe_load_event_steps(child_id),
|
||||||
None => warn!("Message sent to closed pipeline {}.", parent_id),
|
None => warn!("Message sent to closed pipeline {}.", parent_id),
|
||||||
}
|
}
|
||||||
|
@ -2018,7 +2035,8 @@ impl ScriptThread {
|
||||||
replace: bool) {
|
replace: bool) {
|
||||||
match frame_id {
|
match frame_id {
|
||||||
Some(frame_id) => {
|
Some(frame_id) => {
|
||||||
if let Some(iframe) = self.documents.borrow().find_iframe(parent_pipeline_id, frame_id) {
|
let iframe = self.documents.borrow().find_iframe(parent_pipeline_id, frame_id);
|
||||||
|
if let Some(iframe) = iframe {
|
||||||
iframe.navigate_or_reload_child_browsing_context(Some(load_data), replace);
|
iframe.navigate_or_reload_child_browsing_context(Some(load_data), replace);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2096,6 +2114,23 @@ impl ScriptThread {
|
||||||
self.incomplete_loads.borrow_mut().push(incomplete);
|
self.incomplete_loads.borrow_mut().push(incomplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Synchronously fetch `about:blank`. Stores the `InProgressLoad`
|
||||||
|
/// argument until a notification is received that the fetch is complete.
|
||||||
|
fn start_page_load_about_blank(&self, incomplete: InProgressLoad) {
|
||||||
|
let id = incomplete.pipeline_id;
|
||||||
|
|
||||||
|
self.incomplete_loads.borrow_mut().push(incomplete);
|
||||||
|
|
||||||
|
let url = ServoUrl::parse("about:blank").unwrap();
|
||||||
|
let mut context = ParserContext::new(id, url.clone());
|
||||||
|
|
||||||
|
let mut meta = Metadata::default(url);
|
||||||
|
meta.set_content_type(Some(&mime!(Text / Html)));
|
||||||
|
context.process_response(Ok(FetchMetadata::Unfiltered(meta)));
|
||||||
|
context.process_response_chunk(vec![]);
|
||||||
|
context.process_response_eof(Ok(()));
|
||||||
|
}
|
||||||
|
|
||||||
fn handle_parsing_complete(&self, id: PipelineId) {
|
fn handle_parsing_complete(&self, id: PipelineId) {
|
||||||
let document = match self.documents.borrow().find_document(id) {
|
let document = match self.documents.borrow().find_document(id) {
|
||||||
Some(document) => document,
|
Some(document) => document,
|
||||||
|
|
|
@ -492,21 +492,15 @@ pub enum IFrameSandboxState {
|
||||||
IFrameUnsandboxed
|
IFrameUnsandboxed
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Specifies the information required to load a URL in an iframe.
|
/// Specifies the information required to load an iframe.
|
||||||
#[derive(Deserialize, Serialize)]
|
#[derive(Deserialize, Serialize)]
|
||||||
pub struct IFrameLoadInfo {
|
pub struct IFrameLoadInfo {
|
||||||
/// Load data containing the url to load
|
|
||||||
pub load_data: Option<LoadData>,
|
|
||||||
/// Pipeline ID of the parent of this iframe
|
/// Pipeline ID of the parent of this iframe
|
||||||
pub parent_pipeline_id: PipelineId,
|
pub parent_pipeline_id: PipelineId,
|
||||||
/// The ID for this iframe.
|
/// The ID for this iframe.
|
||||||
pub frame_id: FrameId,
|
pub frame_id: FrameId,
|
||||||
/// The old pipeline ID for this iframe, if a page was previously loaded.
|
|
||||||
pub old_pipeline_id: Option<PipelineId>,
|
|
||||||
/// The new pipeline ID that the iframe has generated.
|
/// The new pipeline ID that the iframe has generated.
|
||||||
pub new_pipeline_id: PipelineId,
|
pub new_pipeline_id: PipelineId,
|
||||||
/// Sandbox type of this iframe
|
|
||||||
pub sandbox: IFrameSandboxState,
|
|
||||||
/// Whether this iframe should be considered private
|
/// Whether this iframe should be considered private
|
||||||
pub is_private: bool,
|
pub is_private: bool,
|
||||||
/// Whether this iframe is a mozbrowser iframe
|
/// Whether this iframe is a mozbrowser iframe
|
||||||
|
@ -516,6 +510,19 @@ pub struct IFrameLoadInfo {
|
||||||
pub replace: bool,
|
pub replace: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Specifies the information required to load a URL in an iframe.
|
||||||
|
#[derive(Deserialize, Serialize)]
|
||||||
|
pub struct IFrameLoadInfoWithData {
|
||||||
|
/// The information required to load an iframe.
|
||||||
|
pub info: IFrameLoadInfo,
|
||||||
|
/// Load data containing the url to load
|
||||||
|
pub load_data: Option<LoadData>,
|
||||||
|
/// The old pipeline ID for this iframe, if a page was previously loaded.
|
||||||
|
pub old_pipeline_id: Option<PipelineId>,
|
||||||
|
/// Sandbox type of this iframe
|
||||||
|
pub sandbox: IFrameSandboxState,
|
||||||
|
}
|
||||||
|
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/API/Using_the_Browser_API#Events
|
// https://developer.mozilla.org/en-US/docs/Web/API/Using_the_Browser_API#Events
|
||||||
/// The events fired in a Browser API context (`<iframe mozbrowser>`)
|
/// The events fired in a Browser API context (`<iframe mozbrowser>`)
|
||||||
#[derive(Deserialize, Serialize)]
|
#[derive(Deserialize, Serialize)]
|
||||||
|
|
|
@ -6,6 +6,8 @@ use AnimationState;
|
||||||
use CompositorEvent;
|
use CompositorEvent;
|
||||||
use DocumentState;
|
use DocumentState;
|
||||||
use IFrameLoadInfo;
|
use IFrameLoadInfo;
|
||||||
|
use IFrameLoadInfoWithData;
|
||||||
|
use LayoutControlMsg;
|
||||||
use LoadData;
|
use LoadData;
|
||||||
use MozBrowserEvent;
|
use MozBrowserEvent;
|
||||||
use WorkerGlobalScopeInit;
|
use WorkerGlobalScopeInit;
|
||||||
|
@ -105,7 +107,9 @@ pub enum ScriptMsg {
|
||||||
/// Notifies constellation that an iframe's visibility has been changed.
|
/// Notifies constellation that an iframe's visibility has been changed.
|
||||||
VisibilityChangeComplete(PipelineId, bool),
|
VisibilityChangeComplete(PipelineId, bool),
|
||||||
/// A load has been requested in an IFrame.
|
/// A load has been requested in an IFrame.
|
||||||
ScriptLoadedURLInIFrame(IFrameLoadInfo),
|
ScriptLoadedURLInIFrame(IFrameLoadInfoWithData),
|
||||||
|
/// A load of `about:blank` has been completed in an IFrame.
|
||||||
|
ScriptLoadedAboutBlankInIFrame(IFrameLoadInfo, IpcSender<LayoutControlMsg>),
|
||||||
/// Requests that the constellation set the contents of the clipboard
|
/// Requests that the constellation set the contents of the clipboard
|
||||||
SetClipboardContents(String),
|
SetClipboardContents(String),
|
||||||
/// Mark a new document as active
|
/// Mark a new document as active
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
[cssimportrule.xht]
|
[cssimportrule.xht]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
[Basic sanity-checking]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Only whitelisted properties are accessible cross-origin]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -12,27 +12,15 @@
|
||||||
[Object.getOwnPropertyDescriptor(exception, "code")]
|
[Object.getOwnPropertyDescriptor(exception, "code")]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[In iframe: Object.getPrototypeOf(exception) === DOMException.prototype]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In iframe: exception.hasOwnProperty("name")]
|
[In iframe: exception.hasOwnProperty("name")]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[In iframe: exception.name === "HierarchyRequestError"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In iframe: Object.getOwnPropertyDescriptor(exception, "name")]
|
[In iframe: Object.getOwnPropertyDescriptor(exception, "name")]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[In iframe: Object.getOwnPropertyDescriptor(exception, "message")]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In iframe: Object.prototype.toString.call(exception) === "[object DOMException\]"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In iframe: exception.code === DOMException.HIERARCHY_REQUEST_ERR]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In iframe: Object.getOwnPropertyDescriptor(exception, "code")]
|
[In iframe: Object.getOwnPropertyDescriptor(exception, "code")]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[In iframe: typeof exception.message === "string"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[Comment-constructor.html]
|
|
||||||
type: testharness
|
|
||||||
[new Comment() should get the correct ownerDocument across globals]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[Text-constructor.html]
|
|
||||||
type: testharness
|
|
||||||
[new Text() should get the correct ownerDocument across globals]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
[navigate-child-function-parent.html]
|
[navigate-child-function-parent.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: ERROR
|
[Set location from a parent]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
[navigate-child-src-about-blank.html]
|
[navigate-child-src-about-blank.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: ERROR
|
[Set the src attribute to about:blank and check referrer]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
[cross-origin-objects.html]
|
[cross-origin-objects.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: ERROR
|
disabled: https://github.com/servo/servo/issues/10964
|
||||||
|
|
|
@ -1,14 +1,8 @@
|
||||||
[browsing-context-first-created.xhtml]
|
[browsing-context-first-created.xhtml]
|
||||||
type: testharness
|
type: testharness
|
||||||
[Check the history.length of the first created browsing context]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Check the document's meta data]
|
[Check the document's meta data]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Check the document's status]
|
[Check the document's status]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Check the document's content]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
[window-top-001.html]
|
|
||||||
type: testharness
|
|
||||||
[One nested iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Two nested iframes]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -69,27 +69,9 @@
|
||||||
[Document interface: attribute onsort]
|
[Document interface: attribute onsort]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Stringification of iframe.contentDocument]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "implementation" with the proper type (0)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "URL" with the proper type (1)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "documentURI" with the proper type (2)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "origin" with the proper type (3)]
|
[Document interface: iframe.contentDocument must inherit property "origin" with the proper type (3)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "compatMode" with the proper type (4)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "characterSet" with the proper type (5)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "inputEncoding" with the proper type (6)]
|
[Document interface: iframe.contentDocument must inherit property "inputEncoding" with the proper type (6)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -105,99 +87,54 @@
|
||||||
[Document interface: iframe.contentDocument must inherit property "getElementsByTagName" with the proper type (10)]
|
[Document interface: iframe.contentDocument must inherit property "getElementsByTagName" with the proper type (10)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling getElementsByTagName(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "getElementsByTagNameNS" with the proper type (11)]
|
[Document interface: iframe.contentDocument must inherit property "getElementsByTagNameNS" with the proper type (11)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling getElementsByTagNameNS(DOMString,DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "getElementsByClassName" with the proper type (12)]
|
[Document interface: iframe.contentDocument must inherit property "getElementsByClassName" with the proper type (12)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling getElementsByClassName(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createElement" with the proper type (13)]
|
[Document interface: iframe.contentDocument must inherit property "createElement" with the proper type (13)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling createElement(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createElementNS" with the proper type (14)]
|
[Document interface: iframe.contentDocument must inherit property "createElementNS" with the proper type (14)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling createElementNS(DOMString,DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createDocumentFragment" with the proper type (15)]
|
[Document interface: iframe.contentDocument must inherit property "createDocumentFragment" with the proper type (15)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createTextNode" with the proper type (16)]
|
[Document interface: iframe.contentDocument must inherit property "createTextNode" with the proper type (16)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling createTextNode(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createComment" with the proper type (17)]
|
[Document interface: iframe.contentDocument must inherit property "createComment" with the proper type (17)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling createComment(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createProcessingInstruction" with the proper type (18)]
|
[Document interface: iframe.contentDocument must inherit property "createProcessingInstruction" with the proper type (18)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling createProcessingInstruction(DOMString,DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "importNode" with the proper type (19)]
|
[Document interface: iframe.contentDocument must inherit property "importNode" with the proper type (19)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling importNode(Node,boolean) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "adoptNode" with the proper type (20)]
|
[Document interface: iframe.contentDocument must inherit property "adoptNode" with the proper type (20)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling adoptNode(Node) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createAttribute" with the proper type (21)]
|
[Document interface: iframe.contentDocument must inherit property "createAttribute" with the proper type (21)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling createAttribute(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createAttributeNS" with the proper type (22)]
|
[Document interface: iframe.contentDocument must inherit property "createAttributeNS" with the proper type (22)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling createAttributeNS(DOMString,DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createEvent" with the proper type (23)]
|
[Document interface: iframe.contentDocument must inherit property "createEvent" with the proper type (23)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling createEvent(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createRange" with the proper type (24)]
|
[Document interface: iframe.contentDocument must inherit property "createRange" with the proper type (24)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createNodeIterator" with the proper type (25)]
|
[Document interface: iframe.contentDocument must inherit property "createNodeIterator" with the proper type (25)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling createNodeIterator(Node,unsigned long,NodeFilter) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createTreeWalker" with the proper type (26)]
|
[Document interface: iframe.contentDocument must inherit property "createTreeWalker" with the proper type (26)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling createTreeWalker(Node,unsigned long,NodeFilter) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "styleSheets" with the proper type (27)]
|
[Document interface: iframe.contentDocument must inherit property "styleSheets" with the proper type (27)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -270,9 +207,6 @@
|
||||||
[Document interface: iframe.contentDocument must inherit property "getElementsByName" with the proper type (50)]
|
[Document interface: iframe.contentDocument must inherit property "getElementsByName" with the proper type (50)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling getElementsByName(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "getItems" with the proper type (51)]
|
[Document interface: iframe.contentDocument must inherit property "getItems" with the proper type (51)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -282,9 +216,6 @@
|
||||||
[Document interface: iframe.contentDocument must inherit property "cssElementMap" with the proper type (52)]
|
[Document interface: iframe.contentDocument must inherit property "cssElementMap" with the proper type (52)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "currentScript" with the proper type (53)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "open" with the proper type (54)]
|
[Document interface: iframe.contentDocument must inherit property "open" with the proper type (54)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -300,27 +231,6 @@
|
||||||
[Document interface: iframe.contentDocument must inherit property "close" with the proper type (56)]
|
[Document interface: iframe.contentDocument must inherit property "close" with the proper type (56)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "write" with the proper type (57)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: calling write(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "writeln" with the proper type (58)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: calling writeln(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "defaultView" with the proper type (59)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "activeElement" with the proper type (60)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "hasFocus" with the proper type (61)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "designMode" with the proper type (62)]
|
[Document interface: iframe.contentDocument must inherit property "designMode" with the proper type (62)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -402,9 +312,6 @@
|
||||||
[Document interface: iframe.contentDocument must inherit property "getElementById" with the proper type (82)]
|
[Document interface: iframe.contentDocument must inherit property "getElementById" with the proper type (82)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling getElementById(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "children" with the proper type (83)]
|
[Document interface: iframe.contentDocument must inherit property "children" with the proper type (83)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -420,15 +327,9 @@
|
||||||
[Document interface: iframe.contentDocument must inherit property "prepend" with the proper type (87)]
|
[Document interface: iframe.contentDocument must inherit property "prepend" with the proper type (87)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling prepend([object Object\],[object Object\]) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "append" with the proper type (88)]
|
[Document interface: iframe.contentDocument must inherit property "append" with the proper type (88)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling append([object Object\],[object Object\]) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "query" with the proper type (89)]
|
[Document interface: iframe.contentDocument must inherit property "query" with the proper type (89)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -444,15 +345,9 @@
|
||||||
[Document interface: iframe.contentDocument must inherit property "querySelector" with the proper type (91)]
|
[Document interface: iframe.contentDocument must inherit property "querySelector" with the proper type (91)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling querySelector(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "querySelectorAll" with the proper type (92)]
|
[Document interface: iframe.contentDocument must inherit property "querySelectorAll" with the proper type (92)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: calling querySelectorAll(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onabort" with the proper type (93)]
|
[Document interface: iframe.contentDocument must inherit property "onabort" with the proper type (93)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -642,189 +537,6 @@
|
||||||
[Document interface: iframe.contentDocument must inherit property "onwaiting" with the proper type (155)]
|
[Document interface: iframe.contentDocument must inherit property "onwaiting" with the proper type (155)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "ELEMENT_NODE" with the proper type (0)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "ATTRIBUTE_NODE" with the proper type (1)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "TEXT_NODE" with the proper type (2)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "CDATA_SECTION_NODE" with the proper type (3)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "ENTITY_REFERENCE_NODE" with the proper type (4)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "ENTITY_NODE" with the proper type (5)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "PROCESSING_INSTRUCTION_NODE" with the proper type (6)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "COMMENT_NODE" with the proper type (7)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "DOCUMENT_NODE" with the proper type (8)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "DOCUMENT_TYPE_NODE" with the proper type (9)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "DOCUMENT_FRAGMENT_NODE" with the proper type (10)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "NOTATION_NODE" with the proper type (11)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "nodeType" with the proper type (12)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "nodeName" with the proper type (13)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "baseURI" with the proper type (14)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "ownerDocument" with the proper type (15)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "parentNode" with the proper type (16)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "parentElement" with the proper type (17)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "hasChildNodes" with the proper type (18)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "childNodes" with the proper type (19)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "firstChild" with the proper type (20)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "lastChild" with the proper type (21)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "previousSibling" with the proper type (22)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "nextSibling" with the proper type (23)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "nodeValue" with the proper type (24)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "textContent" with the proper type (25)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "normalize" with the proper type (26)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "cloneNode" with the proper type (27)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: calling cloneNode(boolean) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "isEqualNode" with the proper type (28)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: calling isEqualNode(Node) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "DOCUMENT_POSITION_DISCONNECTED" with the proper type (29)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "DOCUMENT_POSITION_PRECEDING" with the proper type (30)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "DOCUMENT_POSITION_FOLLOWING" with the proper type (31)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "DOCUMENT_POSITION_CONTAINS" with the proper type (32)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "DOCUMENT_POSITION_CONTAINED_BY" with the proper type (33)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" with the proper type (34)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "compareDocumentPosition" with the proper type (35)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: calling compareDocumentPosition(Node) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "contains" with the proper type (36)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: calling contains(Node) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "lookupPrefix" with the proper type (37)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: calling lookupPrefix(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "lookupNamespaceURI" with the proper type (38)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: calling lookupNamespaceURI(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "isDefaultNamespace" with the proper type (39)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: calling isDefaultNamespace(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "insertBefore" with the proper type (40)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: calling insertBefore(Node,Node) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "appendChild" with the proper type (41)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: calling appendChild(Node) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "replaceChild" with the proper type (42)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: calling replaceChild(Node,Node) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: iframe.contentDocument must inherit property "removeChild" with the proper type (43)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Node interface: calling removeChild(Node) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[EventTarget interface: iframe.contentDocument must inherit property "addEventListener" with the proper type (0)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[EventTarget interface: iframe.contentDocument must inherit property "removeEventListener" with the proper type (1)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[EventTarget interface: iframe.contentDocument must inherit property "dispatchEvent" with the proper type (2)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[EventTarget interface: calling dispatchEvent(Event) on iframe.contentDocument with too few arguments must throw TypeError]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[XMLDocument interface: operation load(DOMString)]
|
[XMLDocument interface: operation load(DOMString)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -5652,42 +5364,6 @@
|
||||||
[HTMLOptionElement interface: new Option() must inherit property "index" with the proper type (7)]
|
[HTMLOptionElement interface: new Option() must inherit property "index" with the proper type (7)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "charset" with the proper type (6)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "inputEncoding" with the proper type (7)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "contentType" with the proper type (8)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "doctype" with the proper type (9)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "documentElement" with the proper type (10)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "getElementsByTagName" with the proper type (11)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "getElementsByTagNameNS" with the proper type (12)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "getElementsByClassName" with the proper type (13)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createElement" with the proper type (14)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createElementNS" with the proper type (15)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createDocumentFragment" with the proper type (16)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createTextNode" with the proper type (17)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createComment" with the proper type (18)]
|
[Document interface: iframe.contentDocument must inherit property "createComment" with the proper type (18)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -8697,39 +8373,6 @@
|
||||||
[Document interface: calling createCDATASection(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
[Document interface: calling createCDATASection(DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createComment" with the proper type (19)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createProcessingInstruction" with the proper type (20)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "importNode" with the proper type (21)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "adoptNode" with the proper type (22)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createAttribute" with the proper type (23)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createAttributeNS" with the proper type (24)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createEvent" with the proper type (25)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createRange" with the proper type (26)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createNodeIterator" with the proper type (27)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "createTreeWalker" with the proper type (28)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "styleSheets" with the proper type (29)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "selectedStyleSheetSet" with the proper type (30)]
|
[Document interface: iframe.contentDocument must inherit property "selectedStyleSheetSet" with the proper type (30)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -8745,63 +8388,12 @@
|
||||||
[Document interface: iframe.contentDocument must inherit property "enableStyleSheetsForSet" with the proper type (34)]
|
[Document interface: iframe.contentDocument must inherit property "enableStyleSheetsForSet" with the proper type (34)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "domain" with the proper type (36)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "referrer" with the proper type (37)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "cookie" with the proper type (38)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "lastModified" with the proper type (39)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "readyState" with the proper type (40)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "title" with the proper type (42)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "dir" with the proper type (43)]
|
[Document interface: iframe.contentDocument must inherit property "dir" with the proper type (43)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "body" with the proper type (44)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "head" with the proper type (45)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "images" with the proper type (46)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "embeds" with the proper type (47)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "plugins" with the proper type (48)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "links" with the proper type (49)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "forms" with the proper type (50)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "scripts" with the proper type (51)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "getElementsByName" with the proper type (52)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: calling open(USVString,DOMString,DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
[Document interface: calling open(USVString,DOMString,DOMString) on iframe.contentDocument with too few arguments must throw TypeError]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onreadystatechange" with the proper type (69)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "fgColor" with the proper type (70)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "linkColor" with the proper type (71)]
|
[Document interface: iframe.contentDocument must inherit property "linkColor" with the proper type (71)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -8811,243 +8403,12 @@
|
||||||
[Document interface: iframe.contentDocument must inherit property "alinkColor" with the proper type (73)]
|
[Document interface: iframe.contentDocument must inherit property "alinkColor" with the proper type (73)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "bgColor" with the proper type (74)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "anchors" with the proper type (75)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "applets" with the proper type (76)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "clear" with the proper type (77)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "captureEvents" with the proper type (78)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "releaseEvents" with the proper type (79)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "all" with the proper type (80)]
|
[Document interface: iframe.contentDocument must inherit property "all" with the proper type (80)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "getElementById" with the proper type (81)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "children" with the proper type (82)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "firstElementChild" with the proper type (83)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "lastElementChild" with the proper type (84)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "childElementCount" with the proper type (85)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "prepend" with the proper type (86)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "append" with the proper type (87)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "querySelector" with the proper type (88)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "querySelectorAll" with the proper type (89)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onabort" with the proper type (90)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onblur" with the proper type (91)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "oncancel" with the proper type (92)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "oncanplay" with the proper type (93)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "oncanplaythrough" with the proper type (94)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onchange" with the proper type (95)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onclick" with the proper type (96)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onclose" with the proper type (97)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "oncontextmenu" with the proper type (98)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "oncuechange" with the proper type (99)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "ondblclick" with the proper type (100)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "ondrag" with the proper type (101)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "ondragend" with the proper type (102)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "ondragenter" with the proper type (103)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "ondragexit" with the proper type (104)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "ondragleave" with the proper type (105)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "ondragover" with the proper type (106)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "ondragstart" with the proper type (107)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "ondrop" with the proper type (108)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "ondurationchange" with the proper type (109)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onemptied" with the proper type (110)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onended" with the proper type (111)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onerror" with the proper type (112)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onfocus" with the proper type (113)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "oninput" with the proper type (114)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "oninvalid" with the proper type (115)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onkeydown" with the proper type (116)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onkeypress" with the proper type (117)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onkeyup" with the proper type (118)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onload" with the proper type (119)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onloadeddata" with the proper type (120)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onloadedmetadata" with the proper type (121)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onloadstart" with the proper type (122)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onmousedown" with the proper type (123)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onmouseenter" with the proper type (124)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onmouseleave" with the proper type (125)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onmousemove" with the proper type (126)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onmouseout" with the proper type (127)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onmouseover" with the proper type (128)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onmouseup" with the proper type (129)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onmousewheel" with the proper type (130)]
|
[Document interface: iframe.contentDocument must inherit property "onmousewheel" with the proper type (130)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onpause" with the proper type (131)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onplay" with the proper type (132)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onplaying" with the proper type (133)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onprogress" with the proper type (134)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onratechange" with the proper type (135)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onreset" with the proper type (136)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onresize" with the proper type (137)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onscroll" with the proper type (138)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onseeked" with the proper type (139)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onseeking" with the proper type (140)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onselect" with the proper type (141)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onshow" with the proper type (142)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onstalled" with the proper type (143)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onsubmit" with the proper type (144)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onsuspend" with the proper type (145)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "ontimeupdate" with the proper type (146)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "ontoggle" with the proper type (147)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onvolumechange" with the proper type (148)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onwaiting" with the proper type (149)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "oncopy" with the proper type (150)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "oncut" with the proper type (151)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: iframe.contentDocument must inherit property "onpaste" with the proper type (152)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document interface: new Document() must inherit property "createCDATASection" with the proper type (18)]
|
[Document interface: new Document() must inherit property "createCDATASection" with the proper type (18)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[resource-selection-invoke-insert-into-iframe.html]
|
|
||||||
type: testharness
|
|
||||||
[NOT invoking resource selection by inserting into other document with src set]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[pause-move-to-other-document.html]
|
|
||||||
type: testharness
|
|
||||||
[paused state when moving to other document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
[iframe-append-to-child-document.html]
|
[iframe-append-to-child-document.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
[Append iframe element to its own child document]
|
disabled: https://github.com/servo/servo/issues/14411
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,3 @@
|
||||||
[load event of blob URL]
|
[load event of blob URL]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[load event of initial about:blank]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
[move_iframe_in_dom_01.html]
|
|
||||||
type: testharness
|
|
||||||
expected: ERROR
|
|
|
@ -1,13 +1,6 @@
|
||||||
[viewport-change.html]
|
[viewport-change.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
disabled: unsupported feature and prone to intermittent incorrect results
|
expected: TIMEOUT
|
||||||
bug: 9560
|
|
||||||
[img (no src), onload, narrow]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[img (empty src), onload, narrow]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[img (src only) broken image, onload, narrow]
|
[img (src only) broken image, onload, narrow]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -24,35 +17,29 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[picture: source (max-width:500px) broken image, img broken image, resize to wide]
|
[picture: source (max-width:500px) broken image, img broken image, resize to wide]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[picture: source (max-width:500px) broken image, img valid image, onload, narrow]
|
[picture: source (max-width:500px) broken image, img valid image, onload, narrow]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[picture: source (max-width:500px) broken image, img valid image, resize to wide]
|
[picture: source (max-width:500px) broken image, img valid image, resize to wide]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img broken image, onload, narrow]
|
[picture: source (max-width:500px) valid image, img broken image, onload, narrow]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img broken image, resize to wide]
|
[picture: source (max-width:500px) valid image, img broken image, resize to wide]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img valid image, onload, narrow]
|
[picture: source (max-width:500px) valid image, img valid image, onload, narrow]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img valid image, resize to wide]
|
[picture: source (max-width:500px) valid image, img valid image, resize to wide]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[picture: same URL in source (max-width:500px) and img, onload, narrow]
|
[picture: same URL in source (max-width:500px) and img, onload, narrow]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[img (no src), onload, wide]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[img (empty src), onload, wide]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[img (src only) broken image, onload, wide]
|
[img (src only) broken image, onload, wide]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -69,41 +56,26 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[picture: source (max-width:500px) broken image, img broken image, resize to narrow]
|
[picture: source (max-width:500px) broken image, img broken image, resize to narrow]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[picture: source (max-width:500px) broken image, img valid image, onload, wide]
|
[picture: source (max-width:500px) broken image, img valid image, onload, wide]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[picture: source (max-width:500px) broken image, img valid image, resize to narrow]
|
[picture: source (max-width:500px) broken image, img valid image, resize to narrow]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img broken image, onload, wide]
|
[picture: source (max-width:500px) valid image, img broken image, onload, wide]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img broken image, resize to narrow]
|
[picture: source (max-width:500px) valid image, img broken image, resize to narrow]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img valid image, onload, wide]
|
[picture: source (max-width:500px) valid image, img valid image, onload, wide]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img valid image, resize to narrow]
|
[picture: source (max-width:500px) valid image, img valid image, resize to narrow]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[picture: same URL in source (max-width:500px) and img, onload, wide]
|
[picture: same URL in source (max-width:500px) and img, onload, wide]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[img (empty src), resize to wide]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[img (src only) broken image, resize to wide]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[img (src only) valid image, resize to wide]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[picture: same URL in source (max-width:500px) and img, resize to wide]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[picture: same URL in source (max-width:500px) and img, resize to narrow]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
[parse-a-sizes-attribute.html]
|
[parse-a-sizes-attribute.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
disabled: unsupported feature and prone to intermittent incorrect results
|
|
||||||
bug: 9560
|
|
||||||
[<img srcset="/images/green-1x1.png?a2 300w, /images/green-16x16.png?a2 301w"> ref sizes="100vw" (standards mode)]
|
[<img srcset="/images/green-1x1.png?a2 300w, /images/green-16x16.png?a2 301w"> ref sizes="100vw" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -140,31 +138,31 @@
|
||||||
[<img srcset="/images/green-1x1.png?e43 50w, /images/green-16x16.png?e43 51w" sizes="(min-width:unknown-mf-value) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e43 50w, /images/green-16x16.png?e43 51w" sizes="(min-width:unknown-mf-value) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e44 50w, /images/green-16x16.png?e44 51w" sizes="not (min-width:unknown-mf-value) 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e44 50w, /images/green-16x16.png?e44 51w" sizes="not (min-width:unknown-mf-value) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e45 50w, /images/green-16x16.png?e45 51w" sizes="(min-width:-1px) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e45 50w, /images/green-16x16.png?e45 51w" sizes="(min-width:-1px) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e46 50w, /images/green-16x16.png?e46 51w" sizes="not (min-width:-1px) 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e46 50w, /images/green-16x16.png?e46 51w" sizes="not (min-width:-1px) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e47 50w, /images/green-16x16.png?e47 51w" sizes="(unknown-mf-name) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e47 50w, /images/green-16x16.png?e47 51w" sizes="(unknown-mf-name) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e48 50w, /images/green-16x16.png?e48 51w" sizes="not (unknown-mf-name) 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e48 50w, /images/green-16x16.png?e48 51w" sizes="not (unknown-mf-name) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e49 50w, /images/green-16x16.png?e49 51w" sizes="("unknown-general-enclosed") 100vw, 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e49 50w, /images/green-16x16.png?e49 51w" sizes="(unknown "general-enclosed") 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e50 50w, /images/green-16x16.png?e50 51w" sizes="not ("unknown-general-enclosed") 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e50 50w, /images/green-16x16.png?e50 51w" sizes="not (unknown "general-enclosed") 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e51 50w, /images/green-16x16.png?e51 51w" sizes="unknown-general-enclosed(foo) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e51 50w, /images/green-16x16.png?e51 51w" sizes="unknown-general-enclosed(foo) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e52 50w, /images/green-16x16.png?e52 51w" sizes="not unknown-general-enclosed(foo) 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e52 50w, /images/green-16x16.png?e52 51w" sizes="not unknown-general-enclosed(foo) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e53 50w, /images/green-16x16.png?e53 51w" sizes="print 100vw, 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e53 50w, /images/green-16x16.png?e53 51w" sizes="print 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
|
@ -191,7 +189,7 @@
|
||||||
[<img srcset="/images/green-1x1.png?e60 50w, /images/green-16x16.png?e60 51w" sizes="(min-width:0) or (min-width:-1px) 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e60 50w, /images/green-16x16.png?e60 51w" sizes="(min-width:0) or (min-width:-1px) 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e61 50w, /images/green-16x16.png?e61 51w" sizes="(min-width:0) or ("unknown-general-enclosed") 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e61 50w, /images/green-16x16.png?e61 51w" sizes="(min-width:0) or (unknown "general-enclosed") 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e62 50w, /images/green-16x16.png?e62 51w" sizes="(min-width:0) or unknown-general-enclosed(foo) 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e62 50w, /images/green-16x16.png?e62 51w" sizes="(min-width:0) or unknown-general-enclosed(foo) 1px"> ref sizes="1px" (standards mode)]
|
||||||
|
@ -206,7 +204,7 @@
|
||||||
[<img srcset="/images/green-1x1.png?e65 50w, /images/green-16x16.png?e65 51w" sizes="(123) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e65 50w, /images/green-16x16.png?e65 51w" sizes="(123) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e66 50w, /images/green-16x16.png?e66 51w" sizes="not (123) 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e66 50w, /images/green-16x16.png?e66 51w" sizes="not (123) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e67 50w, /images/green-16x16.png?e67 51w" sizes="(!) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e67 50w, /images/green-16x16.png?e67 51w" sizes="(!) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
|
@ -260,7 +258,7 @@
|
||||||
[<img srcset="/images/green-1x1.png?e83 50w, /images/green-16x16.png?e83 51w" sizes="(.) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e83 50w, /images/green-16x16.png?e83 51w" sizes="(.) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e84 50w, /images/green-16x16.png?e84 51w" sizes="not (.) 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e84 50w, /images/green-16x16.png?e84 51w" sizes="not (.) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e85 50w, /images/green-16x16.png?e85 51w" sizes="; 100vw, 1px"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e85 50w, /images/green-16x16.png?e85 51w" sizes="; 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
|
@ -314,6 +312,36 @@
|
||||||
[<img srcset="/images/green-1x1.png?e101 50w, /images/green-16x16.png?e101 51w" sizes="(min-width:0) 1px, foo bar"> ref sizes="1px" (standards mode)]
|
[<img srcset="/images/green-1x1.png?e101 50w, /images/green-16x16.png?e101 51w" sizes="(min-width:0) 1px, foo bar"> ref sizes="1px" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e102 50w, /images/green-16x16.png?e102 51w" sizes="("grammar does not match") 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e103 50w, /images/green-16x16.png?e103 51w" sizes="not ("grammar does not match") 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e104 50w, /images/green-16x16.png?e104 51w" sizes="(unknown-general-enclosed !) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e105 50w, /images/green-16x16.png?e105 51w" sizes="not (unknown-general-enclosed !) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e106 50w, /images/green-16x16.png?e106 51w" sizes="(min-width:0) or (unknown-general-enclosed !) 1px"> ref sizes="1px" (standards mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e107 50w, /images/green-16x16.png?e107 51w" sizes="not ((min-width:0) or (unknown "general-enclosed")) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e108 50w, /images/green-16x16.png?e108 51w" sizes="(max-width:0) or (unknown-general-enclosed !) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e109 50w, /images/green-16x16.png?e109 51w" sizes="not ((max-width:0) or (unknown "general-enclosed")) 100vw, 1px"> ref sizes="1px" (standards mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?f48 50w, /images/green-16x16.png?f48 51w" sizes="calc(1px"> ref sizes="1px" (standards mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?f49 50w, /images/green-16x16.png?f49 51w" sizes="(min-width:0) calc(1px"> ref sizes="1px" (standards mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?f2 50w, /images/green-16x16.png?f2 51w" sizes=""> ref sizes="100vw" (standards mode)]
|
[<img srcset="/images/green-1x1.png?f2 50w, /images/green-16x16.png?f2 51w" sizes=""> ref sizes="100vw" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -452,12 +480,6 @@
|
||||||
[<img srcset="/images/green-1x1.png?f47 50w, /images/green-16x16.png?f47 51w" style="--foo: 1px" sizes="var(--foo)"> ref sizes="100vw" (standards mode)]
|
[<img srcset="/images/green-1x1.png?f47 50w, /images/green-16x16.png?f47 51w" style="--foo: 1px" sizes="var(--foo)"> ref sizes="100vw" (standards mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?f48 50w, /images/green-16x16.png?f48 51w" sizes="calc(1px"> ref sizes="100vw" (standards mode)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?f49 50w, /images/green-16x16.png?f49 51w" sizes="(min-width:0) calc(1px"> ref sizes="100vw" (standards mode)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?a2 300w, /images/green-16x16.png?a2 301w"> ref sizes="100vw" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?a2 300w, /images/green-16x16.png?a2 301w"> ref sizes="100vw" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -596,31 +618,31 @@
|
||||||
[<img srcset="/images/green-1x1.png?e43 50w, /images/green-16x16.png?e43 51w" sizes="(min-width:unknown-mf-value) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e43 50w, /images/green-16x16.png?e43 51w" sizes="(min-width:unknown-mf-value) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e44 50w, /images/green-16x16.png?e44 51w" sizes="not (min-width:unknown-mf-value) 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e44 50w, /images/green-16x16.png?e44 51w" sizes="not (min-width:unknown-mf-value) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e45 50w, /images/green-16x16.png?e45 51w" sizes="(min-width:-1px) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e45 50w, /images/green-16x16.png?e45 51w" sizes="(min-width:-1px) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e46 50w, /images/green-16x16.png?e46 51w" sizes="not (min-width:-1px) 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e46 50w, /images/green-16x16.png?e46 51w" sizes="not (min-width:-1px) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e47 50w, /images/green-16x16.png?e47 51w" sizes="(unknown-mf-name) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e47 50w, /images/green-16x16.png?e47 51w" sizes="(unknown-mf-name) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e48 50w, /images/green-16x16.png?e48 51w" sizes="not (unknown-mf-name) 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e48 50w, /images/green-16x16.png?e48 51w" sizes="not (unknown-mf-name) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e49 50w, /images/green-16x16.png?e49 51w" sizes="("unknown-general-enclosed") 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e49 50w, /images/green-16x16.png?e49 51w" sizes="(unknown "general-enclosed") 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e50 50w, /images/green-16x16.png?e50 51w" sizes="not ("unknown-general-enclosed") 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e50 50w, /images/green-16x16.png?e50 51w" sizes="not (unknown "general-enclosed") 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e51 50w, /images/green-16x16.png?e51 51w" sizes="unknown-general-enclosed(foo) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e51 50w, /images/green-16x16.png?e51 51w" sizes="unknown-general-enclosed(foo) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e52 50w, /images/green-16x16.png?e52 51w" sizes="not unknown-general-enclosed(foo) 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e52 50w, /images/green-16x16.png?e52 51w" sizes="not unknown-general-enclosed(foo) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e53 50w, /images/green-16x16.png?e53 51w" sizes="print 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e53 50w, /images/green-16x16.png?e53 51w" sizes="print 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
@ -647,7 +669,7 @@
|
||||||
[<img srcset="/images/green-1x1.png?e60 50w, /images/green-16x16.png?e60 51w" sizes="(min-width:0) or (min-width:-1px) 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e60 50w, /images/green-16x16.png?e60 51w" sizes="(min-width:0) or (min-width:-1px) 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e61 50w, /images/green-16x16.png?e61 51w" sizes="(min-width:0) or ("unknown-general-enclosed") 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e61 50w, /images/green-16x16.png?e61 51w" sizes="(min-width:0) or (unknown "general-enclosed") 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e62 50w, /images/green-16x16.png?e62 51w" sizes="(min-width:0) or unknown-general-enclosed(foo) 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e62 50w, /images/green-16x16.png?e62 51w" sizes="(min-width:0) or unknown-general-enclosed(foo) 1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
@ -662,7 +684,7 @@
|
||||||
[<img srcset="/images/green-1x1.png?e65 50w, /images/green-16x16.png?e65 51w" sizes="(123) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e65 50w, /images/green-16x16.png?e65 51w" sizes="(123) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e66 50w, /images/green-16x16.png?e66 51w" sizes="not (123) 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e66 50w, /images/green-16x16.png?e66 51w" sizes="not (123) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e67 50w, /images/green-16x16.png?e67 51w" sizes="(!) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e67 50w, /images/green-16x16.png?e67 51w" sizes="(!) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
@ -716,7 +738,7 @@
|
||||||
[<img srcset="/images/green-1x1.png?e83 50w, /images/green-16x16.png?e83 51w" sizes="(.) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e83 50w, /images/green-16x16.png?e83 51w" sizes="(.) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e84 50w, /images/green-16x16.png?e84 51w" sizes="not (.) 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e84 50w, /images/green-16x16.png?e84 51w" sizes="not (.) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e85 50w, /images/green-16x16.png?e85 51w" sizes="; 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e85 50w, /images/green-16x16.png?e85 51w" sizes="; 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
@ -770,6 +792,36 @@
|
||||||
[<img srcset="/images/green-1x1.png?e101 50w, /images/green-16x16.png?e101 51w" sizes="(min-width:0) 1px, foo bar"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e101 50w, /images/green-16x16.png?e101 51w" sizes="(min-width:0) 1px, foo bar"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e102 50w, /images/green-16x16.png?e102 51w" sizes="("grammar does not match") 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e103 50w, /images/green-16x16.png?e103 51w" sizes="not ("grammar does not match") 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e104 50w, /images/green-16x16.png?e104 51w" sizes="(unknown-general-enclosed !) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e105 50w, /images/green-16x16.png?e105 51w" sizes="not (unknown-general-enclosed !) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e106 50w, /images/green-16x16.png?e106 51w" sizes="(min-width:0) or (unknown-general-enclosed !) 1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e107 50w, /images/green-16x16.png?e107 51w" sizes="not ((min-width:0) or (unknown "general-enclosed")) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e108 50w, /images/green-16x16.png?e108 51w" sizes="(max-width:0) or (unknown-general-enclosed !) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e109 50w, /images/green-16x16.png?e109 51w" sizes="not ((max-width:0) or (unknown "general-enclosed")) 100vw, 1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?f48 50w, /images/green-16x16.png?f48 51w" sizes="calc(1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?f49 50w, /images/green-16x16.png?f49 51w" sizes="(min-width:0) calc(1px"> ref sizes="1px" (quirks mode)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?f2 50w, /images/green-16x16.png?f2 51w" sizes=""> ref sizes="100vw" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?f2 50w, /images/green-16x16.png?f2 51w" sizes=""> ref sizes="100vw" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -908,12 +960,6 @@
|
||||||
[<img srcset="/images/green-1x1.png?f47 50w, /images/green-16x16.png?f47 51w" style="--foo: 1px" sizes="var(--foo)"> ref sizes="100vw" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?f47 50w, /images/green-16x16.png?f47 51w" style="--foo: 1px" sizes="var(--foo)"> ref sizes="100vw" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?f48 50w, /images/green-16x16.png?f48 51w" sizes="calc(1px"> ref sizes="100vw" (quirks mode)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?f49 50w, /images/green-16x16.png?f49 51w" sizes="(min-width:0) calc(1px"> ref sizes="100vw" (quirks mode)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?a2 300w, /images/green-16x16.png?a2 301w"> ref sizes="100vw" (display:none)]
|
[<img srcset="/images/green-1x1.png?a2 300w, /images/green-16x16.png?a2 301w"> ref sizes="100vw" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -1052,31 +1098,31 @@
|
||||||
[<img srcset="/images/green-1x1.png?e43 50w, /images/green-16x16.png?e43 51w" sizes="(min-width:unknown-mf-value) 100vw, 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e43 50w, /images/green-16x16.png?e43 51w" sizes="(min-width:unknown-mf-value) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e44 50w, /images/green-16x16.png?e44 51w" sizes="not (min-width:unknown-mf-value) 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e44 50w, /images/green-16x16.png?e44 51w" sizes="not (min-width:unknown-mf-value) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e45 50w, /images/green-16x16.png?e45 51w" sizes="(min-width:-1px) 100vw, 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e45 50w, /images/green-16x16.png?e45 51w" sizes="(min-width:-1px) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e46 50w, /images/green-16x16.png?e46 51w" sizes="not (min-width:-1px) 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e46 50w, /images/green-16x16.png?e46 51w" sizes="not (min-width:-1px) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e47 50w, /images/green-16x16.png?e47 51w" sizes="(unknown-mf-name) 100vw, 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e47 50w, /images/green-16x16.png?e47 51w" sizes="(unknown-mf-name) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e48 50w, /images/green-16x16.png?e48 51w" sizes="not (unknown-mf-name) 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e48 50w, /images/green-16x16.png?e48 51w" sizes="not (unknown-mf-name) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e49 50w, /images/green-16x16.png?e49 51w" sizes="("unknown-general-enclosed") 100vw, 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e49 50w, /images/green-16x16.png?e49 51w" sizes="(unknown "general-enclosed") 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e50 50w, /images/green-16x16.png?e50 51w" sizes="not ("unknown-general-enclosed") 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e50 50w, /images/green-16x16.png?e50 51w" sizes="not (unknown "general-enclosed") 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e51 50w, /images/green-16x16.png?e51 51w" sizes="unknown-general-enclosed(foo) 100vw, 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e51 50w, /images/green-16x16.png?e51 51w" sizes="unknown-general-enclosed(foo) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e52 50w, /images/green-16x16.png?e52 51w" sizes="not unknown-general-enclosed(foo) 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e52 50w, /images/green-16x16.png?e52 51w" sizes="not unknown-general-enclosed(foo) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e53 50w, /images/green-16x16.png?e53 51w" sizes="print 100vw, 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e53 50w, /images/green-16x16.png?e53 51w" sizes="print 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
|
@ -1103,7 +1149,7 @@
|
||||||
[<img srcset="/images/green-1x1.png?e60 50w, /images/green-16x16.png?e60 51w" sizes="(min-width:0) or (min-width:-1px) 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e60 50w, /images/green-16x16.png?e60 51w" sizes="(min-width:0) or (min-width:-1px) 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e61 50w, /images/green-16x16.png?e61 51w" sizes="(min-width:0) or ("unknown-general-enclosed") 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e61 50w, /images/green-16x16.png?e61 51w" sizes="(min-width:0) or (unknown "general-enclosed") 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e62 50w, /images/green-16x16.png?e62 51w" sizes="(min-width:0) or unknown-general-enclosed(foo) 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e62 50w, /images/green-16x16.png?e62 51w" sizes="(min-width:0) or unknown-general-enclosed(foo) 1px"> ref sizes="1px" (display:none)]
|
||||||
|
@ -1118,7 +1164,7 @@
|
||||||
[<img srcset="/images/green-1x1.png?e65 50w, /images/green-16x16.png?e65 51w" sizes="(123) 100vw, 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e65 50w, /images/green-16x16.png?e65 51w" sizes="(123) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e66 50w, /images/green-16x16.png?e66 51w" sizes="not (123) 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e66 50w, /images/green-16x16.png?e66 51w" sizes="not (123) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e67 50w, /images/green-16x16.png?e67 51w" sizes="(!) 100vw, 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e67 50w, /images/green-16x16.png?e67 51w" sizes="(!) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
|
@ -1172,7 +1218,7 @@
|
||||||
[<img srcset="/images/green-1x1.png?e83 50w, /images/green-16x16.png?e83 51w" sizes="(.) 100vw, 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e83 50w, /images/green-16x16.png?e83 51w" sizes="(.) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e84 50w, /images/green-16x16.png?e84 51w" sizes="not (.) 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e84 50w, /images/green-16x16.png?e84 51w" sizes="not (.) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e85 50w, /images/green-16x16.png?e85 51w" sizes="; 100vw, 1px"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e85 50w, /images/green-16x16.png?e85 51w" sizes="; 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
|
@ -1226,6 +1272,36 @@
|
||||||
[<img srcset="/images/green-1x1.png?e101 50w, /images/green-16x16.png?e101 51w" sizes="(min-width:0) 1px, foo bar"> ref sizes="1px" (display:none)]
|
[<img srcset="/images/green-1x1.png?e101 50w, /images/green-16x16.png?e101 51w" sizes="(min-width:0) 1px, foo bar"> ref sizes="1px" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e102 50w, /images/green-16x16.png?e102 51w" sizes="("grammar does not match") 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e103 50w, /images/green-16x16.png?e103 51w" sizes="not ("grammar does not match") 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e104 50w, /images/green-16x16.png?e104 51w" sizes="(unknown-general-enclosed !) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e105 50w, /images/green-16x16.png?e105 51w" sizes="not (unknown-general-enclosed !) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e106 50w, /images/green-16x16.png?e106 51w" sizes="(min-width:0) or (unknown-general-enclosed !) 1px"> ref sizes="1px" (display:none)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e107 50w, /images/green-16x16.png?e107 51w" sizes="not ((min-width:0) or (unknown "general-enclosed")) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e108 50w, /images/green-16x16.png?e108 51w" sizes="(max-width:0) or (unknown-general-enclosed !) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e109 50w, /images/green-16x16.png?e109 51w" sizes="not ((max-width:0) or (unknown "general-enclosed")) 100vw, 1px"> ref sizes="1px" (display:none)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?f48 50w, /images/green-16x16.png?f48 51w" sizes="calc(1px"> ref sizes="1px" (display:none)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?f49 50w, /images/green-16x16.png?f49 51w" sizes="(min-width:0) calc(1px"> ref sizes="1px" (display:none)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?f2 50w, /images/green-16x16.png?f2 51w" sizes=""> ref sizes="100vw" (display:none)]
|
[<img srcset="/images/green-1x1.png?f2 50w, /images/green-16x16.png?f2 51w" sizes=""> ref sizes="100vw" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -1364,12 +1440,6 @@
|
||||||
[<img srcset="/images/green-1x1.png?f47 50w, /images/green-16x16.png?f47 51w" style="--foo: 1px" sizes="var(--foo)"> ref sizes="100vw" (display:none)]
|
[<img srcset="/images/green-1x1.png?f47 50w, /images/green-16x16.png?f47 51w" style="--foo: 1px" sizes="var(--foo)"> ref sizes="100vw" (display:none)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?f48 50w, /images/green-16x16.png?f48 51w" sizes="calc(1px"> ref sizes="100vw" (display:none)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?f49 50w, /images/green-16x16.png?f49 51w" sizes="(min-width:0) calc(1px"> ref sizes="100vw" (display:none)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?a2 300w, /images/green-16x16.png?a2 301w"> ref sizes="100vw" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?a2 300w, /images/green-16x16.png?a2 301w"> ref sizes="100vw" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -1508,31 +1578,31 @@
|
||||||
[<img srcset="/images/green-1x1.png?e43 50w, /images/green-16x16.png?e43 51w" sizes="(min-width:unknown-mf-value) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e43 50w, /images/green-16x16.png?e43 51w" sizes="(min-width:unknown-mf-value) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e44 50w, /images/green-16x16.png?e44 51w" sizes="not (min-width:unknown-mf-value) 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e44 50w, /images/green-16x16.png?e44 51w" sizes="not (min-width:unknown-mf-value) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e45 50w, /images/green-16x16.png?e45 51w" sizes="(min-width:-1px) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e45 50w, /images/green-16x16.png?e45 51w" sizes="(min-width:-1px) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e46 50w, /images/green-16x16.png?e46 51w" sizes="not (min-width:-1px) 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e46 50w, /images/green-16x16.png?e46 51w" sizes="not (min-width:-1px) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e47 50w, /images/green-16x16.png?e47 51w" sizes="(unknown-mf-name) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e47 50w, /images/green-16x16.png?e47 51w" sizes="(unknown-mf-name) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e48 50w, /images/green-16x16.png?e48 51w" sizes="not (unknown-mf-name) 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e48 50w, /images/green-16x16.png?e48 51w" sizes="not (unknown-mf-name) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e49 50w, /images/green-16x16.png?e49 51w" sizes="("unknown-general-enclosed") 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e49 50w, /images/green-16x16.png?e49 51w" sizes="(unknown "general-enclosed") 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e50 50w, /images/green-16x16.png?e50 51w" sizes="not ("unknown-general-enclosed") 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e50 50w, /images/green-16x16.png?e50 51w" sizes="not (unknown "general-enclosed") 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e51 50w, /images/green-16x16.png?e51 51w" sizes="unknown-general-enclosed(foo) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e51 50w, /images/green-16x16.png?e51 51w" sizes="unknown-general-enclosed(foo) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e52 50w, /images/green-16x16.png?e52 51w" sizes="not unknown-general-enclosed(foo) 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e52 50w, /images/green-16x16.png?e52 51w" sizes="not unknown-general-enclosed(foo) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e53 50w, /images/green-16x16.png?e53 51w" sizes="print 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e53 50w, /images/green-16x16.png?e53 51w" sizes="print 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
@ -1559,7 +1629,7 @@
|
||||||
[<img srcset="/images/green-1x1.png?e60 50w, /images/green-16x16.png?e60 51w" sizes="(min-width:0) or (min-width:-1px) 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e60 50w, /images/green-16x16.png?e60 51w" sizes="(min-width:0) or (min-width:-1px) 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e61 50w, /images/green-16x16.png?e61 51w" sizes="(min-width:0) or ("unknown-general-enclosed") 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e61 50w, /images/green-16x16.png?e61 51w" sizes="(min-width:0) or (unknown "general-enclosed") 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e62 50w, /images/green-16x16.png?e62 51w" sizes="(min-width:0) or unknown-general-enclosed(foo) 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e62 50w, /images/green-16x16.png?e62 51w" sizes="(min-width:0) or unknown-general-enclosed(foo) 1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
@ -1574,7 +1644,7 @@
|
||||||
[<img srcset="/images/green-1x1.png?e65 50w, /images/green-16x16.png?e65 51w" sizes="(123) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e65 50w, /images/green-16x16.png?e65 51w" sizes="(123) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e66 50w, /images/green-16x16.png?e66 51w" sizes="not (123) 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e66 50w, /images/green-16x16.png?e66 51w" sizes="not (123) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e67 50w, /images/green-16x16.png?e67 51w" sizes="(!) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e67 50w, /images/green-16x16.png?e67 51w" sizes="(!) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
@ -1628,7 +1698,7 @@
|
||||||
[<img srcset="/images/green-1x1.png?e83 50w, /images/green-16x16.png?e83 51w" sizes="(.) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e83 50w, /images/green-16x16.png?e83 51w" sizes="(.) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e84 50w, /images/green-16x16.png?e84 51w" sizes="not (.) 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e84 50w, /images/green-16x16.png?e84 51w" sizes="not (.) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?e85 50w, /images/green-16x16.png?e85 51w" sizes="; 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e85 50w, /images/green-16x16.png?e85 51w" sizes="; 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
@ -1682,6 +1752,36 @@
|
||||||
[<img srcset="/images/green-1x1.png?e101 50w, /images/green-16x16.png?e101 51w" sizes="(min-width:0) 1px, foo bar"> ref sizes="1px" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?e101 50w, /images/green-16x16.png?e101 51w" sizes="(min-width:0) 1px, foo bar"> ref sizes="1px" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e102 50w, /images/green-16x16.png?e102 51w" sizes="("grammar does not match") 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e103 50w, /images/green-16x16.png?e103 51w" sizes="not ("grammar does not match") 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e104 50w, /images/green-16x16.png?e104 51w" sizes="(unknown-general-enclosed !) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e105 50w, /images/green-16x16.png?e105 51w" sizes="not (unknown-general-enclosed !) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e106 50w, /images/green-16x16.png?e106 51w" sizes="(min-width:0) or (unknown-general-enclosed !) 1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e107 50w, /images/green-16x16.png?e107 51w" sizes="not ((min-width:0) or (unknown "general-enclosed")) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e108 50w, /images/green-16x16.png?e108 51w" sizes="(max-width:0) or (unknown-general-enclosed !) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?e109 50w, /images/green-16x16.png?e109 51w" sizes="not ((max-width:0) or (unknown "general-enclosed")) 100vw, 1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?f48 50w, /images/green-16x16.png?f48 51w" sizes="calc(1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<img srcset="/images/green-1x1.png?f49 50w, /images/green-16x16.png?f49 51w" sizes="(min-width:0) calc(1px"> ref sizes="1px" (width:1000px)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?f2 50w, /images/green-16x16.png?f2 51w" sizes=""> ref sizes="100vw" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?f2 50w, /images/green-16x16.png?f2 51w" sizes=""> ref sizes="100vw" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -1820,9 +1920,3 @@
|
||||||
[<img srcset="/images/green-1x1.png?f47 50w, /images/green-16x16.png?f47 51w" style="--foo: 1px" sizes="var(--foo)"> ref sizes="100vw" (width:1000px)]
|
[<img srcset="/images/green-1x1.png?f47 50w, /images/green-16x16.png?f47 51w" style="--foo: 1px" sizes="var(--foo)"> ref sizes="100vw" (width:1000px)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?f48 50w, /images/green-16x16.png?f48 51w" sizes="calc(1px"> ref sizes="100vw" (width:1000px)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<img srcset="/images/green-1x1.png?f49 50w, /images/green-16x16.png?f49 51w" sizes="(min-width:0) calc(1px"> ref sizes="100vw" (width:1000px)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
[Changing of template element's node document. Test document loaded from a file]
|
[Changing of template element's node document. Test document loaded from a file]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Changing of template element's node document. Adobt template element into a document that has a browsing context]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Changing of template element's node document. Test the case when both old and new owner documents of template element have browsing context]
|
[Changing of template element's node document. Test the case when both old and new owner documents of template element have browsing context]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Changing of template element's node document. Adobt template element into a document that has a browsing context]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
[unsupported-csp-referrer-directive.html]
|
[unsupported-csp-referrer-directive.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
disabled: https://github.com/servo/servo/issues/4767
|
disabled: https://github.com/servo/servo/issues/4767
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
[event_basic.html]
|
[event_basic.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: ERROR
|
|
||||||
[sessionStorage mutations fire StorageEvents that are caught by the event listener set via window.onstorage.]
|
[sessionStorage mutations fire StorageEvents that are caught by the event listener set via window.onstorage.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
[event_body_attribute.html]
|
|
||||||
type: testharness
|
|
||||||
expected: ERROR
|
|
||||||
[sessionStorage mutations fire StorageEvents that are caught by the event listener specified as an attribute on the body.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[localStorage mutations fire StorageEvents that are caught by the event listener specified as an attribute on the body.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
[event_case_sensitive.html]
|
[event_case_sensitive.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: ERROR
|
|
||||||
[sessionStorage storage events fire even when only the case of the value changes.]
|
[sessionStorage storage events fire even when only the case of the value changes.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
[event_setattribute.html]
|
|
||||||
type: testharness
|
|
||||||
expected: ERROR
|
|
||||||
[sessionStorage mutations fire StorageEvents that are caught by the event listener attached via setattribute.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[localStorage mutations fire StorageEvents that are caught by the event listener attached via setattribute.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
[htmllabel-activation.html]
|
[htmllabel-activation.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
|
|
||||||
[If label's 1st child (submit) is disabled, click should have no impact]
|
[If label's 1st child (submit) is disabled, click should have no impact]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[mozbrowser_loadevents.html]
|
||||||
|
type: testharness
|
||||||
|
[mozbrowserloadstart, mozbrowserconnected and mozbrowserloadend are dispatched]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -12,13 +12,13 @@ async_test(function(t) {
|
||||||
var url1 = `data:text/html,<script>setTimeout(() => location.assign("${url2}"), 0)</${"script"}>`;
|
var url1 = `data:text/html,<script>setTimeout(() => location.assign("${url2}"), 0)</${"script"}>`;
|
||||||
|
|
||||||
var locations = []
|
var locations = []
|
||||||
var expected_locations = [url1, url2, url1];
|
var expected_locations = ["about:blank", url1, url2, url1];
|
||||||
|
|
||||||
var iframe = document.createElement("iframe");
|
var iframe = document.createElement("iframe");
|
||||||
iframe.mozbrowser = "true";
|
iframe.mozbrowser = "true";
|
||||||
iframe.src = url1;
|
iframe.src = url1;
|
||||||
|
|
||||||
iframe.addEventListener("mozbrowserlocationchange", e => {
|
iframe.addEventListener("mozbrowserlocationchange", t.step_func(e => {
|
||||||
locations.push(e.detail.url);
|
locations.push(e.detail.url);
|
||||||
if (e.detail.url == url2) {
|
if (e.detail.url == url2) {
|
||||||
iframe.goBack();
|
iframe.goBack();
|
||||||
|
@ -27,7 +27,7 @@ async_test(function(t) {
|
||||||
assert_array_equals(locations, expected_locations);
|
assert_array_equals(locations, expected_locations);
|
||||||
t.done();
|
t.done();
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
|
|
||||||
document.body.appendChild(iframe);
|
document.body.appendChild(iframe);
|
||||||
|
|
||||||
|
|
|
@ -14,24 +14,29 @@ async_test(function(t) {
|
||||||
|
|
||||||
var received_events = []
|
var received_events = []
|
||||||
var expected_events = [
|
var expected_events = [
|
||||||
url1, false, false,
|
"about:blank", false, false,
|
||||||
|
url1, true, false,
|
||||||
url2, true, false,
|
url2, true, false,
|
||||||
url3, true, false,
|
url3, true, false,
|
||||||
url2, true, true,
|
url2, true, true,
|
||||||
url1, false, true,
|
url1, true, true,
|
||||||
|
"about:blank", false, true,
|
||||||
|
url1, true, true,
|
||||||
url2, true, true,
|
url2, true, true,
|
||||||
url3, true, false,
|
url3, true, false,
|
||||||
];
|
];
|
||||||
|
|
||||||
var iframe = document.createElement("iframe");
|
var iframe = document.createElement("iframe");
|
||||||
iframe.mozbrowser = "true";
|
iframe.mozbrowser = "true";
|
||||||
iframe.src = url1;
|
|
||||||
|
|
||||||
var actions = [
|
var actions = [
|
||||||
|
function() {iframe.src = url1},
|
||||||
function() {iframe.src = url2},
|
function() {iframe.src = url2},
|
||||||
function() {iframe.src = url3},
|
function() {iframe.src = url3},
|
||||||
function() {iframe.goBack()},
|
function() {iframe.goBack()},
|
||||||
function() {iframe.goBack()},
|
function() {iframe.goBack()},
|
||||||
|
function() {iframe.goBack()},
|
||||||
|
function() {iframe.goForward()},
|
||||||
function() {iframe.goForward()},
|
function() {iframe.goForward()},
|
||||||
function() {iframe.goForward()},
|
function() {iframe.goForward()},
|
||||||
];
|
];
|
||||||
|
|
|
@ -9,9 +9,17 @@
|
||||||
var iframe = document.createElement("iframe");
|
var iframe = document.createElement("iframe");
|
||||||
iframe.mozbrowser = "true";
|
iframe.mozbrowser = "true";
|
||||||
iframe.src = "redirect_init.html?pipe=status(302)|header(Location,redirect_final.html)";
|
iframe.src = "redirect_init.html?pipe=status(302)|header(Location,redirect_final.html)";
|
||||||
|
var i = 0;
|
||||||
iframe.addEventListener("mozbrowserlocationchange", t.step_func(e => {
|
iframe.addEventListener("mozbrowserlocationchange", t.step_func(e => {
|
||||||
|
switch (++i) {
|
||||||
|
case 1:
|
||||||
|
assert_equals(e.detail.url, "about:blank");
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
assert_equals(e.detail.url, new URL("redirect_final.html", location).href);
|
assert_equals(e.detail.url, new URL("redirect_final.html", location).href);
|
||||||
t.done();
|
t.done();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}));
|
}));
|
||||||
document.body.appendChild(iframe);
|
document.body.appendChild(iframe);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue