aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/htmlimageelement.rs17
-rw-r--r--components/script/dom/webidls/HTMLImageElement.webidl2
-rw-r--r--tests/wpt/metadata/MANIFEST.json6
-rw-r--r--tests/wpt/metadata/html/dom/interfaces.html.ini51
-rw-r--r--tests/wpt/mozilla/tests/mozilla/interfaces.html1
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html29
6 files changed, 53 insertions, 53 deletions
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index 2ea5442bff6..6580e4f42a5 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -7,8 +7,10 @@ use dom::attr::{AttrHelpers, AttrValue};
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::HTMLImageElementBinding;
use dom::bindings::codegen::Bindings::HTMLImageElementBinding::HTMLImageElementMethods;
+use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast, EventTargetCast, HTMLElementCast,
HTMLImageElementDerived};
+use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{LayoutJS, Root};
use dom::bindings::refcounted::Trusted;
@@ -151,6 +153,21 @@ impl HTMLImageElement {
let element = HTMLImageElement::new_inherited(localName, prefix, document);
Node::reflect_node(box element, document, HTMLImageElementBinding::Wrap)
}
+
+ pub fn Image(global: GlobalRef,
+ width: Option<u32>,
+ height: Option<u32>) -> Fallible<Root<HTMLImageElement>> {
+ let document = global.as_window().Document();
+ let image = HTMLImageElement::new("img".to_owned(), None, document.r());
+ if let Some(w) = width {
+ image.SetWidth(w);
+ }
+ if let Some(h) = height {
+ image.SetHeight(h);
+ }
+
+ Ok(image)
+ }
}
pub trait LayoutHTMLImageElementHelpers {
diff --git a/components/script/dom/webidls/HTMLImageElement.webidl b/components/script/dom/webidls/HTMLImageElement.webidl
index 71b49229393..defbfb68257 100644
--- a/components/script/dom/webidls/HTMLImageElement.webidl
+++ b/components/script/dom/webidls/HTMLImageElement.webidl
@@ -4,7 +4,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://www.whatwg.org/html/#htmlimageelement
-//[NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
+[NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
interface HTMLImageElement : HTMLElement {
attribute DOMString alt;
attribute DOMString src;
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 5b780fd14da..68e5e677b29 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -14118,6 +14118,10 @@
"url": "/html/semantics/embedded-content/the-img-element/img.complete.html"
},
{
+ "path": "html/semantics/embedded-content/the-img-element/Image-constructor.html",
+ "url": "/html/semantics/embedded-content/the-img-element/Image-constructor.html"
+ },
+ {
"path": "html/semantics/embedded-content/the-img-element/relevant-mutations.html",
"url": "/html/semantics/embedded-content/the-img-element/relevant-mutations.html"
},
@@ -30594,4 +30598,4 @@
"rev": "075802c1d3387d07e31cd5887459d539b1297c8d",
"url_base": "/",
"version": 2
-} \ No newline at end of file
+}
diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini
index 02a810d184b..975b61ab307 100644
--- a/tests/wpt/metadata/html/dom/interfaces.html.ini
+++ b/tests/wpt/metadata/html/dom/interfaces.html.ini
@@ -2745,18 +2745,6 @@
[HTMLImageElement interface: document.createElement("img") must inherit property "lowsrc" with the proper type (14)]
expected: FAIL
- [HTMLImageElement must be primary interface of new Image()]
- expected: FAIL
-
- [Stringification of new Image()]
- expected: FAIL
-
- [HTMLImageElement interface: new Image() must inherit property "alt" with the proper type (0)]
- expected: FAIL
-
- [HTMLImageElement interface: new Image() must inherit property "src" with the proper type (1)]
- expected: FAIL
-
[HTMLImageElement interface: new Image() must inherit property "srcset" with the proper type (2)]
expected: FAIL
@@ -2766,51 +2754,12 @@
[HTMLImageElement interface: new Image() must inherit property "crossOrigin" with the proper type (4)]
expected: FAIL
- [HTMLImageElement interface: new Image() must inherit property "useMap" with the proper type (5)]
- expected: FAIL
-
- [HTMLImageElement interface: new Image() must inherit property "isMap" with the proper type (6)]
- expected: FAIL
-
- [HTMLImageElement interface: new Image() must inherit property "width" with the proper type (7)]
- expected: FAIL
-
- [HTMLImageElement interface: new Image() must inherit property "height" with the proper type (8)]
- expected: FAIL
-
- [HTMLImageElement interface: new Image() must inherit property "naturalWidth" with the proper type (9)]
- expected: FAIL
-
- [HTMLImageElement interface: new Image() must inherit property "naturalHeight" with the proper type (10)]
- expected: FAIL
-
- [HTMLImageElement interface: new Image() must inherit property "complete" with the proper type (11)]
- expected: FAIL
-
[HTMLImageElement interface: new Image() must inherit property "currentSrc" with the proper type (12)]
expected: FAIL
- [HTMLImageElement interface: new Image() must inherit property "name" with the proper type (13)]
- expected: FAIL
-
[HTMLImageElement interface: new Image() must inherit property "lowsrc" with the proper type (14)]
expected: FAIL
- [HTMLImageElement interface: new Image() must inherit property "align" with the proper type (15)]
- expected: FAIL
-
- [HTMLImageElement interface: new Image() must inherit property "hspace" with the proper type (16)]
- expected: FAIL
-
- [HTMLImageElement interface: new Image() must inherit property "vspace" with the proper type (17)]
- expected: FAIL
-
- [HTMLImageElement interface: new Image() must inherit property "longDesc" with the proper type (18)]
- expected: FAIL
-
- [HTMLImageElement interface: new Image() must inherit property "border" with the proper type (19)]
- expected: FAIL
-
[HTMLIFrameElement interface: existence and properties of interface object]
expected: FAIL
diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.html b/tests/wpt/mozilla/tests/mozilla/interfaces.html
index e1933f77c76..effcfdae208 100644
--- a/tests/wpt/mozilla/tests/mozilla/interfaces.html
+++ b/tests/wpt/mozilla/tests/mozilla/interfaces.html
@@ -168,6 +168,7 @@ var interfaceNamesInGlobalScope = [
"HTMLUnknownElement",
"HTMLVideoElement",
"ImageData",
+ "Image",
"KeyboardEvent",
"Location",
"MessageEvent",
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html
new file mode 100644
index 00000000000..528d3c80773
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML>
+<title>DOM Image constructor Test</title>
+<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+<link rel="help" href="https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element" />
+<meta name="assert" content="Tests the Image constructor for the img-element">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+
+<div id="log"></div>
+<script>
+ test(function() {
+ var img = new Image();
+ assert_true(img != undefined);
+ }, "Image constructor works");
+
+ test(function() {
+ assert_true(Image.prototype === HTMLImageElement.prototype);
+ }, "Image and HTMLImageElement share a prototype");
+
+ test(function() {
+ assert_true((new Image()).localName === "img");
+ }, "Image localName is img");
+
+ test(function() {
+ assert_true((new Image()).namespaceURI === "http://www.w3.org/1999/xhtml");
+ }, "Image namespace URI is correct");
+
+</script>