diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/script/dom/bindings/codegen/Bindings.conf | 1 | ||||
-rw-r--r-- | src/components/script/dom/bindings/codegen/CodegenRust.py | 1 | ||||
-rw-r--r-- | src/components/script/dom/bindings/codegen/HTMLProgressElement.webidl | 27 | ||||
-rw-r--r-- | src/components/script/dom/bindings/node.rs | 5 | ||||
-rw-r--r-- | src/components/script/dom/element.rs | 6 | ||||
-rw-r--r-- | src/components/script/dom/htmlprogresselement.rs | 34 | ||||
-rw-r--r-- | src/components/script/html/hubbub_html_parser.rs | 5 | ||||
-rw-r--r-- | src/components/script/script.rc | 2 | ||||
-rw-r--r-- | src/test/html/test_bindings.html | 1 | ||||
-rw-r--r-- | src/test/html/test_bindings.js | 7 |
10 files changed, 86 insertions, 3 deletions
diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf index f9cdc2e40ba..e78a55ecbd1 100644 --- a/src/components/script/dom/bindings/codegen/Bindings.conf +++ b/src/components/script/dom/bindings/codegen/Bindings.conf @@ -567,6 +567,7 @@ addHTMLElement('HTMLLinkElement') addHTMLElement('HTMLMetaElement') addHTMLElement('HTMLOListElement') addHTMLElement('HTMLParagraphElement') +addHTMLElement('HTMLProgressElement') addHTMLElement('HTMLQuoteElement') addHTMLElement('HTMLScriptElement') addHTMLElement('HTMLSourceElement') diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 291c1afa197..acf677d6b7d 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -4636,6 +4636,7 @@ class CGBindingRoot(CGThing): 'dom::htmllinkelement::HTMLLinkElement', #XXXrecrack 'dom::htmlmetaelement::HTMLMetaElement', 'dom::htmlolistelement::HTMLOListElement', + 'dom::htmlprogresselement::HTMLProgressElement', 'dom::htmlquoteelement::HTMLQuoteElement', 'dom::htmlscriptelement::HTMLScriptElement', 'dom::htmlsourceelement::HTMLSourceElement', diff --git a/src/components/script/dom/bindings/codegen/HTMLProgressElement.webidl b/src/components/script/dom/bindings/codegen/HTMLProgressElement.webidl new file mode 100644 index 00000000000..99cffb8c35d --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLProgressElement.webidl @@ -0,0 +1,27 @@ +/* -*- 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/#the-progress-element + * + * © 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. + */ + +// original import from: +// http://hg.mozilla.org/mozilla-central/filelog/8c240c67f76c/dom/webidl/HTMLProgressElement.webidl + +interface HTMLProgressElement : HTMLElement { + [SetterThrows] + attribute double value; + [SetterThrows] + attribute double max; + readonly attribute double position; + +/* + readonly attribute NodeList labels; +*/ +}; diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs index 75140b2643c..f69fd1f2225 100644 --- a/src/components/script/dom/bindings/node.rs +++ b/src/components/script/dom/bindings/node.rs @@ -15,7 +15,8 @@ use dom::element::{HTMLElementTypeId, HTMLHtmlElementTypeId, HTMLIframeElementTypeId, HTMLImageElementTypeId, HTMLInputElementTypeId, HTMLLIElementTypeId, HTMLLinkElementTypeId, HTMLMetaElementTypeId, HTMLOListElementTypeId, - HTMLParagraphElementTypeId, HTMLQuoteElementTypeId, HTMLScriptElementTypeId, + HTMLParagraphElementTypeId, HTMLProgressElementTypeId, + HTMLQuoteElementTypeId, HTMLScriptElementTypeId, HTMLSpanElementTypeId, HTMLSourceElementTypeId, HTMLStyleElementTypeId, HTMLTextAreaElementTypeId, HTMLTableElementTypeId, HTMLTableCaptionElementTypeId, HTMLTableCellElementTypeId, @@ -41,6 +42,7 @@ use dom::htmllielement::HTMLLIElement; use dom::htmllinkelement::HTMLLinkElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; +use dom::htmlprogresselement::HTMLProgressElement; use dom::htmlquoteelement::HTMLQuoteElement; use dom::htmlscriptelement::HTMLScriptElement; use dom::htmlsourceelement::HTMLSourceElement; @@ -141,6 +143,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> *JSObject ElementNodeTypeId(HTMLMetaElementTypeId) => generate_element!(HTMLMetaElement), ElementNodeTypeId(HTMLOListElementTypeId) => generate_element!(HTMLOListElement), ElementNodeTypeId(HTMLParagraphElementTypeId) => generate_element!(HTMLParagraphElement), + ElementNodeTypeId(HTMLProgressElementTypeId) => generate_element!(HTMLProgressElement), ElementNodeTypeId(HTMLQuoteElementTypeId) => generate_element!(HTMLQuoteElement), ElementNodeTypeId(HTMLScriptElementTypeId) => generate_element!(HTMLScriptElement), ElementNodeTypeId(HTMLSourceElementTypeId) => generate_element!(HTMLSourceElement), diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index 7d3a0a80849..d6217d0ce54 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -15,7 +15,7 @@ use dom::bindings::codegen::{HTMLAnchorElementBinding, HTMLAppletElementBinding, HTMLLIElementBinding, HTMLLinkElementBinding, HTMLMetaElementBinding, HTMLOListElementBinding, HTMLParagraphElementBinding, - HTMLQuoteElementBinding, + HTMLProgressElementBinding, HTMLQuoteElementBinding, HTMLScriptElementBinding, HTMLSourceElementBinding, HTMLSpanElementBinding, HTMLStyleElementBinding, HTMLTableElementBinding, HTMLTableCaptionElementBinding, HTMLTableCellElementBinding, @@ -45,6 +45,7 @@ use dom::htmllielement::HTMLLIElement; use dom::htmllinkelement::HTMLLinkElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; +use dom::htmlprogresselement::HTMLProgressElement; use dom::htmlquoteelement::HTMLQuoteElement; use dom::htmlscriptelement::HTMLScriptElement; use dom::htmlsourceelement::HTMLSourceElement; @@ -122,6 +123,7 @@ pub enum ElementTypeId { HTMLOListElementTypeId, HTMLOptionElementTypeId, HTMLParagraphElementTypeId, + HTMLProgressElementTypeId, HTMLQuoteElementTypeId, HTMLScriptElementTypeId, HTMLSelectElementTypeId, @@ -252,6 +254,8 @@ generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap) generate_binding_object!(HTMLOListElement) generate_cacheable_wrapper!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap) generate_binding_object!(HTMLParagraphElement) +generate_cacheable_wrapper!(HTMLProgressElement, HTMLProgressElementBinding::Wrap) +generate_binding_object!(HTMLProgressElement) generate_cacheable_wrapper!(HTMLQuoteElement, HTMLQuoteElementBinding::Wrap) generate_binding_object!(HTMLQuoteElement) generate_cacheable_wrapper!(HTMLScriptElement, HTMLScriptElementBinding::Wrap) diff --git a/src/components/script/dom/htmlprogresselement.rs b/src/components/script/dom/htmlprogresselement.rs new file mode 100644 index 00000000000..b4aebf5c8cd --- /dev/null +++ b/src/components/script/dom/htmlprogresselement.rs @@ -0,0 +1,34 @@ +/* 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::{ErrorResult}; +use dom::htmlelement::HTMLElement; + +pub struct HTMLProgressElement { + parent: HTMLElement, +} + +impl HTMLProgressElement { + pub fn Value(&self) -> f64 { + 0f64 + } + + pub fn SetValue(&mut self, _value: f64, _rv: &mut ErrorResult) { + } + + pub fn Max(&self) -> f64 { + 0f64 + } + + pub fn SetMax(&mut self, _max: f64, _rv: &mut ErrorResult) { + } + + pub fn Position(&self) -> f64 { + 0f64 + } + + pub fn GetPositiom(&self, _rv: &mut ErrorResult) -> f64 { + 0f64 + } +} diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs index 6fa9ca19ce3..8ed87121667 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -12,7 +12,8 @@ use dom::element::{HTMLElementTypeId, HTMLImageElementTypeId, HTMLIframeElementTypeId, HTMLInputElementTypeId, HTMLLinkElementTypeId, HTMLLIElementTypeId, HTMLMetaElementTypeId, HTMLOListElementTypeId, HTMLOptionElementTypeId, - HTMLParagraphElementTypeId, HTMLQuoteElementTypeId, HTMLScriptElementTypeId, + HTMLParagraphElementTypeId, HTMLProgressElementTypeId, + HTMLQuoteElementTypeId, HTMLScriptElementTypeId, HTMLSelectElementTypeId, HTMLSmallElementTypeId, HTMLSourceElementTypeId, HTMLSpanElementTypeId, HTMLStyleElementTypeId, HTMLTableSectionElementTypeId, HTMLTableCellElementTypeId, HTMLTableElementTypeId, @@ -44,6 +45,7 @@ use dom::htmllielement::HTMLLIElement; use dom::htmllinkelement::HTMLLinkElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; +use dom::htmlprogresselement::HTMLProgressElement; use dom::htmlquoteelement::HTMLQuoteElement; use dom::htmlscriptelement::HTMLScriptElement; use dom::htmlsourceelement::HTMLSourceElement; @@ -260,6 +262,7 @@ fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode<ScriptView> handle_element!(cx, tag, "ol", HTMLOListElementTypeId, HTMLOListElement, []); handle_element!(cx, tag, "option", HTMLOptionElementTypeId, HTMLOptionElement, []); handle_element!(cx, tag, "p", HTMLParagraphElementTypeId, HTMLParagraphElement, []); + handle_element!(cx, tag, "progress",HTMLProgressElementTypeId, HTMLProgressElement, []); handle_element!(cx, tag, "q", HTMLQuoteElementTypeId, HTMLQuoteElement, []); handle_element!(cx, tag, "script", HTMLScriptElementTypeId, HTMLScriptElement, []); handle_element!(cx, tag, "select", HTMLSelectElementTypeId, HTMLSelectElement, []); diff --git a/src/components/script/script.rc b/src/components/script/script.rc index 9a3e178c1d7..037ba1aef63 100644 --- a/src/components/script/script.rc +++ b/src/components/script/script.rc @@ -66,6 +66,7 @@ pub mod dom { pub mod HTMLMetaElementBinding; pub mod HTMLOListElementBinding; pub mod HTMLParagraphElementBinding; + pub mod HTMLProgressElementBinding; pub mod HTMLQuoteElementBinding; pub mod HTMLScriptElementBinding; pub mod HTMLSourceElementBinding; @@ -121,6 +122,7 @@ pub mod dom { pub mod htmllinkelement; pub mod htmlmetaelement; pub mod htmlolistelement; + pub mod htmlprogresselement; pub mod htmlquoteelement; pub mod htmlscriptelement; pub mod htmlsourceelement; diff --git a/src/test/html/test_bindings.html b/src/test/html/test_bindings.html index 4c80356ccfb..5408f6f5d33 100644 --- a/src/test/html/test_bindings.html +++ b/src/test/html/test_bindings.html @@ -20,6 +20,7 @@ <canvas/> <p>pppppppppp</p> <q>qqqqqqqqqqqqqqqqqqqqqqqqqqq</q> + <progress max="100" value="80">80%</progress> <applet></applet> <input type="text" value="input"/> <iframe></iframe> diff --git a/src/test/html/test_bindings.js b/src/test/html/test_bindings.js index a211d12fe21..007101bf66d 100644 --- a/src/test/html/test_bindings.js +++ b/src/test/html/test_bindings.js @@ -234,6 +234,13 @@ window.alert(tags.length); window.alert(tags[0].tagName); window.alert(tags[0] instanceof HTMLLLIElement); +window.alert("HTMLProgressElement:"); +let tags = document.getElementsByTagName("progress"); +window.alert(tags); +window.alert(tags.length); +window.alert(tags[0].tagName); +window.alert(tags[0] instanceof HTMLProgressElement); + //TODO: Doesn't work until we throw proper exceptions instead of returning 0 on // unwrap failure. /*try { |