mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
script: Implement <meta http-equiv="refresh">
(#31468)
* script: Implement <meta http-equiv="refresh"> * Address review comments
This commit is contained in:
parent
ee122acdf4
commit
0beec63c86
19 changed files with 227 additions and 396 deletions
|
@ -140,6 +140,7 @@ use crate::dom::htmlhtmlelement::HTMLHtmlElement;
|
||||||
use crate::dom::htmliframeelement::HTMLIFrameElement;
|
use crate::dom::htmliframeelement::HTMLIFrameElement;
|
||||||
use crate::dom::htmlimageelement::HTMLImageElement;
|
use crate::dom::htmlimageelement::HTMLImageElement;
|
||||||
use crate::dom::htmlinputelement::HTMLInputElement;
|
use crate::dom::htmlinputelement::HTMLInputElement;
|
||||||
|
use crate::dom::htmlmetaelement::RefreshRedirectDue;
|
||||||
use crate::dom::htmlscriptelement::{HTMLScriptElement, ScriptResult};
|
use crate::dom::htmlscriptelement::{HTMLScriptElement, ScriptResult};
|
||||||
use crate::dom::htmltextareaelement::HTMLTextAreaElement;
|
use crate::dom::htmltextareaelement::HTMLTextAreaElement;
|
||||||
use crate::dom::htmltitleelement::HTMLTitleElement;
|
use crate::dom::htmltitleelement::HTMLTitleElement;
|
||||||
|
@ -233,6 +234,17 @@ enum FocusTransaction {
|
||||||
InTransaction(Option<Dom<Element>>),
|
InTransaction(Option<Dom<Element>>),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Information about a declarative refresh
|
||||||
|
#[derive(JSTraceable, MallocSizeOf)]
|
||||||
|
pub enum DeclarativeRefresh {
|
||||||
|
PendingLoad {
|
||||||
|
#[no_trace]
|
||||||
|
url: ServoUrl,
|
||||||
|
time: u64,
|
||||||
|
},
|
||||||
|
CreatedAfterLoad,
|
||||||
|
}
|
||||||
|
|
||||||
/// <https://dom.spec.whatwg.org/#document>
|
/// <https://dom.spec.whatwg.org/#document>
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
pub struct Document {
|
pub struct Document {
|
||||||
|
@ -435,6 +447,8 @@ pub struct Document {
|
||||||
animations: DomRefCell<Animations>,
|
animations: DomRefCell<Animations>,
|
||||||
/// The nearest inclusive ancestors to all the nodes that require a restyle.
|
/// The nearest inclusive ancestors to all the nodes that require a restyle.
|
||||||
dirty_root: MutNullableDom<Element>,
|
dirty_root: MutNullableDom<Element>,
|
||||||
|
/// <https://html.spec.whatwg.org/multipage/#will-declaratively-refresh>
|
||||||
|
declarative_refresh: DomRefCell<Option<DeclarativeRefresh>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(JSTraceable, MallocSizeOf)]
|
#[derive(JSTraceable, MallocSizeOf)]
|
||||||
|
@ -2399,6 +2413,19 @@ impl Document {
|
||||||
task!(completely_loaded: move || {
|
task!(completely_loaded: move || {
|
||||||
let document = document.root();
|
let document = document.root();
|
||||||
document.completely_loaded.set(true);
|
document.completely_loaded.set(true);
|
||||||
|
if let Some(DeclarativeRefresh::PendingLoad {
|
||||||
|
url,
|
||||||
|
time
|
||||||
|
}) = &*document.declarative_refresh.borrow() {
|
||||||
|
// https://html.spec.whatwg.org/multipage/#shared-declarative-refresh-steps
|
||||||
|
document.window.upcast::<GlobalScope>().schedule_callback(
|
||||||
|
OneshotTimerCallback::RefreshRedirectDue(RefreshRedirectDue {
|
||||||
|
window: window_from_node(&*document),
|
||||||
|
url: url.clone(),
|
||||||
|
}),
|
||||||
|
MsDuration::new(time.saturating_mul(1000)),
|
||||||
|
);
|
||||||
|
}
|
||||||
// Note: this will, among others, result in the "iframe-load-event-steps" being run.
|
// Note: this will, among others, result in the "iframe-load-event-steps" being run.
|
||||||
// https://html.spec.whatwg.org/multipage/#iframe-load-event-steps
|
// https://html.spec.whatwg.org/multipage/#iframe-load-event-steps
|
||||||
document.notify_constellation_load();
|
document.notify_constellation_load();
|
||||||
|
@ -2409,6 +2436,10 @@ impl Document {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn completely_loaded(&self) -> bool {
|
||||||
|
self.completely_loaded.get()
|
||||||
|
}
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#pending-parsing-blocking-script
|
// https://html.spec.whatwg.org/multipage/#pending-parsing-blocking-script
|
||||||
pub fn set_pending_parsing_blocking_script(
|
pub fn set_pending_parsing_blocking_script(
|
||||||
&self,
|
&self,
|
||||||
|
@ -3195,6 +3226,7 @@ impl Document {
|
||||||
},
|
},
|
||||||
animations: DomRefCell::new(Animations::new()),
|
animations: DomRefCell::new(Animations::new()),
|
||||||
dirty_root: Default::default(),
|
dirty_root: Default::default(),
|
||||||
|
declarative_refresh: Default::default(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3940,6 +3972,13 @@ impl Document {
|
||||||
pub(crate) fn cancel_animations_for_node(&self, node: &Node) {
|
pub(crate) fn cancel_animations_for_node(&self, node: &Node) {
|
||||||
self.animations.borrow().cancel_animations_for_node(node);
|
self.animations.borrow().cancel_animations_for_node(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub(crate) fn will_declaratively_refresh(&self) -> bool {
|
||||||
|
self.declarative_refresh.borrow().is_some()
|
||||||
|
}
|
||||||
|
pub(crate) fn set_declarative_refresh(&self, refresh: DeclarativeRefresh) {
|
||||||
|
*self.declarative_refresh.borrow_mut() = Some(refresh);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Element {
|
impl Element {
|
||||||
|
|
|
@ -2,29 +2,57 @@
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
use std::str::FromStr;
|
||||||
|
|
||||||
use dom_struct::dom_struct;
|
use dom_struct::dom_struct;
|
||||||
use html5ever::{LocalName, Prefix};
|
use html5ever::{LocalName, Prefix};
|
||||||
use js::rust::HandleObject;
|
use js::rust::HandleObject;
|
||||||
|
use regex::bytes::Regex;
|
||||||
|
use script_traits::{HistoryEntryReplacement, MsDuration};
|
||||||
|
use servo_url::ServoUrl;
|
||||||
use style::str::HTML_SPACE_CHARACTERS;
|
use style::str::HTML_SPACE_CHARACTERS;
|
||||||
|
|
||||||
use crate::dom::attr::Attr;
|
use crate::dom::attr::Attr;
|
||||||
|
use crate::dom::bindings::cell::DomRefCell;
|
||||||
use crate::dom::bindings::codegen::Bindings::HTMLMetaElementBinding::HTMLMetaElementMethods;
|
use crate::dom::bindings::codegen::Bindings::HTMLMetaElementBinding::HTMLMetaElementMethods;
|
||||||
use crate::dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
|
use crate::dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
|
||||||
|
use crate::dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
|
||||||
use crate::dom::bindings::inheritance::Castable;
|
use crate::dom::bindings::inheritance::Castable;
|
||||||
use crate::dom::bindings::root::DomRoot;
|
use crate::dom::bindings::root::DomRoot;
|
||||||
use crate::dom::bindings::str::DOMString;
|
use crate::dom::bindings::str::DOMString;
|
||||||
use crate::dom::document::Document;
|
use crate::dom::document::{DeclarativeRefresh, Document};
|
||||||
use crate::dom::element::{AttributeMutation, Element};
|
use crate::dom::element::{AttributeMutation, Element};
|
||||||
|
use crate::dom::globalscope::GlobalScope;
|
||||||
use crate::dom::htmlelement::HTMLElement;
|
use crate::dom::htmlelement::HTMLElement;
|
||||||
use crate::dom::htmlheadelement::HTMLHeadElement;
|
use crate::dom::htmlheadelement::HTMLHeadElement;
|
||||||
use crate::dom::node::{BindContext, Node, UnbindContext};
|
use crate::dom::location::NavigationType;
|
||||||
|
use crate::dom::node::{document_from_node, window_from_node, BindContext, Node, UnbindContext};
|
||||||
use crate::dom::virtualmethods::VirtualMethods;
|
use crate::dom::virtualmethods::VirtualMethods;
|
||||||
|
use crate::dom::window::Window;
|
||||||
|
use crate::timers::OneshotTimerCallback;
|
||||||
|
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
pub struct HTMLMetaElement {
|
pub struct HTMLMetaElement {
|
||||||
htmlelement: HTMLElement,
|
htmlelement: HTMLElement,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(JSTraceable, MallocSizeOf)]
|
||||||
|
pub struct RefreshRedirectDue {
|
||||||
|
#[no_trace]
|
||||||
|
pub url: ServoUrl,
|
||||||
|
#[ignore_malloc_size_of = "non-owning"]
|
||||||
|
pub window: DomRoot<Window>,
|
||||||
|
}
|
||||||
|
impl RefreshRedirectDue {
|
||||||
|
pub fn invoke(self) {
|
||||||
|
self.window.Location().navigate(
|
||||||
|
self.url.clone(),
|
||||||
|
HistoryEntryReplacement::Enabled,
|
||||||
|
NavigationType::DeclarativeRefresh,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl HTMLMetaElement {
|
impl HTMLMetaElement {
|
||||||
fn new_inherited(
|
fn new_inherited(
|
||||||
local_name: LocalName,
|
local_name: LocalName,
|
||||||
|
@ -58,6 +86,8 @@ impl HTMLMetaElement {
|
||||||
if name == "referrer" {
|
if name == "referrer" {
|
||||||
self.apply_referrer();
|
self.apply_referrer();
|
||||||
}
|
}
|
||||||
|
} else if &*self.HttpEquiv() != "" {
|
||||||
|
self.declarative_refresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,6 +111,96 @@ impl HTMLMetaElement {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <https://html.spec.whatwg.org/multipage/#shared-declarative-refresh-steps>
|
||||||
|
fn declarative_refresh(&self) {
|
||||||
|
// 2
|
||||||
|
let content = self.Content();
|
||||||
|
// 1
|
||||||
|
if !content.is_empty() {
|
||||||
|
// 3
|
||||||
|
self.shared_declarative_refresh_steps(content);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <https://html.spec.whatwg.org/multipage/#shared-declarative-refresh-steps>
|
||||||
|
fn shared_declarative_refresh_steps(&self, content: DOMString) {
|
||||||
|
// 1
|
||||||
|
let document = document_from_node(self);
|
||||||
|
if document.will_declaratively_refresh() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2-11
|
||||||
|
lazy_static::lazy_static! {
|
||||||
|
static ref REFRESH_REGEX: Regex = Regex::new(
|
||||||
|
r#"(?x)
|
||||||
|
^
|
||||||
|
\s* # 3
|
||||||
|
((?<time>\d+)\.?|\.) # 5-6
|
||||||
|
[0-9.]* # 8
|
||||||
|
(
|
||||||
|
(;|,| ) # 10.1
|
||||||
|
\s* # 10.2
|
||||||
|
(;|,)? # 10.3
|
||||||
|
\s* # 10.4
|
||||||
|
(
|
||||||
|
(U|u)(R|r)(L|l) # 11.2-11.4
|
||||||
|
\s*=\s* # 11.5-11.7
|
||||||
|
('(?<url1>.*?)'?|"(?<url2>.*?)"?|(?<url3>[^'"].*)) # 11.8 - 11.10
|
||||||
|
|
|
||||||
|
(?<url4>.*)
|
||||||
|
)?
|
||||||
|
)?
|
||||||
|
$
|
||||||
|
"#,
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
let mut url_record = document.url();
|
||||||
|
let captures = if let Some(captures) = REFRESH_REGEX.captures(content.as_bytes()) {
|
||||||
|
captures
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
let time = if let Some(time_string) = captures.name("time") {
|
||||||
|
u64::from_str(&String::from_utf8_lossy(time_string.as_bytes())).unwrap_or(0)
|
||||||
|
} else {
|
||||||
|
0
|
||||||
|
};
|
||||||
|
let captured_url = captures.name("url1").or(captures
|
||||||
|
.name("url2")
|
||||||
|
.or(captures.name("url3").or(captures.name("url4"))));
|
||||||
|
|
||||||
|
if let Some(url_match) = captured_url {
|
||||||
|
url_record = if let Ok(url) = ServoUrl::parse_with_base(
|
||||||
|
Some(&url_record),
|
||||||
|
&String::from_utf8_lossy(url_match.as_bytes()),
|
||||||
|
) {
|
||||||
|
url
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 12-13
|
||||||
|
if document.completely_loaded() {
|
||||||
|
// TODO: handle active sandboxing flag
|
||||||
|
let window = window_from_node(self);
|
||||||
|
window.upcast::<GlobalScope>().schedule_callback(
|
||||||
|
OneshotTimerCallback::RefreshRedirectDue(RefreshRedirectDue {
|
||||||
|
window: window.clone(),
|
||||||
|
url: url_record,
|
||||||
|
}),
|
||||||
|
MsDuration::new(time.saturating_mul(1000)),
|
||||||
|
);
|
||||||
|
document.set_declarative_refresh(DeclarativeRefresh::CreatedAfterLoad);
|
||||||
|
} else {
|
||||||
|
document.set_declarative_refresh(DeclarativeRefresh::PendingLoad {
|
||||||
|
url: url_record,
|
||||||
|
time,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl HTMLMetaElementMethods for HTMLMetaElement {
|
impl HTMLMetaElementMethods for HTMLMetaElement {
|
||||||
|
@ -95,6 +215,11 @@ impl HTMLMetaElementMethods for HTMLMetaElement {
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#dom-meta-content
|
// https://html.spec.whatwg.org/multipage/#dom-meta-content
|
||||||
make_setter!(SetContent, "content");
|
make_setter!(SetContent, "content");
|
||||||
|
|
||||||
|
// https://html.spec.whatwg.org/multipage/#dom-meta-httpequiv
|
||||||
|
make_getter!(HttpEquiv, "http-equiv");
|
||||||
|
// https://html.spec.whatwg.org/multipage/#dom-meta-httpequiv
|
||||||
|
make_atomic_setter!(SetHttpEquiv, "http-equiv");
|
||||||
}
|
}
|
||||||
|
|
||||||
impl VirtualMethods for HTMLMetaElement {
|
impl VirtualMethods for HTMLMetaElement {
|
||||||
|
|
|
@ -19,7 +19,7 @@ use crate::dom::urlhelper::UrlHelper;
|
||||||
use crate::dom::window::Window;
|
use crate::dom::window::Window;
|
||||||
|
|
||||||
#[derive(PartialEq)]
|
#[derive(PartialEq)]
|
||||||
enum NavigationType {
|
pub enum NavigationType {
|
||||||
/// The "[`Location`-object navigate][1]" steps.
|
/// The "[`Location`-object navigate][1]" steps.
|
||||||
///
|
///
|
||||||
/// [1]: https://html.spec.whatwg.org/multipage/#location-object-navigate
|
/// [1]: https://html.spec.whatwg.org/multipage/#location-object-navigate
|
||||||
|
@ -35,6 +35,11 @@ enum NavigationType {
|
||||||
///
|
///
|
||||||
/// [1]: https://html.spec.whatwg.org/multipage/#dom-location-reload
|
/// [1]: https://html.spec.whatwg.org/multipage/#dom-location-reload
|
||||||
ReloadByConstellation,
|
ReloadByConstellation,
|
||||||
|
|
||||||
|
/// Reload triggered by a [declarative refresh][1].
|
||||||
|
///
|
||||||
|
/// [1]: https://html.spec.whatwg.org/multipage/#shared-declarative-refresh-steps
|
||||||
|
DeclarativeRefresh,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
|
@ -56,7 +61,7 @@ impl Location {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Navigate the relevant `Document`'s browsing context.
|
/// Navigate the relevant `Document`'s browsing context.
|
||||||
fn navigate(
|
pub fn navigate(
|
||||||
&self,
|
&self,
|
||||||
url: ServoUrl,
|
url: ServoUrl,
|
||||||
replacement_flag: HistoryEntryReplacement,
|
replacement_flag: HistoryEntryReplacement,
|
||||||
|
@ -70,7 +75,9 @@ impl Location {
|
||||||
// The active document of the source browsing context used for
|
// The active document of the source browsing context used for
|
||||||
// navigation determines the request's referrer and referrer policy.
|
// navigation determines the request's referrer and referrer policy.
|
||||||
let source_window = match navigation_type {
|
let source_window = match navigation_type {
|
||||||
NavigationType::ReloadByScript | NavigationType::ReloadByConstellation => {
|
NavigationType::ReloadByScript |
|
||||||
|
NavigationType::ReloadByConstellation |
|
||||||
|
NavigationType::DeclarativeRefresh => {
|
||||||
// > Navigate the browsing context [...] the source browsing context
|
// > Navigate the browsing context [...] the source browsing context
|
||||||
// > set to the browsing context being navigated.
|
// > set to the browsing context being navigated.
|
||||||
DomRoot::from_ref(&*self.window)
|
DomRoot::from_ref(&*self.window)
|
||||||
|
@ -92,7 +99,9 @@ impl Location {
|
||||||
// > node document of the element that initiated the navigation.
|
// > node document of the element that initiated the navigation.
|
||||||
let navigation_origin_window = match navigation_type {
|
let navigation_origin_window = match navigation_type {
|
||||||
NavigationType::Normal | NavigationType::ReloadByScript => incumbent_window(),
|
NavigationType::Normal | NavigationType::ReloadByScript => incumbent_window(),
|
||||||
NavigationType::ReloadByConstellation => DomRoot::from_ref(&*self.window),
|
NavigationType::ReloadByConstellation | NavigationType::DeclarativeRefresh => {
|
||||||
|
DomRoot::from_ref(&*self.window)
|
||||||
|
},
|
||||||
};
|
};
|
||||||
let (load_origin, creator_pipeline_id) = (
|
let (load_origin, creator_pipeline_id) = (
|
||||||
navigation_origin_window.origin().immutable().clone(),
|
navigation_origin_window.origin().immutable().clone(),
|
||||||
|
@ -102,7 +111,7 @@ impl Location {
|
||||||
// Is `historyHandling` `reload`?
|
// Is `historyHandling` `reload`?
|
||||||
let reload_triggered = match navigation_type {
|
let reload_triggered = match navigation_type {
|
||||||
NavigationType::ReloadByScript | NavigationType::ReloadByConstellation => true,
|
NavigationType::ReloadByScript | NavigationType::ReloadByConstellation => true,
|
||||||
NavigationType::Normal => false,
|
NavigationType::Normal | NavigationType::DeclarativeRefresh => false,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Initiate navigation
|
// Initiate navigation
|
||||||
|
|
|
@ -9,8 +9,8 @@ interface HTMLMetaElement : HTMLElement {
|
||||||
|
|
||||||
[CEReactions]
|
[CEReactions]
|
||||||
attribute DOMString name;
|
attribute DOMString name;
|
||||||
// [CEReactions]
|
[CEReactions]
|
||||||
// attribute DOMString httpEquiv;
|
attribute DOMString httpEquiv;
|
||||||
[CEReactions]
|
[CEReactions]
|
||||||
attribute DOMString content;
|
attribute DOMString content;
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ use crate::dom::bindings::str::DOMString;
|
||||||
use crate::dom::document::FakeRequestAnimationFrameCallback;
|
use crate::dom::document::FakeRequestAnimationFrameCallback;
|
||||||
use crate::dom::eventsource::EventSourceTimeoutCallback;
|
use crate::dom::eventsource::EventSourceTimeoutCallback;
|
||||||
use crate::dom::globalscope::GlobalScope;
|
use crate::dom::globalscope::GlobalScope;
|
||||||
|
use crate::dom::htmlmetaelement::RefreshRedirectDue;
|
||||||
use crate::dom::testbinding::TestBindingCallback;
|
use crate::dom::testbinding::TestBindingCallback;
|
||||||
use crate::dom::xmlhttprequest::XHRTimeoutCallback;
|
use crate::dom::xmlhttprequest::XHRTimeoutCallback;
|
||||||
use crate::script_module::ScriptFetchOptions;
|
use crate::script_module::ScriptFetchOptions;
|
||||||
|
@ -89,6 +90,7 @@ pub enum OneshotTimerCallback {
|
||||||
JsTimer(JsTimerTask),
|
JsTimer(JsTimerTask),
|
||||||
TestBindingCallback(TestBindingCallback),
|
TestBindingCallback(TestBindingCallback),
|
||||||
FakeRequestAnimationFrame(FakeRequestAnimationFrameCallback),
|
FakeRequestAnimationFrame(FakeRequestAnimationFrameCallback),
|
||||||
|
RefreshRedirectDue(RefreshRedirectDue),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl OneshotTimerCallback {
|
impl OneshotTimerCallback {
|
||||||
|
@ -99,6 +101,7 @@ impl OneshotTimerCallback {
|
||||||
OneshotTimerCallback::JsTimer(task) => task.invoke(this, js_timers),
|
OneshotTimerCallback::JsTimer(task) => task.invoke(this, js_timers),
|
||||||
OneshotTimerCallback::TestBindingCallback(callback) => callback.invoke(),
|
OneshotTimerCallback::TestBindingCallback(callback) => callback.invoke(),
|
||||||
OneshotTimerCallback::FakeRequestAnimationFrame(callback) => callback.invoke(),
|
OneshotTimerCallback::FakeRequestAnimationFrame(callback) => callback.invoke(),
|
||||||
|
OneshotTimerCallback::RefreshRedirectDue(callback) => callback.invoke(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
[HTMLMetaElement.html]
|
|
||||||
[httpEquiv on HTMLMetaElement must enqueue an attributeChanged reaction when adding a new attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[httpEquiv on HTMLMetaElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
|
@ -1,55 +1,51 @@
|
||||||
[element-meta-refresh.https.optional.sub.html]
|
[element-meta-refresh.https.optional.sub.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[sec-fetch-site - Same origin]
|
[sec-fetch-site - Same origin]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Cross-site]
|
[sec-fetch-site - Cross-site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same site]
|
[sec-fetch-site - Same site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect]
|
[sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect]
|
[sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Cross-Site -> Same Origin]
|
[sec-fetch-site - Cross-Site -> Same Origin]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Cross-Site -> Same-Site]
|
[sec-fetch-site - Cross-Site -> Same-Site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Cross-Site -> Cross-Site]
|
[sec-fetch-site - Cross-Site -> Cross-Site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Origin -> Same Origin]
|
[sec-fetch-site - Same-Origin -> Same Origin]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Origin -> Same-Site]
|
[sec-fetch-site - Same-Origin -> Same-Site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Origin -> Cross-Site]
|
[sec-fetch-site - Same-Origin -> Cross-Site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Site -> Same Origin]
|
[sec-fetch-site - Same-Site -> Same Origin]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Site -> Same-Site]
|
[sec-fetch-site - Same-Site -> Same-Site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Site -> Cross-Site]
|
[sec-fetch-site - Same-Site -> Cross-Site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - HTTPS downgrade-upgrade]
|
[sec-fetch-site - HTTPS downgrade-upgrade]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-mode]
|
[sec-fetch-mode]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-dest]
|
[sec-fetch-dest]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-user]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
|
@ -1,46 +1,6 @@
|
||||||
[element-meta-refresh.optional.sub.html]
|
[element-meta-refresh.optional.sub.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[sec-fetch-site - Not sent to non-trustworthy same-origin destination]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
||||||
[sec-fetch-site - Not sent to non-trustworthy same-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-site - Not sent to non-trustworthy cross-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-mode - Not sent to non-trustworthy same-origin destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-mode - Not sent to non-trustworthy same-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-mode - Not sent to non-trustworthy cross-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-dest - Not sent to non-trustworthy same-origin destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-dest - Not sent to non-trustworthy same-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-dest - Not sent to non-trustworthy cross-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-user - Not sent to non-trustworthy same-origin destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-user - Not sent to non-trustworthy same-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-user - Not sent to non-trustworthy cross-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-site - HTTPS downgrade (header not sent)]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-site - HTTPS upgrade]
|
[sec-fetch-site - HTTPS upgrade]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - HTTPS downgrade-upgrade]
|
[sec-fetch-site - HTTPS downgrade-upgrade]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
|
@ -3891,9 +3891,6 @@
|
||||||
[HTMLObjectElement interface: attribute archive]
|
[HTMLObjectElement interface: attribute archive]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[HTMLMetaElement interface: attribute httpEquiv]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[HTMLMarqueeElement interface: attribute onbounce]
|
[HTMLMarqueeElement interface: attribute onbounce]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -4281,9 +4278,6 @@
|
||||||
[HTMLMarqueeElement interface: attribute height]
|
[HTMLMarqueeElement interface: attribute height]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[HTMLMetaElement interface: document.createElement("meta") must inherit property "httpEquiv" with the proper type]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[HTMLImageElement interface: new Image() must inherit property "decoding" with the proper type]
|
[HTMLImageElement interface: new Image() must inherit property "decoding" with the proper type]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -3609,12 +3609,6 @@
|
||||||
[meta.tabIndex: IDL set to -2147483648 followed by getAttribute()]
|
[meta.tabIndex: IDL set to -2147483648 followed by getAttribute()]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): typeof IDL attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL get with DOM attribute unset]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to "" followed by IDL get]
|
[meta.httpEquiv (<meta http-equiv>): setAttribute() to "" followed by IDL get]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -8229,96 +8223,6 @@
|
||||||
[meta.tabIndex: IDL set to -2147483648]
|
[meta.tabIndex: IDL set to -2147483648]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to ""]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to undefined]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to 7]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to 1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to true]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to false]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to object "[object Object\]"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to NaN]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to Infinity]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to -Infinity]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to "\\0"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to null]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to object "test-toString"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to object "test-valueOf"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to ""]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to undefined]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to 7]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to 1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to true]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to false]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to object "[object Object\]"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to NaN]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to Infinity]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to -Infinity]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to "\\0"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to null]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to object "test-toString"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to object "test-valueOf"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.scheme: setAttribute() to ""]
|
[meta.scheme: setAttribute() to ""]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -10017,9 +9921,6 @@
|
||||||
[title.accessKey: IDL set to "5%"]
|
[title.accessKey: IDL set to "5%"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to "5%"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[style.type: setAttribute() to "5%"]
|
[style.type: setAttribute() to "5%"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -10059,9 +9960,6 @@
|
||||||
[style.media: IDL set to "5%"]
|
[style.media: IDL set to "5%"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to "5%"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[head.accessKey: setAttribute() to "5%"]
|
[head.accessKey: setAttribute() to "5%"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -10179,9 +10077,6 @@
|
||||||
[base.accessKey: IDL set to "+100"]
|
[base.accessKey: IDL set to "+100"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to ".5"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[title.accessKey: setAttribute() to "+100"]
|
[title.accessKey: setAttribute() to "+100"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -10215,12 +10110,6 @@
|
||||||
[base.accessKey: setAttribute() to ".5"]
|
[base.accessKey: setAttribute() to ".5"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to ".5"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to "+100"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[head.accessKey: IDL set to ".5"]
|
[head.accessKey: IDL set to ".5"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -10275,9 +10164,6 @@
|
||||||
[meta.tabIndex: setAttribute() to "+100"]
|
[meta.tabIndex: setAttribute() to "+100"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to "+100"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[base.accessKey: IDL set to ".5"]
|
[base.accessKey: IDL set to ".5"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[test-timing-client-redirect.html]
|
|
||||||
expected: TIMEOUT
|
|
|
@ -1,14 +1,13 @@
|
||||||
[resource_subframe_self_navigation.html]
|
[resource_subframe_self_navigation.html]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[Subsequent <iframe> navigations don't appear in the resource-timing buffer.]
|
[Subsequent <iframe> navigations don't appear in the resource-timing buffer.]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
[Subsequent <frame> navigations don't appear in the resource-timing buffer.]
|
[Subsequent <frame> navigations don't appear in the resource-timing buffer.]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Subsequent <embed> navigations don't appear in the resource-timing buffer.]
|
[Subsequent <embed> navigations don't appear in the resource-timing buffer.]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Subsequent <object> navigations don't appear in the resource-timing buffer.]
|
[Subsequent <object> navigations don't appear in the resource-timing buffer.]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
[HTMLMetaElement.html]
|
|
||||||
[httpEquiv on HTMLMetaElement must enqueue an attributeChanged reaction when adding a new attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[httpEquiv on HTMLMetaElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
|
@ -1,55 +1,51 @@
|
||||||
[element-meta-refresh.https.optional.sub.html]
|
[element-meta-refresh.https.optional.sub.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[sec-fetch-site - Same origin]
|
[sec-fetch-site - Same origin]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Cross-site]
|
[sec-fetch-site - Cross-site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same site]
|
[sec-fetch-site - Same site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect]
|
[sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect]
|
[sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Cross-Site -> Same Origin]
|
[sec-fetch-site - Cross-Site -> Same Origin]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Cross-Site -> Same-Site]
|
[sec-fetch-site - Cross-Site -> Same-Site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Cross-Site -> Cross-Site]
|
[sec-fetch-site - Cross-Site -> Cross-Site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Origin -> Same Origin]
|
[sec-fetch-site - Same-Origin -> Same Origin]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Origin -> Same-Site]
|
[sec-fetch-site - Same-Origin -> Same-Site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Origin -> Cross-Site]
|
[sec-fetch-site - Same-Origin -> Cross-Site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Site -> Same Origin]
|
[sec-fetch-site - Same-Site -> Same Origin]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Site -> Same-Site]
|
[sec-fetch-site - Same-Site -> Same-Site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - Same-Site -> Cross-Site]
|
[sec-fetch-site - Same-Site -> Cross-Site]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - HTTPS downgrade-upgrade]
|
[sec-fetch-site - HTTPS downgrade-upgrade]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-mode]
|
[sec-fetch-mode]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-dest]
|
[sec-fetch-dest]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-user]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
|
@ -1,46 +1,6 @@
|
||||||
[element-meta-refresh.optional.sub.html]
|
[element-meta-refresh.optional.sub.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[sec-fetch-site - Not sent to non-trustworthy same-origin destination]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
||||||
[sec-fetch-site - Not sent to non-trustworthy same-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-site - Not sent to non-trustworthy cross-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-mode - Not sent to non-trustworthy same-origin destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-mode - Not sent to non-trustworthy same-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-mode - Not sent to non-trustworthy cross-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-dest - Not sent to non-trustworthy same-origin destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-dest - Not sent to non-trustworthy same-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-dest - Not sent to non-trustworthy cross-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-user - Not sent to non-trustworthy same-origin destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-user - Not sent to non-trustworthy same-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-user - Not sent to non-trustworthy cross-site destination]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-site - HTTPS downgrade (header not sent)]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[sec-fetch-site - HTTPS upgrade]
|
[sec-fetch-site - HTTPS upgrade]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[sec-fetch-site - HTTPS downgrade-upgrade]
|
[sec-fetch-site - HTTPS downgrade-upgrade]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
|
@ -3720,9 +3720,6 @@
|
||||||
[HTMLObjectElement interface: attribute archive]
|
[HTMLObjectElement interface: attribute archive]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[HTMLMetaElement interface: attribute httpEquiv]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "loop" with the proper type]
|
[HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "loop" with the proper type]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -4080,9 +4077,6 @@
|
||||||
[HTMLMarqueeElement interface: attribute width]
|
[HTMLMarqueeElement interface: attribute width]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[HTMLMetaElement interface: document.createElement("meta") must inherit property "httpEquiv" with the proper type]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[HTMLImageElement interface: new Image() must inherit property "decoding" with the proper type]
|
[HTMLImageElement interface: new Image() must inherit property "decoding" with the proper type]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -2399,120 +2399,6 @@
|
||||||
[meta.tabIndex: IDL set to -2147483648]
|
[meta.tabIndex: IDL set to -2147483648]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): typeof IDL attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL get with DOM attribute unset]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to ""]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to undefined]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to 7]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to 1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to "5%"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to "+100"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to ".5"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to true]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to false]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to object "[object Object\]"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to NaN]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to Infinity]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to -Infinity]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to "\\0"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to null]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to object "test-toString"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): setAttribute() to object "test-valueOf"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to ""]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to undefined]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to 7]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to 1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to "5%"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to "+100"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to ".5"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to true]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to false]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to object "[object Object\]"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to NaN]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to Infinity]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to -Infinity]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to "\\0"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to null]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to object "test-toString"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.httpEquiv (<meta http-equiv>): IDL set to object "test-valueOf"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[meta.media: typeof IDL attribute]
|
[meta.media: typeof IDL attribute]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[test-timing-client-redirect.html]
|
|
||||||
expected: TIMEOUT
|
|
|
@ -1,10 +1,10 @@
|
||||||
[resource_subframe_self_navigation.html]
|
[resource_subframe_self_navigation.html]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[Subsequent <iframe> navigations don't appear in the resource-timing buffer.]
|
[Subsequent <iframe> navigations don't appear in the resource-timing buffer.]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
[Subsequent <frame> navigations don't appear in the resource-timing buffer.]
|
[Subsequent <frame> navigations don't appear in the resource-timing buffer.]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Subsequent <embed> navigations don't appear in the resource-timing buffer.]
|
[Subsequent <embed> navigations don't appear in the resource-timing buffer.]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue