aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2018-09-20 00:26:06 -0400
committerGitHub <noreply@github.com>2018-09-20 00:26:06 -0400
commit819212e3b6817a60c83fe67fe758c32214f3fd11 (patch)
tree00a45f1c4f96a024815ca542e639a31c6bf30039
parentdf2adebefdfa3da49f173e480fa1e56450f9bda2 (diff)
parent7ab5df11064ccfb44158b168ae1719392b24e8fd (diff)
downloadservo-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 -->
-rw-r--r--components/script/dom/htmlimageelement.rs15
-rw-r--r--components/script/dom/webidls/HTMLImageElement.webidl4
-rw-r--r--tests/wpt/metadata/MANIFEST.json2
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini23
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative.html.ini6
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-display-none.html.ini52
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-quirks-mode.html.ini52
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html.ini52
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-width-1000px.html.ini52
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/img.complete.html21
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 &quot;general-enclosed&quot;) 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 &quot;general-enclosed&quot;) 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 &quot;general-enclosed&quot;) 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 &quot;general-enclosed&quot;) 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>