aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-12-03 13:23:27 -0800
committerGitHub <noreply@github.com>2016-12-03 13:23:27 -0800
commit8992b654102f83bb809fa230ea3a5b84c2758946 (patch)
treedfeda6a0bf89e64a081ba01e1a63050996c356f9 /components
parentbd5eef58a21d54f256fed0734afe8cdce4ebb226 (diff)
parent25f0317a82551dd08d073930074e6e5c86a93d24 (diff)
downloadservo-8992b654102f83bb809fa230ea3a5b84c2758946.tar.gz
servo-8992b654102f83bb809fa230ea3a5b84c2758946.zip
Auto merge of #14086 - chajath:time-datetime-attribute, r=ConnorGBrewster
Add DateTime string attribute to Time <!-- 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 part of #12967, content parsing will come as a separate PR. <!-- Either: --> - [X] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- 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/14086) <!-- Reviewable:end -->
Diffstat (limited to 'components')
-rw-r--r--components/script/dom/htmltimeelement.rs27
-rw-r--r--components/script/dom/webidls/HTMLTimeElement.webidl2
2 files changed, 26 insertions, 3 deletions
diff --git a/components/script/dom/htmltimeelement.rs b/components/script/dom/htmltimeelement.rs
index e7d9e049baa..84794443e02 100644
--- a/components/script/dom/htmltimeelement.rs
+++ b/components/script/dom/htmltimeelement.rs
@@ -2,23 +2,27 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+use dom::bindings::codegen::Bindings::ElementBinding::ElementBinding::ElementMethods;
use dom::bindings::codegen::Bindings::HTMLTimeElementBinding;
+use dom::bindings::codegen::Bindings::HTMLTimeElementBinding::HTMLTimeElementMethods;
+use dom::bindings::inheritance::Castable;
use dom::bindings::js::Root;
use dom::bindings::str::DOMString;
use dom::document::Document;
+use dom::element::Element;
use dom::htmlelement::HTMLElement;
use dom::node::Node;
use html5ever_atoms::LocalName;
#[dom_struct]
pub struct HTMLTimeElement {
- htmlelement: HTMLElement
+ htmlelement: HTMLElement,
}
impl HTMLTimeElement {
fn new_inherited(local_name: LocalName, prefix: Option<DOMString>, document: &Document) -> HTMLTimeElement {
HTMLTimeElement {
- htmlelement: HTMLElement::new_inherited(local_name, prefix, document)
+ htmlelement: HTMLElement::new_inherited(local_name, prefix, document),
}
}
@@ -31,3 +35,22 @@ impl HTMLTimeElement {
HTMLTimeElementBinding::Wrap)
}
}
+
+impl HTMLTimeElementMethods for HTMLTimeElement {
+ // https://html.spec.whatwg.org/multipage/#dom-time-datetime
+ //make_getter!(DateTime, "datetime");
+ fn DateTime(&self) -> DOMString {
+ let element = self.upcast::<Element>();
+ if element.has_attribute(&local_name!("datetime")) {
+ return element.get_string_attribute(&local_name!("datetime"))
+ } else {
+ match element.GetInnerHTML() {
+ Ok(x) => x,
+ _ => DOMString::new(),
+ }
+ }
+ }
+
+ // https://html.spec.whatwg.org/multipage/#dom-time-datetime
+ make_setter!(SetDateTime, "datetime");
+}
diff --git a/components/script/dom/webidls/HTMLTimeElement.webidl b/components/script/dom/webidls/HTMLTimeElement.webidl
index 21f9dcf090e..5f2ac73d4cb 100644
--- a/components/script/dom/webidls/HTMLTimeElement.webidl
+++ b/components/script/dom/webidls/HTMLTimeElement.webidl
@@ -4,5 +4,5 @@
// https://html.spec.whatwg.org/multipage/#htmltimeelement
interface HTMLTimeElement : HTMLElement {
- // attribute DOMString dateTime;
+ attribute DOMString dateTime;
};