diff options
author | jaymodi98 <jaymodi98@gmail.com> | 2019-10-28 17:21:45 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2019-11-12 13:57:54 -0500 |
commit | bf69b6fea7c7eed2ba3b96e5c77573f25b7929ed (patch) | |
tree | fb0632e7edc62d80dcd133ef9adeb1b093c923ce | |
parent | 944c1e9f976a4daf5ba640d889f0b00a06d15a17 (diff) | |
download | servo-bf69b6fea7c7eed2ba3b96e5c77573f25b7929ed.tar.gz servo-bf69b6fea7c7eed2ba3b96e5c77573f25b7929ed.zip |
Implement srcdoc support for iframes.
56 files changed, 116 insertions, 172 deletions
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index e58e65ea5bb..df94aeb361c 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -229,7 +229,30 @@ impl HTMLIFrameElement { /// <https://html.spec.whatwg.org/multipage/#process-the-iframe-attributes> fn process_the_iframe_attributes(&self, mode: ProcessingMode) { - // TODO: srcdoc + if self + .upcast::<Element>() + .has_attribute(&local_name!("srcdoc")) + { + let url = ServoUrl::parse("about:srcdoc").unwrap(); + let document = document_from_node(self); + let window = window_from_node(self); + let pipeline_id = Some(window.upcast::<GlobalScope>().pipeline_id()); + let mut load_data = LoadData::new( + LoadOrigin::Script(document.origin().immutable().clone()), + url, + pipeline_id, + Some(Referrer::ReferrerUrl(document.url())), + document.get_referrer_policy(), + ); + let element = self.upcast::<Element>(); + load_data.srcdoc = String::from(element.get_string_attribute(&local_name!("srcdoc"))); + self.navigate_or_reload_child_browsing_context( + load_data, + NavigationType::InitialAboutBlank, + HistoryEntryReplacement::Disabled, + ); + return; + } let window = window_from_node(self); @@ -480,6 +503,12 @@ impl HTMLIFrameElementMethods for HTMLIFrameElement { // https://html.spec.whatwg.org/multipage/#dom-iframe-src make_url_setter!(SetSrc, "src"); + // https://html.spec.whatwg.org/multipage/#dom-iframe-srcdoc + make_getter!(Srcdoc, "srcdoc"); + + // https://html.spec.whatwg.org/multipage/#dom-iframe-srcdoc + make_setter!(SetSrcdoc, "srcdoc"); + // https://html.spec.whatwg.org/multipage/#dom-iframe-sandbox fn Sandbox(&self) -> DomRoot<DOMTokenList> { self.sandbox @@ -580,13 +609,29 @@ impl VirtualMethods for HTMLIFrameElement { modes })); }, + &local_name!("srcdoc") => { + // https://html.spec.whatwg.org/multipage/#the-iframe-element:the-iframe-element-9 + // "Whenever an iframe element with a non-null nested browsing context has its + // srcdoc attribute set, changed, or removed, the user agent must process the + // iframe attributes." + // but we can't check that directly, since the child browsing context + // may be in a different script thread. Instead, we check to see if the parent + // is in a document tree and has a browsing context, which is what causes + // the child browsing context to be created. + + // trigger the processing of iframe attributes whenever "srcdoc" attribute is set, changed or removed + if self.upcast::<Node>().is_connected_with_browsing_context() { + debug!("iframe srcdoc modified while in browsing context."); + self.process_the_iframe_attributes(ProcessingMode::NotFirstTime); + } + }, &local_name!("src") => { // https://html.spec.whatwg.org/multipage/#the-iframe-element // "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, // the user agent must process the iframe attributes," // but we can't check that directly, since the child browsing context - // may be in a different script thread. Instread, we check to see if the parent + // may be in a different script thread. Instead, we check to see if the parent // is in a document tree and has a browsing context, which is what causes // the child browsing context to be created. if self.upcast::<Node>().is_connected_with_browsing_context() { diff --git a/components/script/dom/webidls/HTMLIFrameElement.webidl b/components/script/dom/webidls/HTMLIFrameElement.webidl index acc4f0f201d..b9dd97bdea6 100644 --- a/components/script/dom/webidls/HTMLIFrameElement.webidl +++ b/components/script/dom/webidls/HTMLIFrameElement.webidl @@ -9,8 +9,8 @@ interface HTMLIFrameElement : HTMLElement { [CEReactions] attribute USVString src; - // [CEReactions] - // attribute DOMString srcdoc; + [CEReactions] + attribute DOMString srcdoc; [CEReactions] attribute DOMString name; diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index 191df335ec5..20ac88b7bc1 100644 --- a/components/script/script_thread.rs +++ b/components/script/script_thread.rs @@ -2430,6 +2430,8 @@ impl ScriptThread { ); if load_data.url.as_str() == "about:blank" { self.start_page_load_about_blank(new_load, load_data.js_eval_result); + } else if load_data.url.as_str() == "about:srcdoc" { + self.page_load_about_srcdoc(new_load, load_data.srcdoc); } else { self.pre_page_load(new_load, load_data); } @@ -3177,7 +3179,8 @@ impl ScriptThread { self.timer_event_chan.clone(), ); - let origin = if final_url.as_str() == "about:blank" { + let origin = if final_url.as_str() == "about:blank" || final_url.as_str() == "about:srcdoc" + { incomplete.origin.clone() } else { MutableOrigin::new(final_url.origin()) @@ -3838,6 +3841,25 @@ impl ScriptThread { context.process_response_eof(Ok(ResourceFetchTiming::new(ResourceTimingType::None))); } + /// Synchronously parse a srcdoc document from a giving HTML string. + fn page_load_about_srcdoc(&self, incomplete: InProgressLoad, src_doc: String) { + let id = incomplete.pipeline_id; + + self.incomplete_loads.borrow_mut().push(incomplete); + + let url = ServoUrl::parse("about:srcdoc").unwrap(); + let mut context = ParserContext::new(id, url.clone()); + + let mut meta = Metadata::default(url); + meta.set_content_type(Some(&mime::TEXT_HTML)); + + let chunk = src_doc.into_bytes(); + + context.process_response(Ok(FetchMetadata::Unfiltered(meta))); + context.process_response_chunk(chunk); + context.process_response_eof(Ok(ResourceFetchTiming::new(ResourceTimingType::None))); + } + fn handle_css_error_reporting( &self, pipeline_id: PipelineId, diff --git a/components/script_traits/lib.rs b/components/script_traits/lib.rs index 468cfb19fb3..1b1a0e80e65 100644 --- a/components/script_traits/lib.rs +++ b/components/script_traits/lib.rs @@ -163,6 +163,9 @@ pub struct LoadData { pub referrer: Option<Referrer>, /// The referrer policy. pub referrer_policy: Option<ReferrerPolicy>, + + /// The source to use instead of a network response for a srcdoc document. + pub srcdoc: String, } /// The result of evaluating a javascript scheme url. @@ -194,6 +197,7 @@ impl LoadData { js_eval_result: None, referrer: referrer, referrer_policy: referrer_policy, + srcdoc: "".to_string(), } } } diff --git a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini index 947e223fb28..6a3af4e2ece 100644 --- a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini @@ -14,6 +14,9 @@ [Revoke blob URL after creating Request, will fetch] expected: FAIL + [Revoke blob URL after calling fetch, fetch should succeed] + expected: FAIL + [url-with-fetch.any.html] [Untitled] diff --git a/tests/wpt/metadata/WebIDL/current-realm.html.ini b/tests/wpt/metadata/WebIDL/current-realm.html.ini index 9695e33b235..1e80edc3528 100644 --- a/tests/wpt/metadata/WebIDL/current-realm.html.ini +++ b/tests/wpt/metadata/WebIDL/current-realm.html.ini @@ -1,14 +1,5 @@ [current-realm.html] type: testharness - [NamedNodeMap item] - expected: FAIL - - [NamedNodeMap getNamedItem] - expected: FAIL - - [NamedNodeMap getNamedItemNS] - expected: FAIL - [createImageData] expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/floats/floats-in-table-caption-001.html.ini b/tests/wpt/metadata/css/CSS2/floats/floats-in-table-caption-001.html.ini deleted file mode 100644 index 86715ffc9c2..00000000000 --- a/tests/wpt/metadata/css/CSS2/floats/floats-in-table-caption-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[floats-in-table-caption-001.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/hyphens/hyphens-out-of-flow-001.html.ini b/tests/wpt/metadata/css/css-text/hyphens/hyphens-out-of-flow-001.html.ini deleted file mode 100644 index be32a87e09c..00000000000 --- a/tests/wpt/metadata/css/css-text/hyphens/hyphens-out-of-flow-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[hyphens-out-of-flow-001.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/line-break/line-break-normal-018.xht.ini b/tests/wpt/metadata/css/css-text/line-break/line-break-normal-018.xht.ini deleted file mode 100644 index 693999d7f9d..00000000000 --- a/tests/wpt/metadata/css/css-text/line-break/line-break-normal-018.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[line-break-normal-018.xht] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/line-break/line-break-strict-018.xht.ini b/tests/wpt/metadata/css/css-text/line-break/line-break-strict-018.xht.ini deleted file mode 100644 index bd79bd226f9..00000000000 --- a/tests/wpt/metadata/css/css-text/line-break/line-break-strict-018.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[line-break-strict-018.xht] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-001.html.ini b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-001.html.ini deleted file mode 100644 index ded993140eb..00000000000 --- a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-transform-full-size-kana-001.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-002.html.ini b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-002.html.ini deleted file mode 100644 index 047905d059b..00000000000 --- a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-002.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-transform-full-size-kana-002.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-003.html.ini b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-003.html.ini deleted file mode 100644 index 7e9e3e15a50..00000000000 --- a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-003.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-transform-full-size-kana-003.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-004.html.ini b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-004.html.ini deleted file mode 100644 index f90c86d0e3d..00000000000 --- a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-004.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-transform-full-size-kana-004.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/trailing-ideographic-space-004.html.ini b/tests/wpt/metadata/css/css-text/white-space/trailing-ideographic-space-004.html.ini deleted file mode 100644 index 240d1283c3a..00000000000 --- a/tests/wpt/metadata/css/css-text/white-space/trailing-ideographic-space-004.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[trailing-ideographic-space-004.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini index 03f2f3fe9d1..c511d92d674 100644 --- a/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini +++ b/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini @@ -1,5 +1,4 @@ [perspective-interpolation.html] - expected: CRASH [ perspective interpolation] expected: FAIL diff --git a/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini b/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini index 70a00a101f6..e35a452a186 100644 --- a/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini +++ b/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini @@ -1,2 +1,2 @@ [no-transition-from-ua-to-blocking-stylesheet.html] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini deleted file mode 100644 index e6e1f29e274..00000000000 --- a/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[matchMedia-display-none-iframe.html] - expected: ERROR diff --git a/tests/wpt/metadata/custom-elements/reactions/HTMLMediaElement.html.ini b/tests/wpt/metadata/custom-elements/reactions/HTMLMediaElement.html.ini deleted file mode 100644 index 4456e76a8d1..00000000000 --- a/tests/wpt/metadata/custom-elements/reactions/HTMLMediaElement.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[HTMLMediaElement.html] - expected: CRASH diff --git a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_html.html.ini b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_html.html.ini deleted file mode 100644 index d3f46c22377..00000000000 --- a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_html.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[contenttype_html.html] - expected: CRASH diff --git a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini deleted file mode 100644 index c3916f8555d..00000000000 --- a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[contenttype_txt.html] - expected: CRASH diff --git a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_xml.html.ini b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_xml.html.ini deleted file mode 100644 index cde6fe16ee2..00000000000 --- a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_xml.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[contenttype_xml.html] - expected: CRASH diff --git a/tests/wpt/metadata/encoding/streams/realms.window.js.ini b/tests/wpt/metadata/encoding/streams/realms.window.js.ini index 059cf2b7b77..dcde1437c6d 100644 --- a/tests/wpt/metadata/encoding/streams/realms.window.js.ini +++ b/tests/wpt/metadata/encoding/streams/realms.window.js.ini @@ -1,2 +1,5 @@ [realms.window.html] - expected: TIMEOUT + expected: ERROR + [realms] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html.ini b/tests/wpt/metadata/fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html.ini index 7ae085cb12d..50b0e990179 100644 --- a/tests/wpt/metadata/fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html.ini +++ b/tests/wpt/metadata/fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html.ini @@ -1,48 +1,26 @@ [dangling-markup-mitigation-data-url.tentative.sub.html] type: testharness - expected: TIMEOUT - [<img id="dangling" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=">] - expected: FAIL - - [<img id="dangling" src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=">] - expected: FAIL - - [<img id="dangling" src="data:image/png;base64,i VBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=">] - expected: FAIL - [<img id="dangling" src="data:image/svg+xml;utf8,\\n <svg width='1' height='1' xmlns='http://www.w3.org/2000/svg'>\\n <rect width='100%' height='100%' fill='rebeccapurple'/>\\n <rect x='10%' y='10%' width='80%' height='80%' fill='lightgreen'/>\\n </svg>">] expected: FAIL - [<iframe id="dangling"\\n src="data:text/html,\\n <img\\n onload='window.parent.postMessage("loaded", "*");'\\n onerror='window.parent.postMessage("error", "*");'\\n src='http://web-platform.test:8000/images/gr een-256x256.png'>\\n ">\\n </iframe>] - expected: TIMEOUT - - [<iframe id="dangling"\\n src="data:text/html,\\n <img\\n onload='window.parent.postMessage("loaded", "*");'\\n onerror='window.parent.postMessage("error", "*");'\\n src='http://web-platform.test:8000/images/green-256x256.png?<'>\\n ">\\n </iframe>] - expected: TIMEOUT - - [<iframe id="dangling"\\n src="data:text/html,\\n <img\\n onload='window.parent.postMessage("loaded", "*");'\\n onerror='window.parent.postMessage("error", "*");'\\n src='http://web-platform.test:8000/images/gr een-256x256.png?&amp;lt;'>\\n ">\\n </iframe>] - expected: TIMEOUT - [<iframe id="dangling"\\n src="data:text/html,\\n <img\\n onload='window.parent.postMessage("loaded", "*");'\\n onerror='window.parent.postMessage("error", "*");'\\n src='http://web-platform.test:8000/images/green-256x256.png?&amp;#10;<'>\\n ">\\n </iframe>] expected: TIMEOUT [<iframe id="dangling"\\n src="data:text/html,\\n <img\\n onload='window.parent.postMessage("loaded", "*");'\\n onerror='window.parent.postMessage("error", "*");'\\n src='http://web-platform.test:8000/images/gr een-256x256.png?<'>\\n ">\\n </iframe>] - expected: TIMEOUT + expected: FAIL [<iframe id="dangling"\\n src=" data:text/html,\\n <img\\n onload='window.parent.postMessage("loaded", "*");'\\n onerror='window.parent.postMessage("error", "*");'\\n src='http://web-platform.test:8000/images/gr een-256x256.png?<'>\\n ">\\n </iframe>] - expected: TIMEOUT + expected: FAIL [<iframe id="dangling"\\n src="\\ndata:text/html,\\n <img\\n onload='window.parent.postMessage("loaded", "*");'\\n onerror='window.parent.postMessage("error", "*");'\\n src='http://web-platform.test:8000/images/gr een-256x256.png?<'>\\n ">\\n </iframe>] - expected: TIMEOUT + expected: FAIL [<iframe id="dangling"\\n src=" data:text/html,\\n <img\\n onload='window.parent.postMessage("loaded", "*");'\\n onerror='window.parent.postMessage("error", "*");'\\n src='http://web-platform.test:8000/images/gr een-256x256.png?<'>\\n ">\\n </iframe>] - expected: TIMEOUT + expected: FAIL [<iframe id="dangling"\\n src="\\tdata:text/html,\\n <img\\n onload='window.parent.postMessage("loaded", "*");'\\n onerror='window.parent.postMessage("error", "*");'\\n src='http://web-platform.test:8000/images/gr een-256x256.png?<'>\\n ">\\n </iframe>] - expected: TIMEOUT + expected: FAIL [<iframe id="dangling"\\n src="\\rdata:text/html,\\n <img\\n onload='window.parent.postMessage("loaded", "*");'\\n onerror='window.parent.postMessage("error", "*");'\\n src='http://web-platform.test:8000/images/gr een-256x256.png?<'>\\n ">\\n </iframe>] - expected: TIMEOUT - - [<iframe id="dangling"\\n src="data:text/html,\\n <img\\n onload='window.parent.postMessage("loaded", "*");'\\n onerror='window.parent.postMessage("error", "*");'\\n src='http://web-platform.test:8000/images/green-256x256.png?&amp;%2310;<'>\\n ">\\n </iframe>] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/fetch/security/dangling-markup-mitigation.tentative.html.ini b/tests/wpt/metadata/fetch/security/dangling-markup-mitigation.tentative.html.ini index 934f4f72d0c..ea5bbc8a33b 100644 --- a/tests/wpt/metadata/fetch/security/dangling-markup-mitigation.tentative.html.ini +++ b/tests/wpt/metadata/fetch/security/dangling-markup-mitigation.tentative.html.ini @@ -54,12 +54,3 @@ [<img id="dangling" src="data:image/svg+xml;utf8,\\n <svg width='1' height='1' xmlns='http://www.w3.org/2000/svg'>\\n <rect width='100%' height='100%' fill='rebeccapurple'/>\\n <rect x='10%' y='10%' width='80%' height='80%' fill='lightgreen'/>\\n </svg>">] expected: FAIL - [<img id="dangling" src="/images/green-1x1.png?img= <b">] - expected: FAIL - - [<img id="dangling" src="/images/green-1x1.png?img=< b">] - expected: FAIL - - [\\n <img id="dangling" src="/images/green-1x1.png?img=\\n <\\n b\\n ">\\n ] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini deleted file mode 100644 index 75d75b4cda2..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_2.html] - [Multiple history traversals, last would be aborted] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini index b23214f6f39..01ea63ef71a 100644 --- a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini +++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini @@ -18,3 +18,6 @@ [Set HTTP URL frame location.protocol to x] expected: FAIL + [Set data URL frame location.protocol to data] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini index 3fddf7d569b..d4ee703a53d 100644 --- a/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini +++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini @@ -1,8 +1,5 @@ [location_hash.html] type: testharness - [Setting location.hash on srcdoc iframe] - expected: FAIL - [Setting hash which is partially encoded should only encode incompatible characters] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter_srcdoc.html.ini b/tests/wpt/metadata/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter_srcdoc.html.ini deleted file mode 100644 index a15ea053963..00000000000 --- a/tests/wpt/metadata/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter_srcdoc.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[document_domain_setter_srcdoc.html] - type: testharness - expected: TIMEOUT - [srcdoc can access with no 'document.domain' modification.] - expected: TIMEOUT - - [srcdoc can access with valid 'document.domain'.] - expected: NOTRUN - - [srcdoc can access when parent modifies 'document.domain'.] - expected: NOTRUN - diff --git a/tests/wpt/metadata/html/browsers/sandboxing/sandbox-parse-noscript.html.ini b/tests/wpt/metadata/html/browsers/sandboxing/sandbox-parse-noscript.html.ini new file mode 100644 index 00000000000..4fc0a6b0fff --- /dev/null +++ b/tests/wpt/metadata/html/browsers/sandboxing/sandbox-parse-noscript.html.ini @@ -0,0 +1,2 @@ +[sandbox-parse-noscript.html] + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini index c757b400205..5cc0834016c 100644 --- a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini +++ b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini @@ -1,5 +1,4 @@ [embedded-opener-remove-frame.html] - expected: CRASH [opener and "removed" embedded documents] expected: FAIL diff --git a/tests/wpt/metadata/html/dom/idlharness.https.html.ini b/tests/wpt/metadata/html/dom/idlharness.https.html.ini index 5fe3f60866f..dc99e0c09f1 100644 --- a/tests/wpt/metadata/html/dom/idlharness.https.html.ini +++ b/tests/wpt/metadata/html/dom/idlharness.https.html.ini @@ -4230,9 +4230,6 @@ [HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("button") with too few arguments must throw TypeError] expected: FAIL - [HTMLIFrameElement interface: attribute srcdoc] - expected: FAIL - [HTMLInputElement interface: createInput("week") must inherit property "checkValidity()" with the proper type] expected: FAIL diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/focusable-area-in-top-document.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/focusable-area-in-top-document.html.ini deleted file mode 100644 index e378aa9546e..00000000000 --- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/focusable-area-in-top-document.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[focusable-area-in-top-document.html] - [If topDocument's focused area is not topDocument, autofocus is not processed.] - expected: FAIL - diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-not-fully-active.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-not-fully-active.html.ini new file mode 100644 index 00000000000..5b0f5a5de3f --- /dev/null +++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-not-fully-active.html.ini @@ -0,0 +1,3 @@ +[skip-not-fully-active.html] + [Autofocus element in not-fully-active document should be skipped while flusing.] + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative.html.ini index 27b3fb39072..7d9c4f6072b 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative.html.ini @@ -1,4 +1,5 @@ [iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative.html] + expected: TIMEOUT [<a download> triggered download in sandbox is allowed by allow-downloads-without-user-activation.] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads_without_user_activation.sub.tentative.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads_without_user_activation.sub.tentative.html.ini deleted file mode 100644 index f4a5ffbe562..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads_without_user_activation.sub.tentative.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[iframe_sandbox_anchor_download_block_downloads_without_user_activation.sub.tentative.html] - [<a download> triggered download in sandbox is blocked.] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads_without_user_activation.sub.tentative.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads_without_user_activation.sub.tentative.html.ini index fc577323fa6..609b809273a 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads_without_user_activation.sub.tentative.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads_without_user_activation.sub.tentative.html.ini @@ -1,4 +1,5 @@ [iframe_sandbox_navigation_download_allow_downloads_without_user_activation.sub.tentative.html] + expected: TIMEOUT [Navigation resulted download in sandbox is allowed by allow-downloads-without-user-activation.] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads_without_user_activation.sub.tentative.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads_without_user_activation.sub.tentative.html.ini deleted file mode 100644 index cd4b1b1dd2b..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads_without_user_activation.sub.tentative.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[iframe_sandbox_navigation_download_block_downloads_without_user_activation.sub.tentative.html] - [Navigation resulted download in sandbox is blocked.] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini index fc37df7e3fa..f42f518d257 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini @@ -1,6 +1,5 @@ [iframe_sandbox_popups_escaping-1.html] type: testharness - expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/srcdoc_process_attributes.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/srcdoc_process_attributes.html.ini deleted file mode 100644 index 574e63e8e33..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/srcdoc_process_attributes.html.ini +++ /dev/null @@ -1,14 +0,0 @@ -[srcdoc_process_attributes.html] - expected: TIMEOUT - [Removing `srcdoc` attribute triggers attributes processing] - expected: FAIL - - [Changing `srcdoc` (via property) triggers attributes processing] - expected: FAIL - - [Adding `srcdoc` attribute triggers attributes processing] - expected: TIMEOUT - - [Setting `srcdoc` (via property) triggers attributes processing] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001.html.ini deleted file mode 100644 index 3163bfd8c61..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[sizes-dynamic-001.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-2.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-2.html.ini index f6eecd82b49..61799e4c935 100644 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-2.html.ini +++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-2.html.ini @@ -1,5 +1,5 @@ [form-double-submit-2.html] expected: ERROR [preventDefault should allow onclick submit() to succeed] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini index 941d0dee0c8..df89cd21511 100644 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini +++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini @@ -1,5 +1,5 @@ [form-double-submit-3.html] expected: ERROR [<button> should have the same double-submit protection as <input type=submit>] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini b/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini index 65424f7891a..1015227194b 100644 --- a/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini +++ b/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini @@ -5,14 +5,14 @@ expected: NOTRUN [Check that rel=noopener with target=_parent does a normal load] - expected: FAIL + expected: NOTRUN [Check that rel=noopener with target=_top does a normal load] - expected: FAIL + expected: NOTRUN [Check that targeting of rel=noopener with a given name reuses an existing window with that name] expected: NOTRUN [Check that rel=noopener with target=_self does a normal load] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/execution-timing/099.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/execution-timing/099.html.ini deleted file mode 100644 index 6015d05e4b6..00000000000 --- a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/execution-timing/099.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[099.html] - type: testharness - [ scheduler: defer adding iframe containing script] - expected: FAIL - diff --git a/tests/wpt/metadata/html/the-xhtml-syntax/parsing-xhtml-documents/data-xhtml-with-dtd.html.ini b/tests/wpt/metadata/html/the-xhtml-syntax/parsing-xhtml-documents/data-xhtml-with-dtd.html.ini deleted file mode 100644 index ae97e1be171..00000000000 --- a/tests/wpt/metadata/html/the-xhtml-syntax/parsing-xhtml-documents/data-xhtml-with-dtd.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[data-xhtml-with-dtd.html] - expected: FAIL diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/document-close-with-pending-script.html.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/document-close-with-pending-script.html.ini deleted file mode 100644 index fc8ee9aacf8..00000000000 --- a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/document-close-with-pending-script.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[document-close-with-pending-script.html] - expected: TIMEOUT - [document.close called while a script is pending] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/location-set-and-document-open.html.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/location-set-and-document-open.html.ini index 7ab69a8c1f1..d6e3d53613d 100644 --- a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/location-set-and-document-open.html.ini +++ b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/location-set-and-document-open.html.ini @@ -1,5 +1,4 @@ [location-set-and-document-open.html] - expected: TIMEOUT [Location sets should cancel current navigation and prevent later document.open() from doing anything] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini index 496bad988c6..034d9baebfa 100644 --- a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini +++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini @@ -1,4 +1,5 @@ [promise-rejection-events.html] + expected: TIMEOUT [delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire] expected: FAIL @@ -8,3 +9,6 @@ [no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from createImageBitmap] expected: FAIL + [rejectionhandled is dispatched from a queued task, and not immediately] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/html/webappapis/update-rendering/child-document-raf-order.html.ini b/tests/wpt/metadata/html/webappapis/update-rendering/child-document-raf-order.html.ini index 98878aaebb3..d2269e3918b 100644 --- a/tests/wpt/metadata/html/webappapis/update-rendering/child-document-raf-order.html.ini +++ b/tests/wpt/metadata/html/webappapis/update-rendering/child-document-raf-order.html.ini @@ -1,5 +1,4 @@ [child-document-raf-order.html] - expected: TIMEOUT [Ordering of steps in "Update the Rendering" - child document requestAnimationFrame order] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc-child.html.ini b/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc-child.html.ini index 13009ac5d38..c0f20881f7c 100644 --- a/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc-child.html.ini +++ b/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc-child.html.ini @@ -1,5 +1,4 @@ [iframe-inheritance-srcdoc-child.html] - expected: TIMEOUT [iframes srcdoc child correctly inherit the ancestor's referrer policy] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini index 66bd350083b..a56bad443a2 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini @@ -1,4 +1,5 @@ [realtimeanalyser-fft-scaling.html] + expected: TIMEOUT [X 2048-point FFT peak position is not equal to 64. Got 0.] expected: FAIL diff --git a/tests/wpt/metadata/webmessaging/with-ports/018.html.ini b/tests/wpt/metadata/webmessaging/with-ports/018.html.ini deleted file mode 100644 index 663a1f8fa30..00000000000 --- a/tests/wpt/metadata/webmessaging/with-ports/018.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[018.html] - expected: TIMEOUT - [origin of the script that invoked the method, javascript:] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/websockets/remove-own-iframe-during-onerror.window.js.ini b/tests/wpt/metadata/websockets/remove-own-iframe-during-onerror.window.js.ini deleted file mode 100644 index 083fdf0470b..00000000000 --- a/tests/wpt/metadata/websockets/remove-own-iframe-during-onerror.window.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[remove-own-iframe-during-onerror.window.html] - expected: TIMEOUT - [removing an iframe from within an onerror handler should work] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini index f584fce5df1..268949ced5c 100644 --- a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini +++ b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini @@ -1,5 +1,4 @@ [005.html] - expected: ERROR [dedicated worker in shared worker in dedicated worker] expected: FAIL diff --git a/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini b/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini index 49f489d2a1c..d6e39444229 100644 --- a/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini +++ b/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini @@ -1,6 +1,5 @@ [003.html] type: testharness - expected: ERROR [shared] expected: FAIL |