html: Add the reflected 'sizes' IDL attribute for <image> (#39466)

Add the reflected 'sizes' IDL attribute for <image> element's DOM
interface which defines image sizes for different page layouts.

See https://html.spec.whatwg.org/multipage/#dom-img-sizes

Testing: Improvements in the following tests
- custom-elements/reactions/customized-builtins/HTMLImageElement.html
- html/dom/idlharness.https.html
-
html/semantics/embedded-content/the-img-element/relevant-mutations.html

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
This commit is contained in:
Andrei Volykhin 2025-09-24 12:29:44 +03:00 committed by GitHub
parent 72555de341
commit f91dc33350
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 7 additions and 18 deletions

View file

@ -1670,6 +1670,12 @@ impl HTMLImageElementMethods<crate::DomTypeHolder> for HTMLImageElement {
// https://html.spec.whatwg.org/multipage/#dom-img-src
make_url_setter!(SetSrcset, "srcset");
// <https://html.spec.whatwg.org/multipage/#dom-img-sizes>
make_getter!(Sizes, "sizes");
// <https://html.spec.whatwg.org/multipage/#dom-img-sizes>
make_setter!(SetSizes, "sizes");
// https://html.spec.whatwg.org/multipage/#dom-img-crossOrigin
fn GetCrossOrigin(&self) -> Option<DOMString> {
reflect_cross_origin_attribute(self.upcast::<Element>())

View file

@ -13,6 +13,7 @@ interface HTMLImageElement : HTMLElement {
attribute USVString src;
[CEReactions]
attribute USVString srcset;
[CEReactions] attribute DOMString sizes;
[CEReactions]
attribute DOMString? crossOrigin;
[CEReactions]

View file

@ -1,10 +1,4 @@
[HTMLImageElement.html]
[sizes on HTMLImageElement must enqueue an attributeChanged reaction when adding a new attribute]
expected: FAIL
[sizes on HTMLImageElement must enqueue an attributeChanged reaction when replacing an existing attribute]
expected: FAIL
[decoding on HTMLImageElement must enqueue an attributeChanged reaction when adding a new attribute]
expected: FAIL

View file

@ -5473,9 +5473,6 @@
[HTMLSourceElement interface: document.createElement("source") must inherit property "height" with the proper type]
expected: FAIL
[HTMLImageElement interface: attribute sizes]
expected: FAIL
[HTMLImageElement interface: attribute decoding]
expected: FAIL
@ -5488,9 +5485,6 @@
[HTMLImageElement interface: attribute lowsrc]
expected: FAIL
[HTMLImageElement interface: document.createElement("img") must inherit property "sizes" with the proper type]
expected: FAIL
[HTMLImageElement interface: document.createElement("img") must inherit property "decoding" with the proper type]
expected: FAIL
@ -5503,9 +5497,6 @@
[HTMLImageElement interface: document.createElement("img") must inherit property "lowsrc" with the proper type]
expected: FAIL
[HTMLImageElement interface: new Image() must inherit property "sizes" with the proper type]
expected: FAIL
[HTMLImageElement interface: new Image() must inherit property "decoding" with the proper type]
expected: FAIL

View file

@ -7,6 +7,3 @@
[crossorigin state not changed: anonymous to foobar]
expected: FAIL
[sizes is set to same value]
expected: FAIL