diff --git a/components/script/dom/htmlsourceelement.rs b/components/script/dom/htmlsourceelement.rs
index aff119cee9b7..770270d33793 100644
--- a/components/script/dom/htmlsourceelement.rs
+++ b/components/script/dom/htmlsourceelement.rs
@@ -3,9 +3,11 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLSourceElementBinding;
+use dom::bindings::codegen::Bindings::HTMLSourceElementBinding::HTMLSourceElementMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeBinding::NodeMethods;
use dom::bindings::inheritance::Castable;
use dom::bindings::root::DomRoot;
+use dom::bindings::str::DOMString;
use dom::document::Document;
use dom::htmlelement::HTMLElement;
use dom::htmlmediaelement::HTMLMediaElement;
@@ -53,3 +55,36 @@ impl VirtualMethods for HTMLSourceElement {
}
}
}
+
+impl HTMLSourceElementMethods for HTMLSourceElement {
+ // https://html.spec.whatwg.org/multipage/#dom-source-src
+ make_getter!(Src, "src");
+
+ // https://html.spec.whatwg.org/multipage/#dom-source-src
+ make_setter!(SetSrc, "src");
+
+ // https://html.spec.whatwg.org/multipage/#dom-source-type
+ make_getter!(Type, "type");
+
+ // https://html.spec.whatwg.org/multipage/#dom-source-type
+ make_setter!(SetType, "type");
+
+ // https://html.spec.whatwg.org/multipage/#dom-source-srcset
+ make_getter!(Srcset, "srcset");
+
+ // https://html.spec.whatwg.org/multipage/#dom-source-srcset
+ make_setter!(SetSrcset, "srcset");
+
+ // https://html.spec.whatwg.org/multipage/#dom-source-sizes
+ make_getter!(Sizes, "sizes");
+
+ // https://html.spec.whatwg.org/multipage/#dom-source-sizes
+ make_setter!(SetSizes, "sizes");
+
+ // https://html.spec.whatwg.org/multipage/#dom-source-media
+ make_getter!(Media, "media");
+
+ // https://html.spec.whatwg.org/multipage/#dom-source-media
+ make_setter!(SetMedia, "media");
+
+}
diff --git a/components/script/dom/webidls/HTMLSourceElement.webidl b/components/script/dom/webidls/HTMLSourceElement.webidl
index b62c3def6f8a..0e5b6ab14108 100644
--- a/components/script/dom/webidls/HTMLSourceElement.webidl
+++ b/components/script/dom/webidls/HTMLSourceElement.webidl
@@ -5,8 +5,14 @@
// https://html.spec.whatwg.org/multipage/#htmlsourceelement
[HTMLConstructor]
interface HTMLSourceElement : HTMLElement {
- // [CEReactions]
- // attribute DOMString src;
- // [CEReactions]
- // attribute DOMString type;
+ [CEReactions]
+ attribute DOMString src;
+ [CEReactions]
+ attribute DOMString type;
+ [CEReactions]
+ attribute DOMString srcset;
+ [CEReactions]
+ attribute DOMString sizes;
+ [CEReactions]
+ attribute DOMString media;
};