From bf69b6fea7c7eed2ba3b96e5c77573f25b7929ed Mon Sep 17 00:00:00 2001 From: jaymodi98 Date: Mon, 28 Oct 2019 17:21:45 -0400 Subject: [PATCH] Implement srcdoc support for iframes. --- components/script/dom/htmliframeelement.rs | 49 ++++++++++++++++++- .../dom/webidls/HTMLIFrameElement.webidl | 4 +- components/script/script_thread.rs | 24 ++++++++- components/script_traits/lib.rs | 4 ++ .../FileAPI/url/url-with-fetch.any.js.ini | 3 ++ .../metadata/WebIDL/current-realm.html.ini | 9 ---- .../floats-in-table-caption-001.html.ini | 2 - .../hyphens/hyphens-out-of-flow-001.html.ini | 2 - .../line-break/line-break-normal-018.xht.ini | 2 - .../line-break/line-break-strict-018.xht.ini | 2 - ...text-transform-full-size-kana-001.html.ini | 2 - ...text-transform-full-size-kana-002.html.ini | 2 - ...text-transform-full-size-kana-003.html.ini | 2 - ...text-transform-full-size-kana-004.html.ini | 2 - .../trailing-ideographic-space-004.html.ini | 2 - .../perspective-interpolation.html.ini | 1 - ...on-from-ua-to-blocking-stylesheet.html.ini | 2 +- .../matchMedia-display-none-iframe.html.ini | 2 - .../reactions/HTMLMediaElement.html.ini | 2 - .../contentType/contenttype_html.html.ini | 2 - .../contentType/contenttype_txt.html.ini | 2 - .../contentType/contenttype_xml.html.ini | 2 - .../encoding/streams/realms.window.js.ini | 5 +- ...mitigation-data-url.tentative.sub.html.ini | 34 +++---------- ...gling-markup-mitigation.tentative.html.ini | 9 ---- .../traverse_the_history_2.html.ini | 4 -- ...cation-protocol-setter-non-broken.html.ini | 3 ++ .../location_hash.html.ini | 3 -- .../document_domain_setter_srcdoc.html.ini | 12 ----- .../sandbox-parse-noscript.html.ini | 2 + .../embedded-opener-remove-frame.html.ini | 1 - .../html/dom/idlharness.https.html.ini | 3 -- .../focusable-area-in-top-document.html.ini | 4 -- .../skip-not-fully-active.html.ini | 3 ++ ...out_user_activation.sub.tentative.html.ini | 3 +- ...out_user_activation.sub.tentative.html.ini | 4 -- ...out_user_activation.sub.tentative.html.ini | 3 +- ...out_user_activation.sub.tentative.html.ini | 4 -- .../iframe_sandbox_popups_escaping-1.html.ini | 3 +- .../srcdoc_process_attributes.html.ini | 14 ------ .../sizes/sizes-dynamic-001.html.ini | 2 - .../form-double-submit-2.html.ini | 2 +- .../form-double-submit-3.html.ini | 2 +- .../htmlanchorelement_noopener.html.ini | 6 +-- .../execution-timing/099.html.ini | 5 -- .../data-xhtml-with-dtd.html.ini | 2 - ...ocument-close-with-pending-script.html.ini | 5 -- .../location-set-and-document-open.html.ini | 3 +- .../promise-rejection-events.html.ini | 4 ++ .../child-document-raf-order.html.ini | 3 +- .../iframe-inheritance-srcdoc-child.html.ini | 3 +- .../realtimeanalyser-fft-scaling.html.ini | 1 + .../webmessaging/with-ports/018.html.ini | 5 -- ...ve-own-iframe-during-onerror.window.js.ini | 5 -- .../semantics/multiple-workers/005.html.ini | 1 - .../semantics/run-a-worker/003.html.ini | 1 - 56 files changed, 116 insertions(+), 172 deletions(-) delete mode 100644 tests/wpt/metadata/css/CSS2/floats/floats-in-table-caption-001.html.ini delete mode 100644 tests/wpt/metadata/css/css-text/hyphens/hyphens-out-of-flow-001.html.ini delete mode 100644 tests/wpt/metadata/css/css-text/line-break/line-break-normal-018.xht.ini delete mode 100644 tests/wpt/metadata/css/css-text/line-break/line-break-strict-018.xht.ini delete mode 100644 tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-001.html.ini delete mode 100644 tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-002.html.ini delete mode 100644 tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-003.html.ini delete mode 100644 tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-004.html.ini delete mode 100644 tests/wpt/metadata/css/css-text/white-space/trailing-ideographic-space-004.html.ini delete mode 100644 tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini delete mode 100644 tests/wpt/metadata/custom-elements/reactions/HTMLMediaElement.html.ini delete mode 100644 tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_html.html.ini delete mode 100644 tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini delete mode 100644 tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_xml.html.ini delete mode 100644 tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini delete mode 100644 tests/wpt/metadata/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter_srcdoc.html.ini create mode 100644 tests/wpt/metadata/html/browsers/sandboxing/sandbox-parse-noscript.html.ini delete mode 100644 tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/focusable-area-in-top-document.html.ini create mode 100644 tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-not-fully-active.html.ini delete mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads_without_user_activation.sub.tentative.html.ini delete mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads_without_user_activation.sub.tentative.html.ini delete mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/srcdoc_process_attributes.html.ini delete mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001.html.ini delete mode 100644 tests/wpt/metadata/html/semantics/scripting-1/the-script-element/execution-timing/099.html.ini delete mode 100644 tests/wpt/metadata/html/the-xhtml-syntax/parsing-xhtml-documents/data-xhtml-with-dtd.html.ini delete mode 100644 tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/document-close-with-pending-script.html.ini delete mode 100644 tests/wpt/metadata/webmessaging/with-ports/018.html.ini delete mode 100644 tests/wpt/metadata/websockets/remove-own-iframe-during-onerror.window.js.ini 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 { /// fn process_the_iframe_attributes(&self, mode: ProcessingMode) { - // TODO: srcdoc + if self + .upcast::() + .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::().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::(); + 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 { 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::().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::().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, /// The referrer policy. pub referrer_policy: Option, + + /// 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 - [] - expected: FAIL - - [] - expected: FAIL - - [] - expected: FAIL - [] expected: FAIL - [] - expected: TIMEOUT - - [] - expected: TIMEOUT - - [] - expected: TIMEOUT - [] expected: TIMEOUT [] - expected: TIMEOUT + expected: FAIL [] - expected: TIMEOUT + expected: FAIL [] - expected: TIMEOUT + expected: FAIL [] - expected: TIMEOUT + expected: FAIL [] - expected: TIMEOUT + expected: FAIL [] - expected: TIMEOUT - - [] - 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 @@ [] expected: FAIL - [] - expected: FAIL - - [] - expected: FAIL - - [\\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 [ 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] - [ 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 [