aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlaudioelement.rs
diff options
context:
space:
mode:
authorVishnunarayan K I <appukuttancr@gmail.com>2018-11-07 00:38:12 +0530
committerVishnunarayan K I <appukuttancr@gmail.com>2018-11-20 13:30:45 +0530
commit684d1081d45ed1e840276718ab4afad0a6d5a70b (patch)
tree2b46fd0f3acdbffb400a807d39b73dffa35e9d87 /components/script/dom/htmlaudioelement.rs
parentf1dd31f70440fa9c7a40525bd1e03eede568f74d (diff)
downloadservo-684d1081d45ed1e840276718ab4afad0a6d5a70b.tar.gz
servo-684d1081d45ed1e840276718ab4afad0a6d5a70b.zip
Implement Audio constructor
Diffstat (limited to 'components/script/dom/htmlaudioelement.rs')
-rw-r--r--components/script/dom/htmlaudioelement.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/components/script/dom/htmlaudioelement.rs b/components/script/dom/htmlaudioelement.rs
index fbdce667f0c..af92835af6a 100644
--- a/components/script/dom/htmlaudioelement.rs
+++ b/components/script/dom/htmlaudioelement.rs
@@ -2,11 +2,18 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+use crate::dom::bindings::codegen::Bindings::ElementBinding::ElementBinding::ElementMethods;
use crate::dom::bindings::codegen::Bindings::HTMLAudioElementBinding;
+use crate::dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
+use crate::dom::bindings::error::Fallible;
+use crate::dom::bindings::inheritance::Castable;
use crate::dom::bindings::root::DomRoot;
+use crate::dom::bindings::str::DOMString;
use crate::dom::document::Document;
+use crate::dom::element::Element;
use crate::dom::htmlmediaelement::HTMLMediaElement;
use crate::dom::node::Node;
+use crate::dom::window::Window;
use dom_struct::dom_struct;
use html5ever::{LocalName, Prefix};
@@ -40,4 +47,23 @@ impl HTMLAudioElement {
HTMLAudioElementBinding::Wrap,
)
}
+
+ // https://html.spec.whatwg.org/multipage/#dom-audio
+ pub fn Audio(window: &Window, src: Option<DOMString>) -> Fallible<DomRoot<HTMLAudioElement>> {
+ let document = window.Document();
+ let audio = HTMLAudioElement::new(local_name!("audio"), None, &document);
+
+ audio
+ .upcast::<Element>()
+ .SetAttribute(DOMString::from("preload"), DOMString::from("auto"))
+ .expect("should be infallible");
+ if let Some(s) = src {
+ audio
+ .upcast::<Element>()
+ .SetAttribute(DOMString::from("src"), s)
+ .expect("should be infallible");
+ }
+
+ Ok(audio)
+ }
}