diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf index 6c085ece6b1..aab4b270349 100644 --- a/src/components/script/dom/bindings/codegen/Bindings.conf +++ b/src/components/script/dom/bindings/codegen/Bindings.conf @@ -586,6 +586,7 @@ addHTMLElement('HTMLLinkElement') addHTMLElement('HTMLMapElement') addHTMLElement('HTMLMetaElement') addHTMLElement('HTMLMeterElement') +addHTMLElement('HTMLModElement') addHTMLElement('HTMLOListElement') addHTMLElement('HTMLParagraphElement') addHTMLElement('HTMLProgressElement') diff --git a/src/components/script/dom/bindings/codegen/HTMLModElement.webidl b/src/components/script/dom/bindings/codegen/HTMLModElement.webidl new file mode 100644 index 00000000000..45086ccebbf --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLModElement.webidl @@ -0,0 +1,19 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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/. + * + * The origin of this IDL file is + * http://www.whatwg.org/specs/web-apps/current-work/#attributes-common-to-ins-and-del-elements + * © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and + * Opera Software ASA. You are granted a license to use, reproduce + * and create derivative works of this document. + */ + +// http://www.whatwg.org/specs/web-apps/current-work/#attributes-common-to-ins-and-del-elements +interface HTMLModElement : HTMLElement { + [SetterThrows, Pure] + attribute DOMString cite; + [SetterThrows, Pure] + attribute DOMString dateTime; +}; diff --git a/src/components/script/dom/bindings/element.rs b/src/components/script/dom/bindings/element.rs index 5e7d66b8c33..e351f4f113d 100644 --- a/src/components/script/dom/bindings/element.rs +++ b/src/components/script/dom/bindings/element.rs @@ -395,6 +395,8 @@ generate_cacheable_wrapper!(HTMLMetaElement, HTMLMetaElementBinding::Wrap) generate_binding_object!(HTMLMetaElement) generate_cacheable_wrapper!(HTMLMeterElement, HTMLMeterElementBinding::Wrap) generate_binding_object!(HTMLMeterElement) +generate_cacheable_wrapper!(HTMLModElement, HTMLModElementBinding::Wrap) +generate_binding_object!(HTMLModElement) generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap) generate_binding_object!(HTMLOListElement) generate_cacheable_wrapper!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap) diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs index eac6a91088a..f68d25187b0 100644 --- a/src/components/script/dom/bindings/node.rs +++ b/src/components/script/dom/bindings/node.rs @@ -103,6 +103,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode) -> *JSObject ElementNodeTypeId(HTMLMapElementTypeId) => generate_element!(HTMLMapElement), ElementNodeTypeId(HTMLMetaElementTypeId) => generate_element!(HTMLMetaElement), ElementNodeTypeId(HTMLMeterElementTypeId) => generate_element!(HTMLMeterElement), + ElementNodeTypeId(HTMLModElementTypeId) => generate_element!(HTMLModElement), ElementNodeTypeId(HTMLOListElementTypeId) => generate_element!(HTMLOListElement), ElementNodeTypeId(HTMLParagraphElementTypeId) => generate_element!(HTMLParagraphElement), ElementNodeTypeId(HTMLProgressElementTypeId) => generate_element!(HTMLProgressElement), diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index 40231b6d919..571d50ca248 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -79,6 +79,7 @@ pub enum ElementTypeId { HTMLMapElementTypeId, HTMLMetaElementTypeId, HTMLMeterElementTypeId, + HTMLModElementTypeId, HTMLOListElementTypeId, HTMLOptionElementTypeId, HTMLParagraphElementTypeId, diff --git a/src/components/script/dom/htmlmodelement.rs b/src/components/script/dom/htmlmodelement.rs new file mode 100644 index 00000000000..aec788fc674 --- /dev/null +++ b/src/components/script/dom/htmlmodelement.rs @@ -0,0 +1,26 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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::utils::{DOMString, null_string, ErrorResult}; +use dom::htmlelement::HTMLElement; + +pub struct HTMLModElement { + parent: HTMLElement +} + +impl HTMLModElement { + pub fn Cite(&self) -> DOMString { + null_string + } + + pub fn SetCite(&mut self, _cite: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn DateTime(&self) -> DOMString { + null_string + } + + pub fn SetDateTime(&mut self, _datetime: &DOMString, _rv: &mut ErrorResult) { + } +} diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs index e88a4194e31..157173b2720 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -213,6 +213,7 @@ fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode handle_element!(cx, tag, "map", HTMLMapElementTypeId, HTMLMapElement, []); handle_element!(cx, tag, "meta", HTMLMetaElementTypeId, HTMLMetaElement, []); handle_element!(cx, tag, "meter", HTMLMeterElementTypeId, HTMLMeterElement, []); + handle_element!(cx, tag, "mod", HTMLModElementTypeId, HTMLModElement, []); handle_element!(cx, tag, "ol", HTMLOListElementTypeId, HTMLOListElement, []); handle_element!(cx, tag, "option", HTMLOptionElementTypeId, HTMLOptionElement, []); handle_element!(cx, tag, "p", HTMLParagraphElementTypeId, HTMLParagraphElement, []); diff --git a/src/components/script/script.rc b/src/components/script/script.rc index 280ae8f7d73..c4e3db1237c 100644 --- a/src/components/script/script.rc +++ b/src/components/script/script.rc @@ -88,6 +88,7 @@ pub mod dom { pub mod htmlmapelement; pub mod htmlmetaelement; pub mod htmlmeterelement; + pub mod htmlmodelement; pub mod htmlolistelement; pub mod htmlparagraphelement; pub mod htmlprogresselement;