From d47ce855cec831586c0eda100f9dc24c5e13e772 Mon Sep 17 00:00:00 2001 From: Rakhi Sharma Date: Thu, 4 Jan 2018 11:46:03 +0000 Subject: [PATCH] Implement HTMLPictureElement interface. --- components/script/dom/create.rs | 2 ++ components/script/dom/htmlpictureelement.rs | 36 +++++++++++++++++++ components/script/dom/mod.rs | 1 + .../dom/webidls/HTMLPictureElement.webidl | 7 ++++ ...css3-text-line-break-baspglwj-083.html.ini | 1 + ...css3-text-line-break-baspglwj-094.html.ini | 3 +- .../wpt/metadata/html/dom/interfaces.html.ini | 21 ----------- .../html/semantics/interfaces.html.ini | 6 ---- tests/wpt/mozilla/meta/MANIFEST.json | 2 +- .../meta/mozilla/http-cache-xhr.html.ini | 2 -- .../wpt/mozilla/tests/mozilla/interfaces.html | 1 + 11 files changed, 51 insertions(+), 31 deletions(-) create mode 100644 components/script/dom/htmlpictureelement.rs create mode 100644 components/script/dom/webidls/HTMLPictureElement.webidl delete mode 100644 tests/wpt/mozilla/meta/mozilla/http-cache-xhr.html.ini diff --git a/components/script/dom/create.rs b/components/script/dom/create.rs index 49661e4b5bf..64116663a84 100644 --- a/components/script/dom/create.rs +++ b/components/script/dom/create.rs @@ -54,6 +54,7 @@ use dom::htmloptionelement::HTMLOptionElement; use dom::htmloutputelement::HTMLOutputElement; use dom::htmlparagraphelement::HTMLParagraphElement; use dom::htmlparamelement::HTMLParamElement; +use dom::htmlpictureelement::HTMLPictureElement; use dom::htmlpreelement::HTMLPreElement; use dom::htmlprogresselement::HTMLProgressElement; use dom::htmlquoteelement::HTMLQuoteElement; @@ -309,6 +310,7 @@ pub fn create_native_html_element( local_name!("output") => make!(HTMLOutputElement), local_name!("p") => make!(HTMLParagraphElement), local_name!("param") => make!(HTMLParamElement), + local_name!("picture") => make!(HTMLPictureElement), local_name!("plaintext") => make!(HTMLPreElement), local_name!("pre") => make!(HTMLPreElement), local_name!("progress") => make!(HTMLProgressElement), diff --git a/components/script/dom/htmlpictureelement.rs b/components/script/dom/htmlpictureelement.rs new file mode 100644 index 00000000000..cf5154a47a1 --- /dev/null +++ b/components/script/dom/htmlpictureelement.rs @@ -0,0 +1,36 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +use dom::bindings::codegen::Bindings::HTMLPictureElementBinding; +use dom::bindings::root::DomRoot; +use dom::document::Document; +use dom::htmlelement::HTMLElement; +use dom::node::Node; +use dom_struct::dom_struct; +use html5ever::{LocalName, Prefix}; + +#[dom_struct] +pub struct HTMLPictureElement { + htmlelement: HTMLElement, +} + +impl HTMLPictureElement { + fn new_inherited(local_name: LocalName, + prefix: Option, + document: &Document) -> HTMLPictureElement { + HTMLPictureElement { + htmlelement: + HTMLElement::new_inherited(local_name, prefix, document) + } + } + + #[allow(unrooted_must_root)] + pub fn new(local_name: LocalName, + prefix: Option, + document: &Document) -> DomRoot { + Node::reflect_node(Box::new(HTMLPictureElement::new_inherited(local_name, prefix, document)), + document, + HTMLPictureElementBinding::Wrap) + } +} diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs index cf10f1e4752..78f78cbed75 100644 --- a/components/script/dom/mod.rs +++ b/components/script/dom/mod.rs @@ -348,6 +348,7 @@ pub mod htmloptionscollection; pub mod htmloutputelement; pub mod htmlparagraphelement; pub mod htmlparamelement; +pub mod htmlpictureelement; pub mod htmlpreelement; pub mod htmlprogresselement; pub mod htmlquoteelement; diff --git a/components/script/dom/webidls/HTMLPictureElement.webidl b/components/script/dom/webidls/HTMLPictureElement.webidl new file mode 100644 index 00000000000..4886ebcd68e --- /dev/null +++ b/components/script/dom/webidls/HTMLPictureElement.webidl @@ -0,0 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +// https://html.spec.whatwg.org/multipage/#htmlpictureelement +[HTMLConstructor] +interface HTMLPictureElement : HTMLElement {}; diff --git a/tests/wpt/metadata/css/css-text/i18n/css3-text-line-break-baspglwj-083.html.ini b/tests/wpt/metadata/css/css-text/i18n/css3-text-line-break-baspglwj-083.html.ini index 884ab15ee1b..a8fc764b606 100644 --- a/tests/wpt/metadata/css/css-text/i18n/css3-text-line-break-baspglwj-083.html.ini +++ b/tests/wpt/metadata/css/css-text/i18n/css3-text-line-break-baspglwj-083.html.ini @@ -2,3 +2,4 @@ type: testharness [ ] expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/i18n/css3-text-line-break-baspglwj-094.html.ini b/tests/wpt/metadata/css/css-text/i18n/css3-text-line-break-baspglwj-094.html.ini index 1ca4d3172e7..07ab7384011 100644 --- a/tests/wpt/metadata/css/css-text/i18n/css3-text-line-break-baspglwj-094.html.ini +++ b/tests/wpt/metadata/css/css-text/i18n/css3-text-line-break-baspglwj-094.html.ini @@ -1,4 +1,5 @@ [css3-text-line-break-baspglwj-094.html] type: testharness [ ] - expected: FAIL \ No newline at end of file + expected: FAIL + diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini index a8063201da4..67ffcb48adc 100644 --- a/tests/wpt/metadata/html/dom/interfaces.html.ini +++ b/tests/wpt/metadata/html/dom/interfaces.html.ini @@ -1200,24 +1200,6 @@ [HTMLModElement interface: document.createElement("del") must inherit property "dateTime" with the proper type (1)] expected: FAIL - [HTMLPictureElement interface: existence and properties of interface object] - expected: FAIL - - [HTMLPictureElement interface object length] - expected: FAIL - - [HTMLPictureElement interface: existence and properties of interface prototype object] - expected: FAIL - - [HTMLPictureElement interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [HTMLPictureElement must be primary interface of document.createElement("picture")] - expected: FAIL - - [Stringification of document.createElement("picture")] - expected: FAIL - [HTMLImageElement interface: attribute srcset] expected: FAIL @@ -5832,9 +5814,6 @@ [DOMElementMap interface object name] expected: FAIL - [HTMLPictureElement interface object name] - expected: FAIL - [AudioTrackList interface object name] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/interfaces.html.ini b/tests/wpt/metadata/html/semantics/interfaces.html.ini index 2ebff96f036..d6dc030b318 100644 --- a/tests/wpt/metadata/html/semantics/interfaces.html.ini +++ b/tests/wpt/metadata/html/semantics/interfaces.html.ini @@ -48,12 +48,6 @@ [Interfaces for MENUITEM] expected: FAIL - [Interfaces for picture] - expected: FAIL - - [Interfaces for PICTURE] - expected: FAIL - [Interfaces for slot] expected: FAIL diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 0e8c136aa2c..9197fcdd90d 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -66470,7 +66470,7 @@ "testharness" ], "mozilla/interfaces.html": [ - "ad914ab4c7a794b251c03f7b0f50aaef1ea78df0", + "365c76c771b3d79a671b04047923f5644efb9b93", "testharness" ], "mozilla/interfaces.js": [ diff --git a/tests/wpt/mozilla/meta/mozilla/http-cache-xhr.html.ini b/tests/wpt/mozilla/meta/mozilla/http-cache-xhr.html.ini deleted file mode 100644 index 794b50d9245..00000000000 --- a/tests/wpt/mozilla/meta/mozilla/http-cache-xhr.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[http-cache-xhr.html] - type: testharness diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.html b/tests/wpt/mozilla/tests/mozilla/interfaces.html index b28ff618699..1ee52ba32f9 100644 --- a/tests/wpt/mozilla/tests/mozilla/interfaces.html +++ b/tests/wpt/mozilla/tests/mozilla/interfaces.html @@ -114,6 +114,7 @@ test_interfaces([ "HTMLOutputElement", "HTMLParagraphElement", "HTMLParamElement", + "HTMLPictureElement", "HTMLPreElement", "HTMLProgressElement", "HTMLQuoteElement",