diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index 7261f34b8ca..62523e61f4e 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -1147,10 +1147,16 @@ impl HTMLImageElementMethods for HTMLImageElement {
// https://html.spec.whatwg.org/multipage/#dom-img-currentsrc
fn CurrentSrc(&self) -> DOMString {
- let ref url = self.current_request.borrow().source_url;
+ let ref url = self.current_request.borrow().parsed_url;
match *url {
- Some(ref url) => url.clone(),
- None => DOMString::from(""),
+ Some(ref url) => DOMString::from_string(url.clone().into_string()),
+ None => {
+ let ref unparsed_url = self.current_request.borrow().source_url;
+ match *unparsed_url {
+ Some(ref url) => url.clone(),
+ None => DOMString::from("")
+ }
+ },
}
}
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 871365683e8..f4144818dff 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -601198,7 +601198,7 @@
"support"
],
"html/semantics/embedded-content/the-img-element/img.complete.html": [
- "771b8e1b80e6ad41b5cf703b5a1e99bd23b35416",
+ "4be8d4db848ad259a508e1a8091feaae7733e784",
"testharness"
],
"html/semantics/embedded-content/the-img-element/invalid-src.html": [
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/adoption.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/adoption.html.ini
index cc5121db0aa..0cc1f123d22 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/adoption.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/adoption.html.ini
@@ -1,26 +1,5 @@
[adoption.html]
type: testharness
- [img (src only)]
- expected: FAIL
-
- [img (src only), parent is picture]
- expected: FAIL
-
- [img (src only), previous sibling is source]
- expected: FAIL
-
- [img (srcset 1 cand)]
- expected: FAIL
-
- [img (srcset 1 cand), parent is picture]
- expected: FAIL
-
- [img (srcset 1 cand), previous sibling is source]
- expected: FAIL
-
- [adopt a cloned img in template]
- expected: FAIL
-
[adoption is from appendChild]
expected: FAIL
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 950f79cd841..bf38830e982 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,69 +1,27 @@
[viewport-change.html]
type: testharness
expected: TIMEOUT
- [img (src only) broken image, onload, narrow]
- expected: FAIL
-
- [img (src only) valid image, onload, narrow]
- expected: FAIL
-
[img (srcset 1 cand) broken image, onload, narrow]
expected: FAIL
[img (srcset 1 cand) valid image, onload, narrow]
expected: FAIL
- [picture: source (max-width:500px) broken image, img broken image, onload, narrow]
- expected: FAIL
-
- [picture: source (max-width:500px) broken image, img valid image, onload, narrow]
- expected: FAIL
-
[picture: source (max-width:500px) broken image, img valid image, resize to wide]
expected: TIMEOUT
- [picture: source (max-width:500px) valid image, img broken image, onload, narrow]
- expected: FAIL
-
- [picture: source (max-width:500px) valid image, img valid image, onload, narrow]
- expected: FAIL
-
[picture: source (max-width:500px) valid image, img valid image, resize to wide]
expected: TIMEOUT
- [picture: same URL in source (max-width:500px) and img, onload, narrow]
- expected: FAIL
-
- [img (src only) broken image, onload, wide]
- expected: FAIL
-
- [img (src only) valid image, onload, wide]
- expected: FAIL
-
[img (srcset 1 cand) broken image, onload, wide]
expected: FAIL
[img (srcset 1 cand) valid image, onload, wide]
expected: FAIL
- [picture: source (max-width:500px) broken image, img broken image, onload, wide]
- expected: FAIL
-
- [picture: source (max-width:500px) broken image, img valid image, onload, wide]
- expected: FAIL
-
- [picture: source (max-width:500px) valid image, img broken image, onload, 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, onload, wide]
- expected: FAIL
-
[picture: source (max-width:500px) valid image, img valid image, resize to narrow]
expected: TIMEOUT
- [picture: same URL in source (max-width:500px) and img, onload, wide]
- 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 771b8e1b80e..4be8d4db848 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
@@ -38,8 +38,9 @@
assert_false(loaded);
loaded = true;
assert_true(document.getElementById("imgTestTag3").complete);
- var currentSrc = document.getElementById("imgTestTag3").currentSrc
- assert_equals(new URL(window.location.origin + "/" + currentSrc).pathname, "/3.jpg");
+ var currentSrc = document.getElementById("imgTestTag3").currentSrc;
+ var expectedUrl = new URL("3.jpg", window.location);
+ assert_equals(new URL(currentSrc).pathname, expectedUrl.pathname);
}, "Only one onload, despite setting the src twice");
document.getElementById("imgTestTag3").src = 'test' + Math.random();