diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf index e78a55ecbd1..2ee86c3cca1 100644 --- a/src/components/script/dom/bindings/codegen/Bindings.conf +++ b/src/components/script/dom/bindings/codegen/Bindings.conf @@ -370,6 +370,9 @@ DOMInterfaces = { 'UIEvent': { }, +'ValidityState': { +}, + 'WebGLRenderingContext': { 'nativeType': 'mozilla::WebGLContext', 'headerFile': 'WebGLContext.h', @@ -548,15 +551,25 @@ def addHTMLElement(element): addHTMLElement('HTMLAnchorElement') addHTMLElement('HTMLAppletElement') addHTMLElement('HTMLAreaElement') +addHTMLElement('HTMLButtonElement') addHTMLElement('HTMLBaseElement') addHTMLElement('HTMLBodyElement') addHTMLElement('HTMLBRElement') addHTMLElement('HTMLCanvasElement') addHTMLElement('HTMLDataElement') addHTMLElement('HTMLDivElement') +addHTMLElement('HTMLDataListElement') +addHTMLElement('HTMLDirectoryElement') addHTMLElement('HTMLDListElement') addHTMLElement('HTMLElement') +addHTMLElement('HTMLEmbedElement') +addHTMLElement('HTMLFieldSetElement') +addHTMLElement('HTMLFontElement') +addHTMLElement('HTMLFormElement') +addHTMLElement('HTMLFrameElement') +addHTMLElement('HTMLFrameSetElement') addHTMLElement('HTMLHeadElement') +addHTMLElement('HTMLHeadingElement') addHTMLElement('HTMLHtmlElement') addHTMLElement('HTMLHRElement') addHTMLElement('HTMLIFrameElement') @@ -564,6 +577,7 @@ addHTMLElement('HTMLImageElement') addHTMLElement('HTMLInputElement') addHTMLElement('HTMLLIElement') addHTMLElement('HTMLLinkElement') +addHTMLElement('HTMLMapElement') addHTMLElement('HTMLMetaElement') addHTMLElement('HTMLOListElement') addHTMLElement('HTMLParagraphElement') diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index acf677d6b7d..c9dc5d28aee 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -4623,17 +4623,27 @@ class CGBindingRoot(CGThing): 'dom::htmlbaseelement::HTMLBaseElement', #XXXjune0cho 'dom::htmlbodyelement::HTMLBodyElement', #XXXjune0cho 'dom::htmlbrelement::HTMLBRElement', #XXXrecrack + 'dom::htmlbuttonelement::HTMLButtonElement', #XXXjdm 'dom::htmlcanvaselement::HTMLCanvasElement', 'dom::htmldataelement::HTMLDataElement', #XXXjune0cho + 'dom::htmldatalistelement::HTMLDataListElement', 'dom::htmldlistelement::HTMLDListElement', + 'dom::htmldirectoryelement::HTMLDirectoryElement', 'dom::htmlelement::HTMLElement', #XXXjdm + 'dom::htmlembedelement::HTMLEmbedElement', #XXXjdm + 'dom::htmlfieldsetelement::HTMLFieldSetElement', #XXXjdm + 'dom::htmlfontelement::HTMLFontElement', #XXXjdm + 'dom::htmlframeelement::HTMLFrameElement', #XXXjdm + 'dom::htmlframesetelement::HTMLFrameSetElement', #XXXjdm 'dom::htmldocument::HTMLDocument', #XXXjdm + 'dom::htmlheadingelement::HTMLHeadingElement', 'dom::htmlhrelement::HTMLHRElement', 'dom::htmliframeelement::HTMLIFrameElement', #XXXjdm 'dom::htmlimageelement::HTMLImageElement', #XXXjdm 'dom::htmlinputelement::HTMLInputElement', 'dom::htmllielement::HTMLLIElement', 'dom::htmllinkelement::HTMLLinkElement', #XXXrecrack + 'dom::htmlmapelement::HTMLMapElement', 'dom::htmlmetaelement::HTMLMetaElement', 'dom::htmlolistelement::HTMLOListElement', 'dom::htmlprogresselement::HTMLProgressElement', @@ -4664,6 +4674,7 @@ class CGBindingRoot(CGThing): 'dom::formdata::*', #XXXjdm 'dom::mouseevent::*', #XXXjdm 'dom::uievent::*', #XXXjdm + 'dom::validitystate::*', #XXXjdm 'dom::windowproxy::*', #XXXjdm 'dom::window::Window', #XXXjdm 'dom::bindings::codegen::*', #XXXjdm diff --git a/src/components/script/dom/bindings/codegen/HTMLButtonElement.webidl b/src/components/script/dom/bindings/codegen/HTMLButtonElement.webidl new file mode 100644 index 00000000000..2160e7595be --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLButtonElement.webidl @@ -0,0 +1,50 @@ +/* -*- 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-button-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. + */ + +interface HTMLFormElement; + +// http://www.whatwg.org/specs/web-apps/current-work/#the-button-element +interface HTMLButtonElement : HTMLElement { + [SetterThrows, Pure] + attribute boolean autofocus; + [SetterThrows, Pure] + attribute boolean disabled; + [Pure] + readonly attribute HTMLFormElement? form; + [SetterThrows, Pure] + attribute DOMString formAction; + [SetterThrows, Pure] + attribute DOMString formEnctype; + [SetterThrows, Pure] + attribute DOMString formMethod; + [SetterThrows, Pure] + attribute boolean formNoValidate; + [SetterThrows, Pure] + attribute DOMString formTarget; + [SetterThrows, Pure] + attribute DOMString name; + [SetterThrows, Pure] + attribute DOMString type; + [SetterThrows, Pure] + attribute DOMString value; +// Not yet implemented: +// attribute HTMLMenuElement? menu; + + readonly attribute boolean willValidate; + readonly attribute ValidityState validity; + readonly attribute DOMString validationMessage; + boolean checkValidity(); + void setCustomValidity(DOMString error); + +// Not yet implemented: +// readonly attribute NodeList labels; +}; diff --git a/src/components/script/dom/bindings/codegen/HTMLDataListElement.webidl b/src/components/script/dom/bindings/codegen/HTMLDataListElement.webidl new file mode 100644 index 00000000000..83b20cd2bc3 --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLDataListElement.webidl @@ -0,0 +1,16 @@ +/* -*- 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/ + * + * © 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. + */ + +interface HTMLDataListElement : HTMLElement { + readonly attribute HTMLCollection options; +}; diff --git a/src/components/script/dom/bindings/codegen/HTMLDirectoryElement.webidl b/src/components/script/dom/bindings/codegen/HTMLDirectoryElement.webidl new file mode 100644 index 00000000000..9d5160af1bc --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLDirectoryElement.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/#other-elements,-attributes-and-apis + * + * © 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/#other-elements,-attributes-and-apis +interface HTMLDirectoryElement : HTMLElement { + [SetterThrows, Pure] + attribute boolean compact; +}; + diff --git a/src/components/script/dom/bindings/codegen/HTMLEmbedElement.webidl b/src/components/script/dom/bindings/codegen/HTMLEmbedElement.webidl new file mode 100644 index 00000000000..06d966905d5 --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLEmbedElement.webidl @@ -0,0 +1,45 @@ +/* -*- 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-embed-element + * http://www.whatwg.org/specs/web-apps/current-work/#HTMLEmbedElement-partial + * + * © 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/#the-embed-element +[NeedNewResolve] +interface HTMLEmbedElement : HTMLElement { + [Pure, SetterThrows] + attribute DOMString src; + [Pure, SetterThrows] + attribute DOMString type; + [Pure, SetterThrows] + attribute DOMString width; + [Pure, SetterThrows] + attribute DOMString height; + //[Throws] + //legacycaller any (any... arguments); +}; + +// http://www.whatwg.org/specs/web-apps/current-work/#HTMLEmbedElement-partial +partial interface HTMLEmbedElement { + [Pure, SetterThrows] + attribute DOMString align; + [Pure, SetterThrows] + attribute DOMString name; +}; + +partial interface HTMLEmbedElement { + // GetSVGDocument + Document? getSVGDocument(); +}; + +//HTMLEmbedElement implements MozImageLoadingContent; +//HTMLEmbedElement implements MozFrameLoaderOwner; +//HTMLEmbedElement implements MozObjectLoadingContent; diff --git a/src/components/script/dom/bindings/codegen/HTMLFieldSetElement.webidl b/src/components/script/dom/bindings/codegen/HTMLFieldSetElement.webidl new file mode 100644 index 00000000000..16eee1f9323 --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLFieldSetElement.webidl @@ -0,0 +1,32 @@ +/* -*- 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-fieldset-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. + */ + +interface HTMLFieldSetElement : HTMLElement { + [SetterThrows] + attribute boolean disabled; + readonly attribute HTMLFormElement? form; + [SetterThrows] + attribute DOMString name; + + readonly attribute DOMString type; + + readonly attribute HTMLCollection elements; + + readonly attribute boolean willValidate; + readonly attribute ValidityState validity; + readonly attribute DOMString validationMessage; + + boolean checkValidity(); + + void setCustomValidity(DOMString error); +}; diff --git a/src/components/script/dom/bindings/codegen/HTMLFontElement.webidl b/src/components/script/dom/bindings/codegen/HTMLFontElement.webidl new file mode 100644 index 00000000000..781dabb889f --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLFontElement.webidl @@ -0,0 +1,18 @@ +/* -*- 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/ + * + * © 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. + */ + +interface HTMLFontElement : HTMLElement { + [TreatNullAs=EmptyString, SetterThrows] attribute DOMString color; + [SetterThrows] attribute DOMString face; + [SetterThrows] attribute DOMString size; +}; diff --git a/src/components/script/dom/bindings/codegen/HTMLFrameElement.webidl b/src/components/script/dom/bindings/codegen/HTMLFrameElement.webidl new file mode 100644 index 00000000000..4a62c3f9bee --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLFrameElement.webidl @@ -0,0 +1,34 @@ +/* -*- 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/#htmlframeelement + * © 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/#htmlframeelement +interface HTMLFrameElement : HTMLElement { + [SetterThrows] + attribute DOMString name; + [SetterThrows] + attribute DOMString scrolling; + [SetterThrows] + attribute DOMString src; + [SetterThrows] + attribute DOMString frameBorder; + [SetterThrows] + attribute DOMString longDesc; + [SetterThrows] + attribute boolean noResize; + readonly attribute Document? contentDocument; + readonly attribute WindowProxy? contentWindow; + + [TreatNullAs=EmptyString, SetterThrows] attribute DOMString marginHeight; + [TreatNullAs=EmptyString, SetterThrows] attribute DOMString marginWidth; +}; + +//HTMLFrameElement implements MozFrameLoaderOwner; diff --git a/src/components/script/dom/bindings/codegen/HTMLFrameSetElement.webidl b/src/components/script/dom/bindings/codegen/HTMLFrameSetElement.webidl new file mode 100644 index 00000000000..6cc4d98cea1 --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLFrameSetElement.webidl @@ -0,0 +1,21 @@ +/* -*- 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/ + * + * © 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. + */ + +interface HTMLFrameSetElement : HTMLElement { + [SetterThrows] + attribute DOMString cols; + [SetterThrows] + attribute DOMString rows; +}; + +//HTMLFrameSetElement implements WindowEventHandlers; diff --git a/src/components/script/dom/bindings/codegen/HTMLHeadingElement.webidl b/src/components/script/dom/bindings/codegen/HTMLHeadingElement.webidl new file mode 100644 index 00000000000..37e7396dfdd --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLHeadingElement.webidl @@ -0,0 +1,21 @@ +/* -*- 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-h1,-h2,-h3,-h4,-h5,-and-h6-elements + * http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis + * © 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/#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements +interface HTMLHeadingElement : HTMLElement { +}; + +// http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis +partial interface HTMLHeadingElement { + attribute DOMString align; +}; diff --git a/src/components/script/dom/bindings/codegen/HTMLMapElement.webidl b/src/components/script/dom/bindings/codegen/HTMLMapElement.webidl new file mode 100644 index 00000000000..88fe4e54c95 --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLMapElement.webidl @@ -0,0 +1,21 @@ +/* -*- 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-map-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. + */ + +// http://www.whatwg.org/specs/web-apps/current-work/#the-map-element +interface HTMLMapElement : HTMLElement { + [SetterThrows, Pure] + attribute DOMString name; + [Constant] + readonly attribute HTMLCollection areas; + // Not supported yet. + //readonly attribute HTMLCollection images; +}; diff --git a/src/components/script/dom/bindings/codegen/ValidityState.webidl b/src/components/script/dom/bindings/codegen/ValidityState.webidl new file mode 100644 index 00000000000..d8d1d1bccd8 --- /dev/null +++ b/src/components/script/dom/bindings/codegen/ValidityState.webidl @@ -0,0 +1,25 @@ +/* -*- 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/#validitystate + * © 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. + */ + +interface ValidityState { + readonly attribute boolean valueMissing; + readonly attribute boolean typeMismatch; + readonly attribute boolean patternMismatch; + readonly attribute boolean tooLong; + readonly attribute boolean rangeUnderflow; + readonly attribute boolean rangeOverflow; + readonly attribute boolean stepMismatch; +// readonly attribute boolean badInput; + readonly attribute boolean customError; + readonly attribute boolean valid; +}; + diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs index f69fd1f2225..0d7b99776d4 100644 --- a/src/components/script/dom/bindings/node.rs +++ b/src/components/script/dom/bindings/node.rs @@ -9,14 +9,16 @@ use dom::bindings::utils::{CacheableWrapper, WrapperCache, DerivedWrapper}; use dom::element::{HTMLElementTypeId, HTMLAnchorElementTypeId, HTMLAppletElementTypeId, HTMLAreaElementTypeId, HTMLBaseElementTypeId, - HTMLBodyElementTypeId, HTMLBRElementTypeId, - HTMLCanvasElementTypeId, HTMLDataElementTypeId, - HTMLDivElementTypeId, HTMLHeadElementTypeId, HTMLHRElementTypeId, - HTMLHtmlElementTypeId, HTMLIframeElementTypeId, HTMLImageElementTypeId, - HTMLInputElementTypeId, HTMLLIElementTypeId, HTMLLinkElementTypeId, - HTMLMetaElementTypeId, HTMLOListElementTypeId, - HTMLParagraphElementTypeId, HTMLProgressElementTypeId, - HTMLQuoteElementTypeId, HTMLScriptElementTypeId, + HTMLBodyElementTypeId, HTMLBRElementTypeId, HTMLButtonElementTypeId, + HTMLCanvasElementTypeId, HTMLDataElementTypeId, HTMLDataListElementTypeId, + HTMLDirectoryElementTypeId, HTMLDivElementTypeId, HTMLEmbedElementTypeId, + HTMLFieldSetElementTypeId, HTMLFontElementTypeId, HTMLFrameElementTypeId, + HTMLFrameSetElementTypeId, HTMLHeadElementTypeId, HTMLHeadingElementTypeId, + HTMLHRElementTypeId, HTMLHtmlElementTypeId, HTMLIframeElementTypeId, + HTMLImageElementTypeId, HTMLInputElementTypeId, HTMLLIElementTypeId, + HTMLLinkElementTypeId, HTMLMapElementTypeId, HTMLMetaElementTypeId, + HTMLOListElementTypeId, HTMLParagraphElementTypeId, + HTMLProgressElementTypeId, HTMLQuoteElementTypeId, HTMLScriptElementTypeId, HTMLSpanElementTypeId, HTMLSourceElementTypeId, HTMLStyleElementTypeId, HTMLTextAreaElementTypeId, HTMLTableElementTypeId, HTMLTableCaptionElementTypeId, HTMLTableCellElementTypeId, @@ -30,16 +32,26 @@ use dom::htmlappletelement::HTMLAppletElement; use dom::htmlareaelement::HTMLAreaElement; use dom::htmlbaseelement::HTMLBaseElement; use dom::htmlbodyelement::HTMLBodyElement; +use dom::htmlbuttonelement::HTMLButtonElement; use dom::htmlhrelement::HTMLHRElement; use dom::htmlbrelement::HTMLBRElement; use dom::htmlcanvaselement::HTMLCanvasElement; use dom::htmldataelement::HTMLDataElement; +use dom::htmldatalistelement::HTMLDataListElement; +use dom::htmldirectoryelement::HTMLDirectoryElement; use dom::htmldlistelement::HTMLDListElement; +use dom::htmlembedelement::HTMLEmbedElement; +use dom::htmlfieldsetelement::HTMLFieldSetElement; +use dom::htmlfontelement::HTMLFontElement; +use dom::htmlframeelement::HTMLFrameElement; +use dom::htmlframesetelement::HTMLFrameSetElement; +use dom::htmlheadingelement::HTMLHeadingElement; use dom::htmliframeelement::HTMLIFrameElement; use dom::htmlimageelement::HTMLImageElement; use dom::htmlinputelement::HTMLInputElement; use dom::htmllielement::HTMLLIElement; use dom::htmllinkelement::HTMLLinkElement; +use dom::htmlmapelement::HTMLMapElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; use dom::htmlprogresselement::HTMLProgressElement; @@ -128,11 +140,20 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode) -> *JSObject ElementNodeTypeId(HTMLBaseElementTypeId) => generate_element!(HTMLBaseElement), ElementNodeTypeId(HTMLBodyElementTypeId) => generate_element!(HTMLBodyElement), ElementNodeTypeId(HTMLBRElementTypeId) => generate_element!(HTMLBRElement), + ElementNodeTypeId(HTMLButtonElementTypeId) => generate_element!(HTMLButtonElement), ElementNodeTypeId(HTMLCanvasElementTypeId) => generate_element!(HTMLCanvasElement), ElementNodeTypeId(HTMLDataElementTypeId) => generate_element!(HTMLDataElement), + ElementNodeTypeId(HTMLDataListElementTypeId) => generate_element!(HTMLDataListElement), + ElementNodeTypeId(HTMLDirectoryElementTypeId) => generate_element!(HTMLDirectoryElement), ElementNodeTypeId(HTMLDListElementTypeId) => generate_element!(HTMLDListElement), ElementNodeTypeId(HTMLDivElementTypeId) => generate_element!(HTMLDivElement), + ElementNodeTypeId(HTMLEmbedElementTypeId) => generate_element!(HTMLEmbedElement), + ElementNodeTypeId(HTMLFieldSetElementTypeId) => generate_element!(HTMLFieldSetElement), + ElementNodeTypeId(HTMLFontElementTypeId) => generate_element!(HTMLFontElement), + ElementNodeTypeId(HTMLFrameElementTypeId) => generate_element!(HTMLFrameElement), + ElementNodeTypeId(HTMLFrameSetElementTypeId) => generate_element!(HTMLFrameSetElement), ElementNodeTypeId(HTMLHeadElementTypeId) => generate_element!(HTMLHeadElement), + ElementNodeTypeId(HTMLHeadingElementTypeId) => generate_element!(HTMLHeadingElement), ElementNodeTypeId(HTMLHRElementTypeId) => generate_element!(HTMLHRElement), ElementNodeTypeId(HTMLHtmlElementTypeId) => generate_element!(HTMLHtmlElement), ElementNodeTypeId(HTMLIframeElementTypeId) => generate_element!(HTMLIFrameElement), @@ -140,6 +161,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode) -> *JSObject ElementNodeTypeId(HTMLInputElementTypeId) => generate_element!(HTMLInputElement), ElementNodeTypeId(HTMLLIElementTypeId) => generate_element!(HTMLLIElement), ElementNodeTypeId(HTMLLinkElementTypeId) => generate_element!(HTMLLinkElement), + ElementNodeTypeId(HTMLMapElementTypeId) => generate_element!(HTMLMapElement), ElementNodeTypeId(HTMLMetaElementTypeId) => generate_element!(HTMLMetaElement), ElementNodeTypeId(HTMLOListElementTypeId) => generate_element!(HTMLOListElement), ElementNodeTypeId(HTMLParagraphElementTypeId) => generate_element!(HTMLParagraphElement), diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index d6217d0ce54..8a296c5d3d0 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -7,13 +7,18 @@ use dom::bindings::codegen::{HTMLAnchorElementBinding, HTMLAppletElementBinding, HTMLAreaElementBinding, HTMLBaseElementBinding, HTMLBodyElementBinding, HTMLBRElementBinding, - HTMLCanvasElementBinding, HTMLDataElementBinding, - HTMLDListElementBinding, HTMLDivElementBinding, - HTMLHeadElementBinding, HTMLHRElementBinding, - HTMLHtmlElementBinding, HTMLIFrameElementBinding, - HTMLImageElementBinding, HTMLInputElementBinding, - HTMLLIElementBinding, - HTMLLinkElementBinding, HTMLMetaElementBinding, + HTMLButtonElementBinding, HTMLCanvasElementBinding, + HTMLDataElementBinding, HTMLDataListElementBinding, + HTMLDirectoryElementBinding, HTMLDListElementBinding, + HTMLDivElementBinding, HTMLEmbedElementBinding, + HTMLFieldSetElementBinding, HTMLFontElementBinding, + HTMLFrameElementBinding, HTMLFrameSetElementBinding, + HTMLHeadElementBinding, HTMLHeadingElementBinding, + HTMLHRElementBinding, HTMLHtmlElementBinding, + HTMLIFrameElementBinding, HTMLImageElementBinding, + HTMLInputElementBinding, HTMLLIElementBinding, + HTMLLinkElementBinding, HTMLMapElementBinding, + HTMLMetaElementBinding, HTMLOListElementBinding, HTMLParagraphElementBinding, HTMLProgressElementBinding, HTMLQuoteElementBinding, HTMLScriptElementBinding, HTMLSourceElementBinding, HTMLSpanElementBinding, @@ -32,17 +37,27 @@ use dom::htmlareaelement::HTMLAreaElement; use dom::htmlbaseelement::HTMLBaseElement; use dom::htmlbodyelement::HTMLBodyElement; use dom::htmlbrelement::HTMLBRElement; +use dom::htmlbuttonelement::HTMLButtonElement; use dom::htmlcanvaselement::HTMLCanvasElement; use dom::htmlcollection::HTMLCollection; use dom::htmldataelement::HTMLDataElement; +use dom::htmldatalistelement::HTMLDataListElement; +use dom::htmldirectoryelement::HTMLDirectoryElement; use dom::htmldlistelement::HTMLDListElement; use dom::htmlelement::HTMLElement; +use dom::htmlembedelement::HTMLEmbedElement; +use dom::htmlfieldsetelement::HTMLFieldSetElement; +use dom::htmlfontelement::HTMLFontElement; +use dom::htmlframeelement::HTMLFrameElement; +use dom::htmlframesetelement::HTMLFrameSetElement; +use dom::htmlheadingelement::HTMLHeadingElement; use dom::htmlhrelement::HTMLHRElement; use dom::htmliframeelement::HTMLIFrameElement; use dom::htmlimageelement::HTMLImageElement; use dom::htmlinputelement::HTMLInputElement; use dom::htmllielement::HTMLLIElement; use dom::htmllinkelement::HTMLLinkElement; +use dom::htmlmapelement::HTMLMapElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; use dom::htmlprogresselement::HTMLProgressElement; @@ -104,12 +119,19 @@ pub enum ElementTypeId { HTMLBaseElementTypeId, HTMLBRElementTypeId, HTMLBodyElementTypeId, + HTMLButtonElementTypeId, HTMLCanvasElementTypeId, HTMLDataElementTypeId, + HTMLDataListElementTypeId, + HTMLDirectoryElementTypeId, HTMLDListElementTypeId, HTMLDivElementTypeId, + HTMLEmbedElementTypeId, + HTMLFieldSetElementTypeId, HTMLFontElementTypeId, HTMLFormElementTypeId, + HTMLFrameElementTypeId, + HTMLFrameSetElementTypeId, HTMLHRElementTypeId, HTMLHeadElementTypeId, HTMLHeadingElementTypeId, @@ -119,6 +141,7 @@ pub enum ElementTypeId { HTMLInputElementTypeId, HTMLLinkElementTypeId, HTMLLIElementTypeId, + HTMLMapElementTypeId, HTMLMetaElementTypeId, HTMLOListElementTypeId, HTMLOptionElementTypeId, @@ -149,7 +172,6 @@ pub enum ElementTypeId { // pub struct HTMLDivElement { parent: HTMLElement } -pub struct HTMLFontElement { parent: HTMLElement } pub struct HTMLFormElement { parent: HTMLElement } pub struct HTMLHeadElement { parent: HTMLElement } pub struct HTMLHtmlElement { parent: HTMLElement } @@ -224,10 +246,18 @@ generate_cacheable_wrapper!(HTMLBaseElement, HTMLBaseElementBinding::Wrap) generate_binding_object!(HTMLBaseElement) generate_cacheable_wrapper!(HTMLBodyElement, HTMLBodyElementBinding::Wrap) generate_binding_object!(HTMLBodyElement) +generate_cacheable_wrapper!(HTMLButtonElement, HTMLButtonElementBinding::Wrap) +generate_binding_object!(HTMLButtonElement) generate_cacheable_wrapper!(HTMLCanvasElement, HTMLCanvasElementBinding::Wrap) generate_binding_object!(HTMLCanvasElement) +generate_cacheable_wrapper!(HTMLDataListElement, HTMLDataListElementBinding::Wrap) +generate_binding_object!(HTMLDataListElement) generate_cacheable_wrapper!(HTMLDListElement, HTMLDListElementBinding::Wrap) generate_binding_object!(HTMLDListElement) +generate_cacheable_wrapper!(HTMLFrameElement, HTMLFrameElementBinding::Wrap) +generate_binding_object!(HTMLFrameElement) +generate_cacheable_wrapper!(HTMLFrameSetElement, HTMLFrameSetElementBinding::Wrap) +generate_binding_object!(HTMLFrameSetElement) generate_cacheable_wrapper!(HTMLBRElement, HTMLBRElementBinding::Wrap) generate_binding_object!(HTMLBRElement) generate_cacheable_wrapper!(HTMLHRElement, HTMLHRElementBinding::Wrap) @@ -236,8 +266,18 @@ generate_cacheable_wrapper!(HTMLHtmlElement, HTMLHtmlElementBinding::Wrap) generate_binding_object!(HTMLHtmlElement) generate_cacheable_wrapper!(HTMLDataElement, HTMLDataElementBinding::Wrap) generate_binding_object!(HTMLDataElement) +generate_cacheable_wrapper!(HTMLDirectoryElement, HTMLDirectoryElementBinding::Wrap) +generate_binding_object!(HTMLDirectoryElement) generate_cacheable_wrapper!(HTMLDivElement, HTMLDivElementBinding::Wrap) generate_binding_object!(HTMLDivElement) +generate_cacheable_wrapper!(HTMLEmbedElement, HTMLEmbedElementBinding::Wrap) +generate_binding_object!(HTMLEmbedElement) +generate_cacheable_wrapper!(HTMLFieldSetElement, HTMLFieldSetElementBinding::Wrap) +generate_binding_object!(HTMLFieldSetElement) +generate_cacheable_wrapper!(HTMLFontElement, HTMLFontElementBinding::Wrap) +generate_binding_object!(HTMLFontElement) +generate_cacheable_wrapper!(HTMLHeadingElement, HTMLHeadingElementBinding::Wrap) +generate_binding_object!(HTMLHeadingElement) generate_cacheable_wrapper!(HTMLIFrameElement, HTMLIFrameElementBinding::Wrap) generate_binding_object!(HTMLIFrameElement) generate_cacheable_wrapper!(HTMLImageElement, HTMLImageElementBinding::Wrap) @@ -248,6 +288,8 @@ generate_cacheable_wrapper!(HTMLLIElement, HTMLLIElementBinding::Wrap) generate_binding_object!(HTMLLIElement) generate_cacheable_wrapper!(HTMLLinkElement, HTMLLinkElementBinding::Wrap) generate_binding_object!(HTMLLinkElement) +generate_cacheable_wrapper!(HTMLMapElement, HTMLMapElementBinding::Wrap) +generate_binding_object!(HTMLMapElement) generate_cacheable_wrapper!(HTMLMetaElement, HTMLMetaElementBinding::Wrap) generate_binding_object!(HTMLMetaElement) generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap) @@ -287,15 +329,6 @@ generate_binding_object!(HTMLTimeElement) generate_cacheable_wrapper!(HTMLUListElement, HTMLUListElementBinding::Wrap) generate_binding_object!(HTMLUListElement) -// -// Fancier elements -// - -pub struct HTMLHeadingElement { - parent: HTMLElement, - level: HeadingLevel, -} - // // Element methods // @@ -590,12 +623,3 @@ impl Attr { } } } - -pub enum HeadingLevel { - Heading1, - Heading2, - Heading3, - Heading4, - Heading5, - Heading6, -} diff --git a/src/components/script/dom/htmlbuttonelement.rs b/src/components/script/dom/htmlbuttonelement.rs new file mode 100644 index 00000000000..fa831c67fd3 --- /dev/null +++ b/src/components/script/dom/htmlbuttonelement.rs @@ -0,0 +1,116 @@ +/* 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; +use dom::node::{AbstractNode, ScriptView}; +use dom::validitystate::ValidityState; + +pub struct HTMLButtonElement { + parent: HTMLElement +} + +impl HTMLButtonElement { + pub fn Autofocus(&self) -> bool { + false + } + + pub fn SetAutofocus(&mut self, _autofocus: bool, _rv: &mut ErrorResult) { + } + + pub fn Disabled(&self) -> bool { + false + } + + pub fn SetDisabled(&mut self, _disabled: bool, _rv: &mut ErrorResult) { + } + + pub fn GetForm(&self) -> Option> { + None + } + + pub fn FormAction(&self) -> DOMString { + null_string + } + + pub fn SetFormAction(&mut self, _formaction: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn FormEnctype(&self) -> DOMString { + null_string + } + + pub fn SetFormEnctype(&mut self, _formenctype: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn FormMethod(&self) -> DOMString { + null_string + } + + pub fn SetFormMethod(&mut self, _formmethod: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn FormNoValidate(&self) -> bool { + false + } + + pub fn SetFormNoValidate(&mut self, _novalidate: bool, _rv: &mut ErrorResult) { + } + + pub fn FormTarget(&self) -> DOMString { + null_string + } + + pub fn SetFormTarget(&mut self, _formtarget: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Name(&self) -> DOMString { + null_string + } + + pub fn SetName(&mut self, _name: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Type(&self) -> DOMString { + null_string + } + + pub fn SetType(&mut self, _type: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Value(&self) -> DOMString { + null_string + } + + pub fn SetValue(&mut self, _value: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn WillValidate(&self) -> bool { + false + } + + pub fn SetWillValidate(&mut self, _will_validate: bool) { + } + + pub fn Validity(&self) -> @mut ValidityState { + @mut ValidityState::valid() + } + + pub fn SetValidity(&mut self, _validity: @mut ValidityState) { + } + + pub fn ValidationMessage(&self) -> DOMString { + null_string + } + + pub fn SetValidationMessage(&mut self, _message: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn CheckValidity(&self) -> bool { + true + } + + pub fn SetCustomValidity(&mut self, _error: &DOMString) { + } +} \ No newline at end of file diff --git a/src/components/script/dom/htmldatalistelement.rs b/src/components/script/dom/htmldatalistelement.rs new file mode 100644 index 00000000000..3869716b6a4 --- /dev/null +++ b/src/components/script/dom/htmldatalistelement.rs @@ -0,0 +1,29 @@ +/* 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::CacheableWrapper; +use dom::htmlcollection::HTMLCollection; +use dom::htmlelement::HTMLElement; + +use js::jsapi::{JSObject, JSContext}; + +pub struct HTMLDataListElement { + parent: HTMLElement +} + +impl HTMLDataListElement { + fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) { + let doc = self.parent.parent.parent.owner_doc.unwrap(); + let win = doc.with_base(|doc| doc.window.unwrap()); + let cx = unsafe {(*win.page).js_info.get_ref().js_compartment.cx.ptr}; + let cache = win.get_wrappercache(); + let scope = cache.get_wrapper(); + (scope, cx) + } + + pub fn Options(&self) -> @mut HTMLCollection { + let (scope, cx) = self.get_scope_and_cx(); + HTMLCollection::new(~[], cx, scope) + } +} \ No newline at end of file diff --git a/src/components/script/dom/htmldirectoryelement.rs b/src/components/script/dom/htmldirectoryelement.rs new file mode 100644 index 00000000000..2c6899745fb --- /dev/null +++ b/src/components/script/dom/htmldirectoryelement.rs @@ -0,0 +1,19 @@ +/* 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 HTMLDirectoryElement { + parent: HTMLElement +} + +impl HTMLDirectoryElement { + pub fn Compact(&self) -> bool { + false + } + + pub fn SetCompact(&mut self, _compact: bool, _rv: &mut ErrorResult) { + } +} \ No newline at end of file diff --git a/src/components/script/dom/htmlembedelement.rs b/src/components/script/dom/htmlembedelement.rs new file mode 100644 index 00000000000..2d86fa6f2e7 --- /dev/null +++ b/src/components/script/dom/htmlembedelement.rs @@ -0,0 +1,59 @@ +/* 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::document::AbstractDocument; +use dom::htmlelement::HTMLElement; + +pub struct HTMLEmbedElement { + parent: HTMLElement +} + +impl HTMLEmbedElement { + pub fn Src(&self) -> DOMString { + null_string + } + + pub fn SetSrc(&mut self, _src: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Type(&self) -> DOMString { + null_string + } + + pub fn SetType(&mut self, _type: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Width(&self) -> DOMString { + null_string + } + + pub fn SetWidth(&mut self, _width: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Height(&self) -> DOMString { + null_string + } + + pub fn SetHeight(&mut self, _height: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Align(&self) -> DOMString { + null_string + } + + pub fn SetAlign(&mut self, _type: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Name(&self) -> DOMString { + null_string + } + + pub fn SetName(&mut self, _type: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn GetSVGDocument(&self) -> Option { + None + } +} diff --git a/src/components/script/dom/htmlfieldsetelement.rs b/src/components/script/dom/htmlfieldsetelement.rs new file mode 100644 index 00000000000..2005e46d7d2 --- /dev/null +++ b/src/components/script/dom/htmlfieldsetelement.rs @@ -0,0 +1,72 @@ +/* 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, CacheableWrapper}; +use dom::htmlcollection::HTMLCollection; +use dom::htmlelement::HTMLElement; +use dom::node::{AbstractNode, ScriptView}; +use dom::validitystate::ValidityState; + +use js::jsapi::{JSContext, JSObject}; + +pub struct HTMLFieldSetElement { + parent: HTMLElement +} + +impl HTMLFieldSetElement { + pub fn Disabled(&self) -> bool { + false + } + + pub fn SetDisabled(&mut self, _disabled: bool, _rv: &mut ErrorResult) { + } + + pub fn GetForm(&self) -> Option> { + None + } + + pub fn Name(&self) -> DOMString { + null_string + } + + pub fn SetName(&mut self, _name: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Type(&self) -> DOMString { + null_string + } + + fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) { + let doc = self.parent.parent.parent.owner_doc.unwrap(); + let win = doc.with_base(|doc| doc.window.unwrap()); + let cx = unsafe {(*win.page).js_info.get_ref().js_compartment.cx.ptr}; + let cache = win.get_wrappercache(); + let scope = cache.get_wrapper(); + (scope, cx) + } + + pub fn Elements(&self) -> @mut HTMLCollection { + let (scope, cx) = self.get_scope_and_cx(); + HTMLCollection::new(~[], cx, scope) + } + + pub fn WillValidate(&self) -> bool { + false + } + + pub fn Validity(&self) -> @mut ValidityState { + @mut ValidityState::valid() + } + + pub fn ValidationMessage(&self) -> DOMString { + null_string + } + + pub fn CheckValidity(&self) -> bool { + false + } + + pub fn SetCustomValidity(&mut self, _error: &DOMString) { + } +} \ No newline at end of file diff --git a/src/components/script/dom/htmlfontelement.rs b/src/components/script/dom/htmlfontelement.rs new file mode 100644 index 00000000000..eff3d85ae3b --- /dev/null +++ b/src/components/script/dom/htmlfontelement.rs @@ -0,0 +1,33 @@ +/* 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 HTMLFontElement { + parent: HTMLElement +} + +impl HTMLFontElement { + pub fn Color(&self) -> DOMString { + null_string + } + + pub fn SetColor(&mut self, _color: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Face(&self) -> DOMString { + null_string + } + + pub fn SetFace(&mut self, _face: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Size(&self) -> DOMString { + null_string + } + + pub fn SetSize(&mut self, _size: &DOMString, _rv: &mut ErrorResult) { + } +} diff --git a/src/components/script/dom/htmlframeelement.rs b/src/components/script/dom/htmlframeelement.rs new file mode 100644 index 00000000000..64ce1537363 --- /dev/null +++ b/src/components/script/dom/htmlframeelement.rs @@ -0,0 +1,78 @@ +/* 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::document::AbstractDocument; +use dom::htmlelement::HTMLElement; +use dom::windowproxy::WindowProxy; + +pub struct HTMLFrameElement { + parent: HTMLElement +} + +impl HTMLFrameElement { + pub fn Name(&self) -> DOMString { + null_string + } + + pub fn SetName(&mut self, _name: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Scrolling(&self) -> DOMString { + null_string + } + + pub fn SetScrolling(&mut self, _scrolling: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Src(&self) -> DOMString { + null_string + } + + pub fn SetSrc(&mut self, _src: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn FrameBorder(&self) -> DOMString { + null_string + } + + pub fn SetFrameBorder(&mut self, _frameborder: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn LongDesc(&self) -> DOMString { + null_string + } + + pub fn SetLongDesc(&mut self, _longdesc: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn NoResize(&self) -> bool { + false + } + + pub fn SetNoResize(&mut self, _no_resize: bool, _rv: &mut ErrorResult) { + } + + pub fn GetContentDocument(&self) -> Option { + None + } + + pub fn GetContentWindow(&self) -> Option<@mut WindowProxy> { + None + } + + pub fn MarginHeight(&self) -> DOMString { + null_string + } + + pub fn SetMarginHeight(&mut self, _height: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn MarginWidth(&self) -> DOMString { + null_string + } + + pub fn SetMarginWidth(&mut self, _height: &DOMString, _rv: &mut ErrorResult) { + } +} \ No newline at end of file diff --git a/src/components/script/dom/htmlframesetelement.rs b/src/components/script/dom/htmlframesetelement.rs new file mode 100644 index 00000000000..ff483633083 --- /dev/null +++ b/src/components/script/dom/htmlframesetelement.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 HTMLFrameSetElement { + parent: HTMLElement +} + +impl HTMLFrameSetElement { + pub fn Cols(&self) -> DOMString { + null_string + } + + pub fn SetCols(&mut self, _cols: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Rows(&self) -> DOMString { + null_string + } + + pub fn SetRows(&mut self, _rows: &DOMString, _rv: &mut ErrorResult) { + } +} \ No newline at end of file diff --git a/src/components/script/dom/htmlheadingelement.rs b/src/components/script/dom/htmlheadingelement.rs new file mode 100644 index 00000000000..d94bd06dab4 --- /dev/null +++ b/src/components/script/dom/htmlheadingelement.rs @@ -0,0 +1,29 @@ +/* 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}; +use dom::htmlelement::HTMLElement; + +pub enum HeadingLevel { + Heading1, + Heading2, + Heading3, + Heading4, + Heading5, + Heading6, +} + +pub struct HTMLHeadingElement { + parent: HTMLElement, + level: HeadingLevel, +} + +impl HTMLHeadingElement { + pub fn Align(&self) -> DOMString { + null_string + } + + pub fn SetAlign(&mut self, _align: &DOMString) { + } +} \ No newline at end of file diff --git a/src/components/script/dom/htmlmapelement.rs b/src/components/script/dom/htmlmapelement.rs new file mode 100644 index 00000000000..815b6d7a692 --- /dev/null +++ b/src/components/script/dom/htmlmapelement.rs @@ -0,0 +1,35 @@ +/* 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, CacheableWrapper}; +use dom::htmlcollection::HTMLCollection; +use dom::htmlelement::HTMLElement; +use js::jsapi::{JSObject, JSContext}; + +pub struct HTMLMapElement { + parent: HTMLElement +} + +impl HTMLMapElement { + pub fn Name(&self) -> DOMString { + null_string + } + + pub fn SetName(&mut self, _name: &DOMString, _rv: &mut ErrorResult) { + } + + fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) { + let doc = self.parent.parent.parent.owner_doc.unwrap(); + let win = doc.with_base(|doc| doc.window.unwrap()); + let cx = unsafe {(*win.page).js_info.get_ref().js_compartment.cx.ptr}; + let cache = win.get_wrappercache(); + let scope = cache.get_wrapper(); + (scope, cx) + } + + pub fn Areas(&self) -> @mut HTMLCollection { + let (scope, cx) = self.get_scope_and_cx(); + HTMLCollection::new(~[], cx, scope) + } +} diff --git a/src/components/script/dom/validitystate.rs b/src/components/script/dom/validitystate.rs new file mode 100644 index 00000000000..9bf415d64de --- /dev/null +++ b/src/components/script/dom/validitystate.rs @@ -0,0 +1,77 @@ +/* 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::{WrapperCache, BindingObject, CacheableWrapper}; +use dom::bindings::codegen::ValidityStateBinding; +use js::jsapi::{JSContext, JSObject}; +use std::cast; + +pub struct ValidityState { + wrapper: WrapperCache, + state: u8 +} + +impl ValidityState { + pub fn valid() -> ValidityState { + ValidityState { + wrapper: WrapperCache::new(), + state: 0 + } + } +} + +impl ValidityState { + pub fn ValueMissing(&self) -> bool { + false + } + + pub fn TypeMismatch(&self) -> bool { + false + } + + pub fn PatternMismatch(&self) -> bool { + false + } + + pub fn TooLong(&self) -> bool { + false + } + + pub fn RangeUnderflow(&self) -> bool { + false + } + + pub fn RangeOverflow(&self) -> bool { + false + } + + pub fn StepMismatch(&self) -> bool { + false + } + + pub fn CustomError(&self) -> bool { + false + } + + pub fn Valid(&self) -> bool { + true + } +} + +impl CacheableWrapper for ValidityState { + fn get_wrappercache(&mut self) -> &mut WrapperCache { + unsafe { cast::transmute(&self.wrapper) } + } + + fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject { + let mut unused = false; + ValidityStateBinding::Wrap(cx, scope, self, &mut unused) + } +} + +impl BindingObject for ValidityState { + fn GetParentObject(&self, _cx: *JSContext) -> Option<@mut CacheableWrapper> { + None + } +} diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs index 8ed87121667..8c912d28136 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -5,13 +5,15 @@ use dom::element::{HTMLElementTypeId, HTMLAnchorElementTypeId, HTMLAppletElementTypeId, HTMLAreaElementTypeId, HTMLBaseElementTypeId, HTMLBodyElementTypeId, - HTMLBRElementTypeId, HTMLCanvasElementTypeId, HTMLDataElementTypeId, - HTMLDivElementTypeId, HTMLDListElementTypeId, - HTMLFontElementTypeId, HTMLFormElementTypeId, HTMLHRElementTypeId, - HTMLHeadElementTypeId, HTMLHtmlElementTypeId, - HTMLImageElementTypeId, HTMLIframeElementTypeId, HTMLInputElementTypeId, - HTMLLinkElementTypeId, HTMLLIElementTypeId, - HTMLMetaElementTypeId, HTMLOListElementTypeId, HTMLOptionElementTypeId, + HTMLBRElementTypeId, HTMLButtonElementTypeId, HTMLCanvasElementTypeId, + HTMLDataElementTypeId, HTMLDataListElementTypeId, HTMLDivElementTypeId, + HTMLDirectoryElementTypeId, HTMLDListElementTypeId, HTMLEmbedElementTypeId, + HTMLFieldSetElementTypeId, HTMLFontElementTypeId, HTMLFormElementTypeId, + HTMLFrameElementTypeId, HTMLFrameSetElementTypeId, HTMLHRElementTypeId, + HTMLHeadElementTypeId, HTMLHtmlElementTypeId, HTMLImageElementTypeId, + HTMLIframeElementTypeId, HTMLInputElementTypeId, HTMLLinkElementTypeId, + HTMLLIElementTypeId, HTMLMapElementTypeId, HTMLMetaElementTypeId, + HTMLOListElementTypeId, HTMLOptionElementTypeId, HTMLParagraphElementTypeId, HTMLProgressElementTypeId, HTMLQuoteElementTypeId, HTMLScriptElementTypeId, HTMLSelectElementTypeId, HTMLSmallElementTypeId, HTMLSourceElementTypeId, @@ -21,28 +23,38 @@ use dom::element::{HTMLElementTypeId, HTMLTableRowElementTypeId, HTMLTextAreaElementTypeId, HTMLTimeElementTypeId, HTMLTitleElementTypeId, HTMLUListElementTypeId, UnknownElementTypeId}; -use dom::element::{HTMLDivElement, HTMLFontElement, HTMLFormElement, - HTMLHeadElement, HTMLHeadingElement, HTMLHtmlElement, +use dom::element::{HTMLDivElement, HTMLFormElement, + HTMLHeadElement, HTMLHtmlElement, HTMLOptionElement, HTMLParagraphElement, HTMLSelectElement, HTMLSmallElement, HTMLSpanElement}; -use dom::element::{HTMLHeadingElementTypeId, Heading1, Heading2, Heading3, Heading4, Heading5, - Heading6}; +use dom::element::{HTMLHeadingElementTypeId}; use dom::htmlbrelement::HTMLBRElement; use dom::htmlanchorelement::HTMLAnchorElement; use dom::htmlappletelement::HTMLAppletElement; use dom::htmlareaelement::HTMLAreaElement; use dom::htmlbaseelement::HTMLBaseElement; use dom::htmlbodyelement::HTMLBodyElement; +use dom::htmlbuttonelement::HTMLButtonElement; use dom::htmlcanvaselement::HTMLCanvasElement; use dom::htmldataelement::HTMLDataElement; +use dom::htmldatalistelement::HTMLDataListElement; +use dom::htmldirectoryelement::HTMLDirectoryElement; use dom::htmldlistelement::HTMLDListElement; +use dom::htmlembedelement::HTMLEmbedElement; +use dom::htmlfieldsetelement::HTMLFieldSetElement; +use dom::htmlfontelement::HTMLFontElement; +use dom::htmlframeelement::HTMLFrameElement; +use dom::htmlframesetelement::HTMLFrameSetElement; +use dom::htmlheadingelement::{HTMLHeadingElement, Heading1, Heading2, Heading3, Heading4, + Heading5, Heading6}; use dom::htmlhrelement::HTMLHRElement; use dom::htmliframeelement::{IFrameSize, HTMLIFrameElement}; use dom::htmlimageelement::HTMLImageElement; use dom::htmlinputelement::HTMLInputElement; use dom::htmllielement::HTMLLIElement; use dom::htmllinkelement::HTMLLinkElement; +use dom::htmlmapelement::HTMLMapElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; use dom::htmlprogresselement::HTMLProgressElement; @@ -246,18 +258,26 @@ fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode handle_element!(cx, tag, "base", HTMLBaseElementTypeId, HTMLBaseElement, []); handle_element!(cx, tag, "br", HTMLBRElementTypeId, HTMLBRElement, []); handle_element!(cx, tag, "body", HTMLBodyElementTypeId, HTMLBodyElement, []); + handle_element!(cx, tag, "button", HTMLButtonElementTypeId, HTMLButtonElement, []); handle_element!(cx, tag, "canvas", HTMLCanvasElementTypeId, HTMLCanvasElement, []); handle_element!(cx, tag, "data", HTMLDataElementTypeId, HTMLDataElement, []); + handle_element!(cx, tag, "datalist",HTMLDataListElementTypeId, HTMLDataListElement, []); + handle_element!(cx, tag, "directory",HTMLDirectoryElementTypeId, HTMLDirectoryElement, []); handle_element!(cx, tag, "div", HTMLDivElementTypeId, HTMLDivElement, []); handle_element!(cx, tag, "dl", HTMLDListElementTypeId, HTMLDListElement, []); + handle_element!(cx, tag, "embed", HTMLEmbedElementTypeId, HTMLEmbedElement, []); + handle_element!(cx, tag, "fieldset",HTMLFieldSetElementTypeId, HTMLFieldSetElement, []); handle_element!(cx, tag, "font", HTMLFontElementTypeId, HTMLFontElement, []); handle_element!(cx, tag, "form", HTMLFormElementTypeId, HTMLFormElement, []); + handle_element!(cx, tag, "frame", HTMLFrameElementTypeId, HTMLFrameElement, []); + handle_element!(cx, tag, "frameset",HTMLFrameSetElementTypeId, HTMLFrameSetElement, []); handle_element!(cx, tag, "hr", HTMLHRElementTypeId, HTMLHRElement, []); handle_element!(cx, tag, "head", HTMLHeadElementTypeId, HTMLHeadElement, []); handle_element!(cx, tag, "html", HTMLHtmlElementTypeId, HTMLHtmlElement, []); handle_element!(cx, tag, "input", HTMLInputElementTypeId, HTMLInputElement, []); handle_element!(cx, tag, "link", HTMLLinkElementTypeId, HTMLLinkElement, []); handle_element!(cx, tag, "li", HTMLLIElementTypeId, HTMLLIElement, []); + handle_element!(cx, tag, "map", HTMLMapElementTypeId, HTMLMapElement, []); handle_element!(cx, tag, "meta", HTMLMetaElementTypeId, HTMLMetaElement, []); handle_element!(cx, tag, "ol", HTMLOListElementTypeId, HTMLOListElement, []); handle_element!(cx, tag, "option", HTMLOptionElementTypeId, HTMLOptionElement, []); diff --git a/src/components/script/script.rc b/src/components/script/script.rc index 037ba1aef63..2cbf9333de9 100644 --- a/src/components/script/script.rc +++ b/src/components/script/script.rc @@ -48,14 +48,23 @@ pub mod dom { pub mod HTMLBaseElementBinding; pub mod HTMLBodyElementBinding; pub mod HTMLBRElementBinding; + pub mod HTMLButtonElementBinding; pub mod HTMLCanvasElementBinding; pub mod HTMLCollectionBinding; pub mod HTMLDataElementBinding; + pub mod HTMLDataListElementBinding; + pub mod HTMLDirectoryElementBinding; pub mod HTMLDListElementBinding; pub mod HTMLDivElementBinding; pub mod HTMLDocumentBinding; pub mod HTMLElementBinding; + pub mod HTMLEmbedElementBinding; + pub mod HTMLFieldSetElementBinding; + pub mod HTMLFontElementBinding; + pub mod HTMLFrameElementBinding; + pub mod HTMLFrameSetElementBinding; pub mod HTMLHeadElementBinding; + pub mod HTMLHeadingElementBinding; pub mod HTMLHRElementBinding; pub mod HTMLHtmlElementBinding; pub mod HTMLIFrameElementBinding; @@ -63,6 +72,7 @@ pub mod dom { pub mod HTMLInputElementBinding; pub mod HTMLLIElementBinding; pub mod HTMLLinkElementBinding; + pub mod HTMLMapElementBinding; pub mod HTMLMetaElementBinding; pub mod HTMLOListElementBinding; pub mod HTMLParagraphElementBinding; @@ -88,6 +98,7 @@ pub mod dom { pub mod RegisterBindings; pub mod TextBinding; pub mod UIEventBinding; + pub mod ValidityStateBinding; pub mod WindowBinding; pub mod WindowProxyBinding; } @@ -108,18 +119,28 @@ pub mod dom { pub mod htmlbaseelement; pub mod htmlbodyelement; pub mod htmlbrelement; + pub mod htmlbuttonelement; pub mod htmlcanvaselement; pub mod htmlcollection; pub mod htmldataelement; + pub mod htmldatalistelement; + pub mod htmldirectoryelement; pub mod htmldlistelement; pub mod htmldocument; pub mod htmlelement; + pub mod htmlembedelement; + pub mod htmlfieldsetelement; + pub mod htmlfontelement; + pub mod htmlframeelement; + pub mod htmlframesetelement; + pub mod htmlheadingelement; pub mod htmlhrelement; pub mod htmliframeelement; pub mod htmlimageelement; pub mod htmlinputelement; pub mod htmllielement; pub mod htmllinkelement; + pub mod htmlmapelement; pub mod htmlmetaelement; pub mod htmlolistelement; pub mod htmlprogresselement; @@ -140,6 +161,7 @@ pub mod dom { pub mod mouseevent; pub mod node; pub mod uievent; + pub mod validitystate; pub mod window; pub mod windowproxy; }