diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2018-09-20 00:26:06 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-20 00:26:06 -0400 |
commit | 819212e3b6817a60c83fe67fe758c32214f3fd11 (patch) | |
tree | 00a45f1c4f96a024815ca542e639a31c6bf30039 | |
parent | df2adebefdfa3da49f173e480fa1e56450f9bda2 (diff) | |
parent | 7ab5df11064ccfb44158b168ae1719392b24e8fd (diff) | |
download | servo-819212e3b6817a60c83fe67fe758c32214f3fd11.tar.gz servo-819212e3b6817a60c83fe67fe758c32214f3fd11.zip |
Auto merge of #21751 - nupurbaghel:complete_api, r=jdm
Implement missing steps for complete API
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #21742
<!-- Either: -->
- [x] There are tests for these changes
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21751)
<!-- Reviewable:end -->
10 files changed, 37 insertions, 242 deletions
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index 8107d8bcb5d..4ef2fccc79d 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -1414,6 +1414,11 @@ impl HTMLImageElementMethods for HTMLImageElement { // https://html.spec.whatwg.org/multipage/#dom-img-src make_setter!(SetSrc, "src"); + // https://html.spec.whatwg.org/multipage/#dom-img-srcset + make_getter!(Srcset, "srcset"); + // https://html.spec.whatwg.org/multipage/#dom-img-src + make_setter!(SetSrcset, "srcset"); + // https://html.spec.whatwg.org/multipage/#dom-img-crossOrigin fn GetCrossOrigin(&self) -> Option<DOMString> { reflect_cross_origin_attribute(self.upcast::<Element>()) @@ -1487,13 +1492,13 @@ impl HTMLImageElementMethods for HTMLImageElement { // https://html.spec.whatwg.org/multipage/#dom-img-complete fn Complete(&self) -> bool { let elem = self.upcast::<Element>(); - // TODO: take srcset into account - if !elem.has_attribute(&local_name!("src")) { - return true; + let srcset_absent = !elem.has_attribute(&local_name!("srcset")); + if !elem.has_attribute(&local_name!("src")) && srcset_absent { + return true } let src = elem.get_string_attribute(&local_name!("src")); - if src.is_empty() { - return true; + if srcset_absent && src.is_empty() { + return true } let request = self.current_request.borrow(); let request_state = request.state; diff --git a/components/script/dom/webidls/HTMLImageElement.webidl b/components/script/dom/webidls/HTMLImageElement.webidl index 4f5be4daf7c..b7dddd07b9f 100644 --- a/components/script/dom/webidls/HTMLImageElement.webidl +++ b/components/script/dom/webidls/HTMLImageElement.webidl @@ -9,8 +9,8 @@ interface HTMLImageElement : HTMLElement { attribute DOMString alt; [CEReactions] attribute DOMString src; - // [CEReactions] - // attribute DOMString srcset; + [CEReactions] + attribute DOMString srcset; [CEReactions] attribute DOMString? crossOrigin; [CEReactions] diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 5a657e8f587..1bdfe665e83 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -610714,7 +610714,7 @@ "support" ], "html/semantics/embedded-content/the-img-element/img.complete.html": [ - "4be8d4db848ad259a508e1a8091feaae7733e784", + "ee043a8c94fa4f69b0648d5d31e17f5cc591ec5f", "testharness" ], "html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative.html": [ diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini index 0f1a214d0ee..18999a2cf7b 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini @@ -1,33 +1,14 @@ [viewport-change.html] type: testharness - expected: TIMEOUT [picture: source (max-width:500px) broken image, img valid image, resize to wide] - expected: TIMEOUT + expected: FAIL [picture: source (max-width:500px) valid image, img valid image, resize to wide] expected: FAIL [picture: source (max-width:500px) valid image, img broken image, resize to narrow] - expected: TIMEOUT - - [picture: source (max-width:500px) valid image, img valid image, resize to narrow] - expected: FAIL - - [picture: source (max-width:500px) broken image, img valid image, resize to narrow] - expected: FAIL - - [img (srcset 1 cand) valid image, resize to wide] expected: FAIL - [picture: same URL in source (max-width:500px) and img, resize to wide] - expected: FAIL - - [img (srcset 1 cand) valid image, resize to narrow] - expected: FAIL - - [picture: source (max-width:500px) valid image, img broken image, resize to wide] - expected: FAIL - - [picture: same URL in source (max-width:500px) and img, resize to narrow] + [picture: source (max-width:500px) valid image, img valid image, resize to narrow] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative.html.ini index ce02e674b67..8e027c0cd4e 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative.html.ini @@ -1,7 +1,7 @@ [intrinsicsize-with-responsive-images.tentative.html] expected: TIMEOUT [Test image /images/green.png with no specified sizes, width, or height] - expected: TIMEOUT + expected: FAIL [Test image /images/green.svg with no specified sizes, width, or height] expected: TIMEOUT @@ -10,7 +10,7 @@ expected: FAIL [Test image (32 x 32) with sizes = 100 and srcset descriptor = 32w] - expected: TIMEOUT + expected: FAIL [Test image /images/green.svg with width = 800, no specified sizes, or height] expected: TIMEOUT @@ -19,5 +19,5 @@ expected: FAIL [Test image /images/green.png with width = 800, no specified sizes, or height] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-display-none.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-display-none.html.ini deleted file mode 100644 index 24d7b92b058..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-display-none.html.ini +++ /dev/null @@ -1,52 +0,0 @@ -[parse-a-sizes-attribute-display-none.html] - [<img srcset="/images/green-1x1.png?e36a 50w, /images/green-16x16.png?e36a 51w" sizes="min(1px, 100px)"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e36b 50w, /images/green-16x16.png?e36b 51w" sizes="min(-100px, 1px)"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e37a 50w, /images/green-16x16.png?e37a 51w" sizes="(min-width:0) min(1px, 100px)"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e37b 50w, /images/green-16x16.png?e37b 51w" sizes="(min-width:0) max(-100px, 1px)"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e38 50w, /images/green-16x16.png?e38 51w" sizes="(min-width:calc(0)) 1px"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e38a 50w, /images/green-16x16.png?e38a 51w" sizes="(min-width:min(0, 200vw)) 1px"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e38b 50w, /images/green-16x16.png?e38b 51w" sizes="(min-width:max(-200vw, 0)) 1px"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e58 50w, /images/green-16x16.png?e58 51w" sizes="(min-width:0) or (unknown-mf-name) 1px"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e59 50w, /images/green-16x16.png?e59 51w" sizes="(min-width:0) or (min-width:unknown-mf-value) 1px"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e60 50w, /images/green-16x16.png?e60 51w" sizes="(min-width:0) or (min-width:-1px) 1px"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e61 50w, /images/green-16x16.png?e61 51w" sizes="(min-width:0) or (unknown "general-enclosed") 1px"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e62 50w, /images/green-16x16.png?e62 51w" sizes="(min-width:0) or unknown-general-enclosed(foo) 1px"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e106 50w, /images/green-16x16.png?e106 51w" sizes="(min-width:0) or (unknown-general-enclosed !) 1px"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f48a 50w, /images/green-16x16.png?f48a 51w" sizes="min(1px, 200vw"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f48b 50w, /images/green-16x16.png?f48b 51w" sizes="max(-200vw, 1px"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f49a 50w, /images/green-16x16.png?f49a 51w" sizes="(min-width:0) min(1px, 200vw"> ref sizes="1px" (display:none)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f49b 50w, /images/green-16x16.png?f49b 51w" sizes="(min-width:0) max(-200vw, 1px"> ref sizes="1px" (display:none)] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-quirks-mode.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-quirks-mode.html.ini deleted file mode 100644 index d5902a67ea6..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-quirks-mode.html.ini +++ /dev/null @@ -1,52 +0,0 @@ -[parse-a-sizes-attribute-quirks-mode.html] - [<img srcset="/images/green-1x1.png?e36a 50w, /images/green-16x16.png?e36a 51w" sizes="min(1px, 100px)"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e36b 50w, /images/green-16x16.png?e36b 51w" sizes="min(-100px, 1px)"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e37a 50w, /images/green-16x16.png?e37a 51w" sizes="(min-width:0) min(1px, 100px)"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e37b 50w, /images/green-16x16.png?e37b 51w" sizes="(min-width:0) max(-100px, 1px)"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e38 50w, /images/green-16x16.png?e38 51w" sizes="(min-width:calc(0)) 1px"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e38a 50w, /images/green-16x16.png?e38a 51w" sizes="(min-width:min(0, 200vw)) 1px"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e38b 50w, /images/green-16x16.png?e38b 51w" sizes="(min-width:max(-200vw, 0)) 1px"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e58 50w, /images/green-16x16.png?e58 51w" sizes="(min-width:0) or (unknown-mf-name) 1px"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e59 50w, /images/green-16x16.png?e59 51w" sizes="(min-width:0) or (min-width:unknown-mf-value) 1px"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e60 50w, /images/green-16x16.png?e60 51w" sizes="(min-width:0) or (min-width:-1px) 1px"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e61 50w, /images/green-16x16.png?e61 51w" sizes="(min-width:0) or (unknown "general-enclosed") 1px"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e62 50w, /images/green-16x16.png?e62 51w" sizes="(min-width:0) or unknown-general-enclosed(foo) 1px"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e106 50w, /images/green-16x16.png?e106 51w" sizes="(min-width:0) or (unknown-general-enclosed !) 1px"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f48a 50w, /images/green-16x16.png?f48a 51w" sizes="min(1px, 200vw"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f48b 50w, /images/green-16x16.png?f48b 51w" sizes="max(-200vw, 1px"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f49a 50w, /images/green-16x16.png?f49a 51w" sizes="(min-width:0) min(1px, 200vw"> ref sizes="1px" (quirks mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f49b 50w, /images/green-16x16.png?f49b 51w" sizes="(min-width:0) max(-200vw, 1px"> ref sizes="1px" (quirks mode)] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html.ini deleted file mode 100644 index 779c4de3965..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html.ini +++ /dev/null @@ -1,52 +0,0 @@ -[parse-a-sizes-attribute-standards-mode.html] - [<img srcset="/images/green-1x1.png?e36a 50w, /images/green-16x16.png?e36a 51w" sizes="min(1px, 100px)"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e36b 50w, /images/green-16x16.png?e36b 51w" sizes="min(-100px, 1px)"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e37a 50w, /images/green-16x16.png?e37a 51w" sizes="(min-width:0) min(1px, 100px)"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e37b 50w, /images/green-16x16.png?e37b 51w" sizes="(min-width:0) max(-100px, 1px)"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e38 50w, /images/green-16x16.png?e38 51w" sizes="(min-width:calc(0)) 1px"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e38a 50w, /images/green-16x16.png?e38a 51w" sizes="(min-width:min(0, 200vw)) 1px"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e38b 50w, /images/green-16x16.png?e38b 51w" sizes="(min-width:max(-200vw, 0)) 1px"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e58 50w, /images/green-16x16.png?e58 51w" sizes="(min-width:0) or (unknown-mf-name) 1px"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e59 50w, /images/green-16x16.png?e59 51w" sizes="(min-width:0) or (min-width:unknown-mf-value) 1px"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e60 50w, /images/green-16x16.png?e60 51w" sizes="(min-width:0) or (min-width:-1px) 1px"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e61 50w, /images/green-16x16.png?e61 51w" sizes="(min-width:0) or (unknown "general-enclosed") 1px"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e62 50w, /images/green-16x16.png?e62 51w" sizes="(min-width:0) or unknown-general-enclosed(foo) 1px"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e106 50w, /images/green-16x16.png?e106 51w" sizes="(min-width:0) or (unknown-general-enclosed !) 1px"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f48a 50w, /images/green-16x16.png?f48a 51w" sizes="min(1px, 200vw"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f48b 50w, /images/green-16x16.png?f48b 51w" sizes="max(-200vw, 1px"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f49a 50w, /images/green-16x16.png?f49a 51w" sizes="(min-width:0) min(1px, 200vw"> ref sizes="1px" (standards mode)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f49b 50w, /images/green-16x16.png?f49b 51w" sizes="(min-width:0) max(-200vw, 1px"> ref sizes="1px" (standards mode)] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-width-1000px.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-width-1000px.html.ini deleted file mode 100644 index 4ae1d2faf27..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-width-1000px.html.ini +++ /dev/null @@ -1,52 +0,0 @@ -[parse-a-sizes-attribute-width-1000px.html] - [<img srcset="/images/green-1x1.png?e36a 50w, /images/green-16x16.png?e36a 51w" sizes="min(1px, 100px)"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e36b 50w, /images/green-16x16.png?e36b 51w" sizes="min(-100px, 1px)"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e37a 50w, /images/green-16x16.png?e37a 51w" sizes="(min-width:0) min(1px, 100px)"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e37b 50w, /images/green-16x16.png?e37b 51w" sizes="(min-width:0) max(-100px, 1px)"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e38 50w, /images/green-16x16.png?e38 51w" sizes="(min-width:calc(0)) 1px"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e38a 50w, /images/green-16x16.png?e38a 51w" sizes="(min-width:min(0, 200vw)) 1px"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e38b 50w, /images/green-16x16.png?e38b 51w" sizes="(min-width:max(-200vw, 0)) 1px"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e58 50w, /images/green-16x16.png?e58 51w" sizes="(min-width:0) or (unknown-mf-name) 1px"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e59 50w, /images/green-16x16.png?e59 51w" sizes="(min-width:0) or (min-width:unknown-mf-value) 1px"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e60 50w, /images/green-16x16.png?e60 51w" sizes="(min-width:0) or (min-width:-1px) 1px"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e61 50w, /images/green-16x16.png?e61 51w" sizes="(min-width:0) or (unknown "general-enclosed") 1px"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e62 50w, /images/green-16x16.png?e62 51w" sizes="(min-width:0) or unknown-general-enclosed(foo) 1px"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?e106 50w, /images/green-16x16.png?e106 51w" sizes="(min-width:0) or (unknown-general-enclosed !) 1px"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f48a 50w, /images/green-16x16.png?f48a 51w" sizes="min(1px, 200vw"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f48b 50w, /images/green-16x16.png?f48b 51w" sizes="max(-200vw, 1px"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f49a 50w, /images/green-16x16.png?f49a 51w" sizes="(min-width:0) min(1px, 200vw"> ref sizes="1px" (width:1000px)] - expected: FAIL - - [<img srcset="/images/green-1x1.png?f49b 50w, /images/green-16x16.png?f49b 51w" sizes="(min-width:0) max(-200vw, 1px"> ref sizes="1px" (width:1000px)] - expected: FAIL - diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/img.complete.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/img.complete.html index 4be8d4db848..ee043a8c94f 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/img.complete.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/img.complete.html @@ -11,6 +11,7 @@ <img src="" id="imgTestTag2"> <img id="imgTestTag3" style="width: 80px; height:auto;"> <img id="imgTestTag4"> +<img id="imgTestTag5"> <script> var imageInstance = document.createElement('img'); @@ -23,11 +24,11 @@ <script> test(function() { assert_true(document.getElementById("imgTestTag").complete); - }, "img src omitted"); + }, "img src and srcset omitted"); test(function() { assert_true(document.getElementById("imgTestTag2").complete); - }, "img src empty"); + }, "img src empty and srset omitted"); // test if set to true after img is completely available var t = async_test("async src complete test"); @@ -50,6 +51,22 @@ document.getElementById("imgTestTag3").src = '3.jpg?nocache=' + Math.random(); }); + var t1 = async_test("async srcset complete test"); + t1.step(function(){ + var loaded = false; + document.getElementById("imgTestTag5").onload = t1.step_func_done(function(){ + assert_false(loaded); + loaded = true; + assert_true(document.getElementById("imgTestTag5").complete); + }, "Only one onload, despite setting the srcset twice"); + //Test if src, srcset is omitted + assert_true(document.getElementById("imgTestTag5").complete) + document.getElementById("imgTestTag5").srcset = "/images/green-256x256.png 1x"; + //test if img.complete is set to false if srcset is present + assert_false(document.getElementById("imgTestTag5").complete, "srcset present, should be set to false"); + //change src again, should make only one request as per 'await stable state' + document.getElementById("imgTestTag5").srcset="/images/green-256x256.png 1.6x" + }); // https://html.spec.whatwg.org/multipage/multipage/embedded-content-1.html#update-the-image-data // says to "await a stable state" before fetching so we use a separate <script> |