diff options
Diffstat (limited to 'dom/interfaces/html')
51 files changed, 2019 insertions, 0 deletions
diff --git a/dom/interfaces/html/moz.build b/dom/interfaces/html/moz.build new file mode 100644 index 000000000..895a87314 --- /dev/null +++ b/dom/interfaces/html/moz.build @@ -0,0 +1,61 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# 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/. + +XPIDL_SOURCES += [ + 'nsIDOMHTMLAnchorElement.idl', + 'nsIDOMHTMLAppletElement.idl', + 'nsIDOMHTMLAreaElement.idl', + 'nsIDOMHTMLBaseElement.idl', + 'nsIDOMHTMLBodyElement.idl', + 'nsIDOMHTMLButtonElement.idl', + 'nsIDOMHTMLCanvasElement.idl', + 'nsIDOMHTMLCollection.idl', + 'nsIDOMHTMLDirectoryElement.idl', + 'nsIDOMHTMLDocument.idl', + 'nsIDOMHTMLElement.idl', + 'nsIDOMHTMLEmbedElement.idl', + 'nsIDOMHTMLFieldSetElement.idl', + 'nsIDOMHTMLFormElement.idl', + 'nsIDOMHTMLFrameElement.idl', + 'nsIDOMHTMLFrameSetElement.idl', + 'nsIDOMHTMLHeadElement.idl', + 'nsIDOMHTMLHRElement.idl', + 'nsIDOMHTMLHtmlElement.idl', + 'nsIDOMHTMLIFrameElement.idl', + 'nsIDOMHTMLImageElement.idl', + 'nsIDOMHTMLInputElement.idl', + 'nsIDOMHTMLLabelElement.idl', + 'nsIDOMHTMLLIElement.idl', + 'nsIDOMHTMLLinkElement.idl', + 'nsIDOMHTMLMapElement.idl', + 'nsIDOMHTMLMediaElement.idl', + 'nsIDOMHTMLMenuElement.idl', + 'nsIDOMHTMLMenuItemElement.idl', + 'nsIDOMHTMLMetaElement.idl', + 'nsIDOMHTMLObjectElement.idl', + 'nsIDOMHTMLOListElement.idl', + 'nsIDOMHTMLOptGroupElement.idl', + 'nsIDOMHTMLOptionElement.idl', + 'nsIDOMHTMLOptionsCollection.idl', + 'nsIDOMHTMLParagraphElement.idl', + 'nsIDOMHTMLPictureElement.idl', + 'nsIDOMHTMLPreElement.idl', + 'nsIDOMHTMLQuoteElement.idl', + 'nsIDOMHTMLScriptElement.idl', + 'nsIDOMHTMLSelectElement.idl', + 'nsIDOMHTMLSourceElement.idl', + 'nsIDOMHTMLStyleElement.idl', + 'nsIDOMHTMLTableCellElement.idl', + 'nsIDOMHTMLTextAreaElement.idl', + 'nsIDOMHTMLUListElement.idl', + 'nsIDOMMozBrowserFrame.idl', + 'nsIDOMTimeRanges.idl', + 'nsIDOMValidityState.idl', + 'nsIMozBrowserFrame.idl', +] + +XPIDL_MODULE = 'dom_html' + diff --git a/dom/interfaces/html/nsIDOMHTMLAnchorElement.idl b/dom/interfaces/html/nsIDOMHTMLAnchorElement.idl new file mode 100644 index 000000000..8a38cdf95 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLAnchorElement.idl @@ -0,0 +1,55 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLAnchorElement interface is the interface to a [X]HTML + * a element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(339c01c8-2d41-4626-b231-eec63f0241b6)] +interface nsIDOMHTMLAnchorElement : nsISupports +{ + attribute DOMString href; + attribute DOMString target; + + attribute DOMString ping; + attribute DOMString download; + + attribute DOMString rel; + attribute DOMString hreflang; + attribute DOMString type; + + /** + * An alias for the textContent attribute. + */ + [Null(Stringify)] + attribute DOMString text; + + // URL decomposition IDL attributes + attribute DOMString protocol; + attribute DOMString host; + attribute DOMString hostname; + attribute DOMString port; + attribute DOMString pathname; + attribute DOMString search; + attribute DOMString hash; + + + attribute DOMString charset; + attribute DOMString coords; + attribute DOMString name; + attribute DOMString rev; + attribute DOMString shape; + + DOMString toString(); +}; diff --git a/dom/interfaces/html/nsIDOMHTMLAppletElement.idl b/dom/interfaces/html/nsIDOMHTMLAppletElement.idl new file mode 100644 index 000000000..69760c143 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLAppletElement.idl @@ -0,0 +1,36 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLAppletElement interface is the interface to a [X]HTML + * applet element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(0b7d12c9-4cd3-47db-99c6-0b5ff910446c)] +interface nsIDOMHTMLAppletElement : nsISupports +{ + attribute DOMString align; + attribute DOMString alt; + attribute DOMString archive; + attribute DOMString code; + attribute DOMString codeBase; + attribute DOMString height; + // Modified in DOM Level 2: + attribute long hspace; + attribute DOMString name; + // Modified in DOM Level 2: + attribute DOMString object; + // Modified in DOM Level 2: + attribute long vspace; + attribute DOMString width; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLAreaElement.idl b/dom/interfaces/html/nsIDOMHTMLAreaElement.idl new file mode 100644 index 000000000..d1c9bf1e9 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLAreaElement.idl @@ -0,0 +1,43 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLAreaElement interface is the interface to a [X]HTML + * area element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(40c78026-36dc-40ca-9221-de73267e9e99)] +interface nsIDOMHTMLAreaElement : nsISupports +{ + attribute DOMString alt; + attribute DOMString coords; + attribute DOMString shape; + attribute DOMString href; + attribute DOMString target; + + attribute DOMString ping; + attribute DOMString download; + + // URL decomposition IDL attributes + attribute DOMString protocol; + attribute DOMString host; + attribute DOMString hostname; + attribute DOMString port; + attribute DOMString pathname; + attribute DOMString search; + attribute DOMString hash; + + attribute boolean noHref; + DOMString toString(); + +}; diff --git a/dom/interfaces/html/nsIDOMHTMLBaseElement.idl b/dom/interfaces/html/nsIDOMHTMLBaseElement.idl new file mode 100644 index 000000000..6a54b0ac9 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLBaseElement.idl @@ -0,0 +1,24 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLBaseElement interface is the interface to a [X]HTML + * base element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(a348ac22-7880-4613-af4c-984ec2ef5adc)] +interface nsIDOMHTMLBaseElement : nsISupports +{ + attribute DOMString href; + attribute DOMString target; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLBodyElement.idl b/dom/interfaces/html/nsIDOMHTMLBodyElement.idl new file mode 100644 index 000000000..52937bf33 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLBodyElement.idl @@ -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/. */ + +#include "nsIDOMHTMLElement.idl" + +%{ C++ +#include "jspubtd.h" +%} + +/** + * The nsIDOMHTMLBodyElement interface is the interface to a [X]HTML + * body element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(068630db-2c00-43dd-b167-495757a88236)] +interface nsIDOMHTMLBodyElement : nsISupports +{ + attribute DOMString aLink; + attribute DOMString background; + attribute DOMString bgColor; + attribute DOMString link; + attribute DOMString text; + attribute DOMString vLink; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLButtonElement.idl b/dom/interfaces/html/nsIDOMHTMLButtonElement.idl new file mode 100644 index 000000000..42a4dfeb9 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLButtonElement.idl @@ -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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLButtonElement interface is the interface to a [X]HTML + * button element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +interface nsIDOMValidityState; + +[uuid(44b7a468-7dba-4f0c-9b4e-ee46dc0f26c7)] +interface nsIDOMHTMLButtonElement : nsISupports +{ + attribute boolean autofocus; + attribute boolean disabled; + readonly attribute nsIDOMHTMLFormElement form; + attribute DOMString formAction; + attribute DOMString formEnctype; + attribute DOMString formMethod; + attribute boolean formNoValidate; + attribute DOMString formTarget; + + attribute DOMString name; + attribute DOMString type; + attribute DOMString value; + + // The following lines are part of the constraint validation API, see: + // http://www.whatwg.org/specs/web-apps/current-work/#the-constraint-validation-api + readonly attribute boolean willValidate; + readonly attribute nsIDOMValidityState validity; + readonly attribute DOMString validationMessage; + boolean checkValidity(); + void setCustomValidity(in DOMString error); +}; + diff --git a/dom/interfaces/html/nsIDOMHTMLCanvasElement.idl b/dom/interfaces/html/nsIDOMHTMLCanvasElement.idl new file mode 100644 index 000000000..8e589629e --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLCanvasElement.idl @@ -0,0 +1,47 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLCanvasElement interface is the interface to a HTML + * <canvas> element. + * + * For more information on this interface, please see + * http://www.whatwg.org/specs/web-apps/current-work/#graphics + * + * @status UNDER_DEVELOPMENT + */ + +interface nsIDOMBlob; +interface nsIVariant; +interface nsIInputStreamCallback; + +[uuid(4e8f1316-b601-471d-8f44-3c650d91ee9b)] +interface nsIDOMHTMLCanvasElement : nsISupports +{ + attribute unsigned long width; + attribute unsigned long height; + attribute boolean mozOpaque; + + // Valid calls are: + // toDataURL(); -- defaults to image/png + // toDataURL(type); -- uses given type + // toDataURL(type, params); -- uses given type, and any valid parameters + [implicit_jscontext] + DOMString toDataURL([optional] in DOMString type, + [optional] in jsval params); + + // Valid calls are + // mozGetAsFile(name); -- defaults to image/png + // mozGetAsFile(name, type); -- uses given type + // The return value is a File object. + nsISupports mozGetAsFile(in DOMString name, [optional] in DOMString type); + + // A Mozilla-only extension to get a canvas context backed by double-buffered + // shared memory. Only privileged callers can call this. + nsISupports MozGetIPCContext(in DOMString contextId); +}; + diff --git a/dom/interfaces/html/nsIDOMHTMLCollection.idl b/dom/interfaces/html/nsIDOMHTMLCollection.idl new file mode 100644 index 000000000..310a4e73c --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLCollection.idl @@ -0,0 +1,26 @@ +/* -*- 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/. */ + +#include "domstubs.idl" + +/** + * The nsIDOMHTMLCollection interface is an interface to a collection + * of [X]HTML elements. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(bb07f567-5b37-4172-92aa-7d00ceed4809)] +interface nsIDOMHTMLCollection : nsISupports +{ + readonly attribute unsigned long length; + + nsIDOMNode item(in unsigned long index); + nsIDOMNode namedItem(in DOMString name); +}; diff --git a/dom/interfaces/html/nsIDOMHTMLDirectoryElement.idl b/dom/interfaces/html/nsIDOMHTMLDirectoryElement.idl new file mode 100644 index 000000000..12255ec80 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLDirectoryElement.idl @@ -0,0 +1,23 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLDirectoryElement interface is the interface to a + * [X]HTML dir element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +// Exists so that | element instanceof Ci.nsIDOMHTMLDirectoryElement | works. +[uuid(8cfff7a4-8b14-4ce0-97b0-babe78da16f8)] +interface nsIDOMHTMLDirectoryElement : nsISupports +{ +}; diff --git a/dom/interfaces/html/nsIDOMHTMLDocument.idl b/dom/interfaces/html/nsIDOMHTMLDocument.idl new file mode 100644 index 000000000..6813ccf2e --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLDocument.idl @@ -0,0 +1,99 @@ +/* -*- 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/. */ + +#include "nsIDOMDocument.idl" + +/** + * The nsIDOMHTMLDocument interface is the interface to a [X]HTML + * document object. + * + * @see <http://www.whatwg.org/html/> + */ +interface nsISelection; + +[uuid(cd31e61f-cfc2-4b91-9385-17b6a2d0633d)] +interface nsIDOMHTMLDocument : nsIDOMDocument +{ + attribute DOMString domain; + attribute DOMString cookie; + + readonly attribute nsIDOMHTMLHeadElement head; + attribute nsIDOMHTMLElement body; + + readonly attribute nsIDOMHTMLCollection images; + readonly attribute nsIDOMHTMLCollection embeds; + // mapped to attribute embeds for NS4 compat + readonly attribute nsIDOMHTMLCollection plugins; + readonly attribute nsIDOMHTMLCollection links; + readonly attribute nsIDOMHTMLCollection forms; + readonly attribute nsIDOMHTMLCollection scripts; + nsIDOMNodeList getElementsByName(in DOMString elementName); + + // If aContentType is not something supported by nsHTMLDocument and + // the HTML content sink, trying to write to the document will + // probably throw. + // Pass aReplace = true to trigger a replacement of the previous + // document in session history; pass false for normal history handling. + [implicit_jscontext, optional_argc] + nsISupports open([optional] in DOMString aContentTypeOrUrl, + [optional] in DOMString aReplaceOrName, + [optional] in DOMString aFeatures); + void close(); + + [implicit_jscontext] + void write([optional, Null(Stringify)] in DOMString text); + [implicit_jscontext] + void writeln([optional, Null(Stringify)] in DOMString text); + + /** + * Midas additions + */ + attribute DOMString designMode; + + boolean execCommand(in DOMString commandID, + [optional] in boolean doShowUI, + [optional] in DOMString value); + + // returns true if the command is enabled (false otherwise) + boolean queryCommandEnabled(in DOMString commandID); + + // returns true if the command is in a indeterminate state (false otherwise) + boolean queryCommandIndeterm(in DOMString commandID); + + // returns true if the command has been executed (false otherwise) + boolean queryCommandState(in DOMString commandID); + + // returns true if the command is supported on the current range + boolean queryCommandSupported(in DOMString commandID); + + // returns the current value of the document or current selection for command + DOMString queryCommandValue(in DOMString commandID); + + + // Obsolete APIs + attribute DOMString fgColor; + attribute DOMString bgColor; + attribute DOMString linkColor; + attribute DOMString vlinkColor; + attribute DOMString alinkColor; + + readonly attribute nsIDOMHTMLCollection anchors; + readonly attribute nsIDOMHTMLCollection applets; + + void clear(); + + + // DOM Range + nsISelection getSelection(); + + + // More obsolete APIs + /** + * @deprecated These are old Netscape 4 methods. Do not use, + * the implementation is no-op. + */ + void captureEvents(); + void releaseEvents(); +}; diff --git a/dom/interfaces/html/nsIDOMHTMLElement.idl b/dom/interfaces/html/nsIDOMHTMLElement.idl new file mode 100644 index 000000000..63a1f9572 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLElement.idl @@ -0,0 +1,67 @@ +/* -*- 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/. */ + +#include "nsIDOMElement.idl" +#include "nsIVariant.idl" + +interface nsIDOMHTMLMenuElement; + +/** + * The nsIDOMHTMLElement interface is the primary [X]HTML element + * interface. It represents a single [X]HTML element in the document + * tree. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ +[uuid(b0c42392-d0e7-4f6a-beb5-a698ce648945)] +interface nsIDOMHTMLElement : nsIDOMElement +{ + // metadata attributes + attribute DOMString title; + attribute DOMString lang; + attribute DOMString dir; + readonly attribute nsISupports dataset; + + // user interaction + /** + * Indicates that the element is not yet, or is no longer, relevant. + * + * See <http://www.whatwg.org/html5/#the-hidden-attribute>. + */ + attribute boolean hidden; + [binaryname(DOMClick)] + void click(); + attribute long tabIndex; + void focus(); + [binaryname(DOMBlur)] + void blur(); + attribute DOMString accessKey; + readonly attribute DOMString accessKeyLabel; + attribute boolean draggable; + attribute DOMString contentEditable; + readonly attribute boolean isContentEditable; + readonly attribute nsIDOMHTMLMenuElement contextMenu; + attribute boolean spellcheck; + + + // DOM Parsing and Serialization + attribute DOMString innerHTML; + attribute DOMString outerHTML; + void insertAdjacentHTML(in DOMString position, + in DOMString text); + + + // CSSOM View + [optional_argc] void scrollIntoView([optional] in boolean top); + readonly attribute nsIDOMElement offsetParent; + readonly attribute long offsetTop; + readonly attribute long offsetLeft; + readonly attribute long offsetWidth; + readonly attribute long offsetHeight; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLEmbedElement.idl b/dom/interfaces/html/nsIDOMHTMLEmbedElement.idl new file mode 100644 index 000000000..498f58fad --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLEmbedElement.idl @@ -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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLEmbedElement interface is the interface to a [X]HTML + * embed element. + * + * For more information on this interface, please see + * http://www.whatwg.org/specs/web-apps/current-work/#the-embed-element + */ + +[uuid(adae53da-713d-4570-81ad-dabdd6d46241)] +interface nsIDOMHTMLEmbedElement : nsISupports +{ + attribute DOMString align; + attribute DOMString height; + attribute DOMString name; + attribute DOMString src; + attribute DOMString type; + attribute DOMString width; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLFieldSetElement.idl b/dom/interfaces/html/nsIDOMHTMLFieldSetElement.idl new file mode 100644 index 000000000..32a21e72a --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLFieldSetElement.idl @@ -0,0 +1,39 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLFieldSetElement interface is the interface to a + * [X]HTML fieldset element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +interface nsIDOMValidityState; + +[uuid(e3d91535-9da3-4c4b-a809-f17d85a4fb9f)] +interface nsIDOMHTMLFieldSetElement : nsISupports +{ + attribute boolean disabled; + readonly attribute nsIDOMHTMLFormElement form; + attribute DOMString name; + + readonly attribute DOMString type; + + readonly attribute nsIDOMHTMLCollection elements; + + // The following lines are parte of the constraint validation API, see: + // http://www.whatwg.org/specs/web-apps/current-work/#the-constraint-validation-api + readonly attribute boolean willValidate; + readonly attribute nsIDOMValidityState validity; + readonly attribute DOMString validationMessage; + boolean checkValidity(); + void setCustomValidity(in DOMString error); +}; diff --git a/dom/interfaces/html/nsIDOMHTMLFormElement.idl b/dom/interfaces/html/nsIDOMHTMLFormElement.idl new file mode 100644 index 000000000..8cb776795 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLFormElement.idl @@ -0,0 +1,38 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLFormElement interface is the interface to a [X]HTML + * form element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(ad9b2ad0-9d29-43f6-b1a2-a1fd24627e6b)] +interface nsIDOMHTMLFormElement : nsISupports +{ + attribute DOMString acceptCharset; + attribute DOMString action; + attribute DOMString autocomplete; + attribute DOMString enctype; + attribute DOMString encoding; + attribute DOMString method; + attribute DOMString name; + attribute boolean noValidate; + attribute DOMString target; + + readonly attribute nsIDOMHTMLCollection elements; + readonly attribute long length; + + void submit(); + void reset(); + boolean checkValidity(); +}; diff --git a/dom/interfaces/html/nsIDOMHTMLFrameElement.idl b/dom/interfaces/html/nsIDOMHTMLFrameElement.idl new file mode 100644 index 000000000..25f693947 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLFrameElement.idl @@ -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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLFrameElement interface is the interface to a [X]HTML + * frame element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(012a8982-c9d3-4614-91e2-18ee51c97c06)] +interface nsIDOMHTMLFrameElement : nsISupports +{ + attribute DOMString frameBorder; + attribute DOMString longDesc; + attribute DOMString marginHeight; + attribute DOMString marginWidth; + attribute DOMString name; + attribute boolean noResize; + attribute DOMString scrolling; + attribute DOMString src; + // Introduced in DOM Level 2: + readonly attribute nsIDOMDocument contentDocument; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLFrameSetElement.idl b/dom/interfaces/html/nsIDOMHTMLFrameSetElement.idl new file mode 100644 index 000000000..87105caec --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLFrameSetElement.idl @@ -0,0 +1,28 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +%{ C++ +#include "jspubtd.h" +%} + +/** + * The nsIDOMHTMLFrameSetElement interface is the interface to a + * [X]HTML frameset element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(14b29269-c387-4cff-8463-b0871ca0be3a)] +interface nsIDOMHTMLFrameSetElement : nsISupports +{ + attribute DOMString cols; + attribute DOMString rows; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLHRElement.idl b/dom/interfaces/html/nsIDOMHTMLHRElement.idl new file mode 100644 index 000000000..b5f036b5a --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLHRElement.idl @@ -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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLHRElement interface is the interface to a [X]HTML hr + * element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(30771953-b9f4-44de-b0fe-e490949af98b)] +interface nsIDOMHTMLHRElement : nsISupports +{ + attribute DOMString align; + attribute boolean noShade; + attribute DOMString size; + attribute DOMString width; + attribute DOMString color; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLHeadElement.idl b/dom/interfaces/html/nsIDOMHTMLHeadElement.idl new file mode 100644 index 000000000..86554a869 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLHeadElement.idl @@ -0,0 +1,22 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLHeadElement interface is the interface to a [X]HTML + * head element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(59b80014-00f5-412d-846f-725494122d42)] +interface nsIDOMHTMLHeadElement : nsISupports +{ +}; diff --git a/dom/interfaces/html/nsIDOMHTMLHtmlElement.idl b/dom/interfaces/html/nsIDOMHTMLHtmlElement.idl new file mode 100644 index 000000000..3026ed53d --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLHtmlElement.idl @@ -0,0 +1,23 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLHtmlElement interface is the interface to a [X]HTML + * html element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(6a5d2ce7-2c45-43c1-bdab-9df7a06caed1)] +interface nsIDOMHTMLHtmlElement : nsISupports +{ + attribute DOMString version; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLIFrameElement.idl b/dom/interfaces/html/nsIDOMHTMLIFrameElement.idl new file mode 100644 index 000000000..2fc1384d6 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLIFrameElement.idl @@ -0,0 +1,37 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLIFrameElement interface is the interface to a [X]HTML + * iframe element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(9fd7b656-1055-4cb2-b8b1-ed13efe24457)] +interface nsIDOMHTMLIFrameElement : nsISupports +{ + attribute DOMString align; + attribute DOMString frameBorder; + attribute DOMString height; + attribute DOMString longDesc; + attribute DOMString marginHeight; + attribute DOMString marginWidth; + attribute DOMString name; + attribute DOMString scrolling; + attribute DOMString src; + attribute DOMString srcdoc; + attribute DOMString width; + // Introduced in DOM Level 2: + readonly attribute nsIDOMDocument contentDocument; + + attribute boolean allowFullscreen; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLImageElement.idl b/dom/interfaces/html/nsIDOMHTMLImageElement.idl new file mode 100644 index 000000000..64574ca79 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLImageElement.idl @@ -0,0 +1,49 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLImageElement interface is the interface to a [X]HTML + * img element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(ec18e71c-4f5c-4cc3-aa36-5273168644dc)] +interface nsIDOMHTMLImageElement : nsISupports +{ + attribute DOMString alt; + attribute DOMString src; + attribute DOMString srcset; + attribute DOMString sizes; + attribute DOMString useMap; + attribute boolean isMap; + attribute unsigned long width; + attribute unsigned long height; + readonly attribute unsigned long naturalWidth; + readonly attribute unsigned long naturalHeight; + readonly attribute boolean complete; + + + attribute DOMString name; + attribute DOMString align; + attribute DOMString border; + attribute long hspace; + attribute DOMString longDesc; + attribute long vspace; + attribute DOMString lowsrc; + + readonly attribute DOMString currentSrc; + + // These attributes are offsets from the closest view (to mimic + // NS4's "offset-from-layer" behavior). + readonly attribute long x; + readonly attribute long y; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLInputElement.idl b/dom/interfaces/html/nsIDOMHTMLInputElement.idl new file mode 100644 index 000000000..a57575b17 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLInputElement.idl @@ -0,0 +1,109 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +interface nsIControllers; +interface nsIDOMFileList; +interface nsIDOMValidityState; + + /** + * The nsIDOMHTMLInputElement interface is the interface to a [X]HTML + * input element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(64aeda0b-e9b5-4868-a4f9-e4776e32e733)] +interface nsIDOMHTMLInputElement : nsISupports +{ + attribute DOMString accept; + attribute DOMString alt; + + attribute DOMString autocomplete; + attribute boolean autofocus; + attribute boolean defaultChecked; + attribute boolean checked; + attribute boolean disabled; + readonly attribute nsIDOMHTMLFormElement form; + attribute DOMString formAction; + attribute DOMString formEnctype; + attribute DOMString formMethod; + attribute boolean formNoValidate; + attribute DOMString formTarget; + + readonly attribute nsIDOMFileList files; + + attribute unsigned long height; + attribute boolean indeterminate; + + attribute DOMString inputMode; + + readonly attribute nsIDOMHTMLElement list; + attribute DOMString max; + attribute long maxLength; + attribute DOMString min; + attribute long minLength; + + attribute boolean multiple; + attribute DOMString name; + + attribute DOMString pattern; + attribute DOMString placeholder; + attribute boolean readOnly; + attribute boolean required; + attribute DOMString step; + + attribute DOMString align; + + attribute unsigned long size; + attribute unsigned long width; + attribute DOMString src; + + attribute DOMString type; + attribute DOMString defaultValue; + attribute DOMString value; + attribute double valueAsNumber; + // valustAsDate is only supported via WebIDL, because it's intimately + // tied to JS Date objects and xpidl support for that sort of thing is + // terrible. + + [optional_argc] void stepDown([optional] in long n); + [optional_argc] void stepUp([optional] in long n); + + // The following lines are part of the constraint validation API, see: + // http://www.whatwg.org/specs/web-apps/current-work/#the-constraint-validation-api + readonly attribute boolean willValidate; + readonly attribute nsIDOMValidityState validity; + readonly attribute DOMString validationMessage; + boolean checkValidity(); + void setCustomValidity(in DOMString error); + + void select(); + attribute long selectionStart; + attribute long selectionEnd; + void setSelectionRange(in long selectionStart, in long selectionEnd, [optional] in DOMString direction); + attribute DOMString selectionDirection; + + + attribute DOMString useMap; + readonly attribute nsIControllers controllers; + readonly attribute long textLength; + + void mozGetFileNameArray([optional] out unsigned long aLength, + [array,size_is(aLength), retval] out wstring aFileNames); + void mozSetFileNameArray([array,size_is(aLength)] in wstring aFileNames, + in unsigned long aLength); + + /** + * This non-standard method prevents to check types manually to know if the + * element is a text field. + */ + boolean mozIsTextField(in boolean aExcludePassword); +}; diff --git a/dom/interfaces/html/nsIDOMHTMLLIElement.idl b/dom/interfaces/html/nsIDOMHTMLLIElement.idl new file mode 100644 index 000000000..93271afd8 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLLIElement.idl @@ -0,0 +1,24 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLLIElement interface is the interface to a [X]HTML li + * element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(17bd5c1c-3746-4268-a9f6-45018025f09c)] +interface nsIDOMHTMLLIElement : nsISupports +{ + attribute DOMString type; + attribute long value; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLLabelElement.idl b/dom/interfaces/html/nsIDOMHTMLLabelElement.idl new file mode 100644 index 000000000..02c4c1ed7 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLLabelElement.idl @@ -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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLLabelElement interface is the interface to a [X]HTML + * label element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(efc0eaf2-5756-4388-a229-fbec2033529d)] +interface nsIDOMHTMLLabelElement : nsISupports +{ + readonly attribute nsIDOMHTMLFormElement form; + attribute DOMString htmlFor; + readonly attribute nsIDOMHTMLElement control; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLLinkElement.idl b/dom/interfaces/html/nsIDOMHTMLLinkElement.idl new file mode 100644 index 000000000..27cc8fae3 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLLinkElement.idl @@ -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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLLinkElement interface is the interface to a [X]HTML + * link element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(ee50b7ab-0015-4fbe-89e0-e3feacd4ffde)] +interface nsIDOMHTMLLinkElement : nsISupports +{ + [binaryname(MozDisabled)] + attribute boolean disabled; + attribute DOMString charset; + attribute DOMString href; + attribute DOMString hreflang; + attribute DOMString media; + attribute DOMString rel; + attribute DOMString rev; + attribute DOMString target; + attribute DOMString type; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLMapElement.idl b/dom/interfaces/html/nsIDOMHTMLMapElement.idl new file mode 100644 index 000000000..0d0d37f29 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLMapElement.idl @@ -0,0 +1,24 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLMapElement interface is the interface to a [X]HTML + * map element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(3f49f8c6-2e9d-4323-b30c-2404d5ff1f57)] +interface nsIDOMHTMLMapElement : nsISupports +{ + readonly attribute nsIDOMHTMLCollection areas; + attribute DOMString name; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLMediaElement.idl b/dom/interfaces/html/nsIDOMHTMLMediaElement.idl new file mode 100644 index 000000000..68c15c00c --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLMediaElement.idl @@ -0,0 +1,140 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set ts=2 sw=2 sts=2 et cindent: */ +/* 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/. */ + +#include "nsIDOMHTMLElement.idl" +#include "nsIDOMTimeRanges.idl" + +/** + * The nsIDOMHTMLMediaElement interface is an interface to be implemented by the HTML + * <audio> and <video> elements. + * + * For more information on this interface, please see + * http://www.whatwg.org/specs/web-apps/current-work/#htmlmediaelement + * + * @status UNDER_DEVELOPMENT + */ + +// undef the GetCurrentTime macro defined in WinBase.h from the MS Platform SDK +%{C++ +#ifdef GetCurrentTime +#undef GetCurrentTime +#endif +#include "Visibility.h" +%} + +native Visibility(mozilla::Visibility); + +[uuid(c041d76c-15ce-47ad-b61d-e8755a6db638)] +interface nsIDOMHTMLMediaElement : nsISupports +{ + // network state + attribute DOMString src; + readonly attribute DOMString currentSrc; + const unsigned short NETWORK_EMPTY = 0; + const unsigned short NETWORK_IDLE = 1; + const unsigned short NETWORK_LOADING = 2; + const unsigned short NETWORK_NO_SOURCE = 3; + readonly attribute unsigned short networkState; + attribute DOMString preload; + readonly attribute nsIDOMTimeRanges buffered; + void load(); + DOMString canPlayType(in DOMString type); + + // ready state + const unsigned short HAVE_NOTHING = 0; + const unsigned short HAVE_METADATA = 1; + const unsigned short HAVE_CURRENT_DATA = 2; + const unsigned short HAVE_FUTURE_DATA = 3; + const unsigned short HAVE_ENOUGH_DATA = 4; + readonly attribute unsigned short readyState; + readonly attribute boolean seeking; + + // playback state + attribute double currentTime; + readonly attribute double duration; + readonly attribute boolean paused; + attribute double defaultPlaybackRate; + attribute double playbackRate; + attribute boolean mozPreservesPitch; + readonly attribute nsIDOMTimeRanges played; + readonly attribute nsIDOMTimeRanges seekable; + readonly attribute boolean ended; + readonly attribute boolean mozAutoplayEnabled; + attribute boolean autoplay; + attribute boolean loop; + void play(); + void pause(); + + // controls + attribute boolean controls; + attribute double volume; + attribute boolean muted; + attribute boolean defaultMuted; + + // Mozilla extension: stream capture + readonly attribute boolean mozAudioCaptured; + + // Mozilla extension: return embedded metadata from the stream as a + // JSObject with key:value pairs for each tag. This can be used by + // player interfaces to display the song title, artist, etc. + [implicit_jscontext] + jsval mozGetMetadata(); + + // Mozilla extension: provides access to the fragment end time if + // the media element has a fragment URI for the currentSrc, otherwise + // it is equal to the media duration. + readonly attribute double mozFragmentEnd; + + // Mozilla extension: an audio channel type for media elements. + // An exception is thrown if the app tries to change the audio channel type + // without the permission (manifest file for B2G apps). + // The supported values are: + // * normal (default value) + // Automatically paused if "notification" or higher priority channel + // is played + // Use case: normal applications + // * content + // Automatically paused if "notification" or higher priority channel + // is played. Also paused if another app starts using "content" + // channel. Using this channel never affects applications using + // the "normal" channel. + // Use case: video/audio players + // * notification + // Automatically paused if "alarm" or higher priority channel is played. + // Use case: New email, incoming SMS + // * alarm + // Automatically paused if "telephony" or higher priority channel is + // played. + // User case: Alarm clock, calendar alarms + // * telephony + // Automatically paused if "ringer" or higher priority + // channel is played. + // Use case: dialer, voip + // * ringer + // Automatically paused if "publicnotification" or higher priority + // channel is played. + // Use case: dialer, voip + // * publicnotification + // Always plays in speaker, even when headphones are plugged in. + // Use case: Camera shutter sound. + attribute DOMString mozAudioChannelType; + + // In addition the media element has this new events: + // * onmozinterruptbegin - called when the media element is interrupted + // because of the audiochannel manager. + // * onmozinterruptend - called when the interruption is concluded + + [notxpcom] boolean isVideo(); + + /** + * Called by layout to announce when the frame associated with this content + * has changed its visibility state. + * + * @param aOldVisibility The previous visibility state. + * @param aNewVisibility The new visibility state. + */ + [noscript, notxpcom] void onVisibilityChange(in Visibility aNewVisibility); +}; diff --git a/dom/interfaces/html/nsIDOMHTMLMenuElement.idl b/dom/interfaces/html/nsIDOMHTMLMenuElement.idl new file mode 100644 index 000000000..b062ba690 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLMenuElement.idl @@ -0,0 +1,26 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLMenuElement interface is the interface to a [X]HTML + * menu element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(a1ca9af6-f865-4fdf-901d-5858bb0ad5ea)] +interface nsIDOMHTMLMenuElement : nsISupports +{ + attribute boolean compact; + + attribute DOMString type; + attribute DOMString label; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLMenuItemElement.idl b/dom/interfaces/html/nsIDOMHTMLMenuItemElement.idl new file mode 100644 index 000000000..99c533554 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLMenuItemElement.idl @@ -0,0 +1,30 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLMenuItemElement interface is the interface to a HTML + * <menuitem> element. + */ + +[uuid(979d6e44-5930-4232-b405-873939655c19)] +interface nsIDOMHTMLMenuItemElement : nsISupports +{ + attribute DOMString type; + attribute DOMString label; + attribute DOMString icon; + attribute boolean disabled; + + // This should be 'default' but in the IDL implementation + // this has been renamed 'defaultChecked'. + attribute boolean defaultChecked; + + attribute boolean checked; + attribute DOMString radiogroup; + + // Currently not implemented. + // readonly attribute HTMLElement? command; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLMetaElement.idl b/dom/interfaces/html/nsIDOMHTMLMetaElement.idl new file mode 100644 index 000000000..544327beb --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLMetaElement.idl @@ -0,0 +1,26 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLMetaElement interface is the interface to a [X]HTML + * meta element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(2a3f789e-0667-464f-a8d7-6f58513443d9)] +interface nsIDOMHTMLMetaElement : nsISupports +{ + attribute DOMString content; + attribute DOMString httpEquiv; + attribute DOMString name; + attribute DOMString scheme; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLOListElement.idl b/dom/interfaces/html/nsIDOMHTMLOListElement.idl new file mode 100644 index 000000000..833ee1615 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLOListElement.idl @@ -0,0 +1,26 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLOListElement interface is the interface to a [X]HTML + * ol element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(d899642a-53e2-4eb4-9d65-4a666a45ee01)] +interface nsIDOMHTMLOListElement : nsISupports +{ + attribute boolean compact; + attribute boolean reversed; + attribute long start; + attribute DOMString type; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLObjectElement.idl b/dom/interfaces/html/nsIDOMHTMLObjectElement.idl new file mode 100644 index 000000000..87dc35e2f --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLObjectElement.idl @@ -0,0 +1,51 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLObjectElement interface is the interface to a [X]HTML + * object element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +interface nsIDOMValidityState; + +[uuid(baf443d2-da5d-40c9-be3c-c65a69a25250)] +interface nsIDOMHTMLObjectElement : nsISupports +{ + readonly attribute nsIDOMHTMLFormElement form; + attribute DOMString code; + attribute DOMString align; + attribute DOMString archive; + attribute DOMString border; + attribute DOMString codeBase; + attribute DOMString codeType; + attribute DOMString data; + attribute boolean declare; + attribute DOMString height; + attribute long hspace; + attribute DOMString name; + attribute DOMString standby; + attribute DOMString type; + attribute DOMString useMap; + attribute long vspace; + attribute DOMString width; + // Introduced in DOM Level 2: + readonly attribute nsIDOMDocument contentDocument; + + // The following lines are parte of the constraint validation API, see: + // http://www.whatwg.org/specs/web-apps/current-work/#the-constraint-validation-api + readonly attribute boolean willValidate; + readonly attribute nsIDOMValidityState validity; + readonly attribute DOMString validationMessage; + boolean checkValidity(); + void setCustomValidity(in DOMString error); +}; diff --git a/dom/interfaces/html/nsIDOMHTMLOptGroupElement.idl b/dom/interfaces/html/nsIDOMHTMLOptGroupElement.idl new file mode 100644 index 000000000..d2b1a2df1 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLOptGroupElement.idl @@ -0,0 +1,24 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLOptGroupElement interface is the interface to a + * [X]HTML optgroup element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(6fa79f99-4ce4-4634-840a-867fcfb32dba)] +interface nsIDOMHTMLOptGroupElement : nsISupports +{ + attribute boolean disabled; + attribute DOMString label; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLOptionElement.idl b/dom/interfaces/html/nsIDOMHTMLOptionElement.idl new file mode 100644 index 000000000..7ff7a90ab --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLOptionElement.idl @@ -0,0 +1,31 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLOptionElement interface is the interface to a [X]HTML + * option element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(c2b3e9ff-6b36-4158-ace3-05a9c5b8e1c1)] +interface nsIDOMHTMLOptionElement : nsISupports +{ + attribute boolean disabled; + readonly attribute nsIDOMHTMLFormElement form; + attribute DOMString label; + attribute boolean defaultSelected; + attribute boolean selected; + attribute DOMString value; + + attribute DOMString text; + readonly attribute long index; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLOptionsCollection.idl b/dom/interfaces/html/nsIDOMHTMLOptionsCollection.idl new file mode 100644 index 000000000..04592656f --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLOptionsCollection.idl @@ -0,0 +1,52 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" +#include "nsIDOMHTMLCollection.idl" + +interface nsIDOMHTMLOptionElement; +interface nsIDOMHTMLSelectElement; + +/** + * The nsIDOMHTMLOptionsCollection interface is the interface to a + * collection of [X]HTML option elements. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +// Introduced in DOM Level 2: +[uuid(4173cc53-30f6-4d12-a770-981ba53164e2)] +interface nsIDOMHTMLOptionsCollection : nsISupports +{ + attribute unsigned long length; + // raises(DOMException) on setting + + // FIXME item should just be inherited from nsIDOMHTMLCollection + nsIDOMNode item(in unsigned long index); + + // FIXME namedItem (and getNamedItem) should return a NodeList if there are + // multiple matching items + nsIDOMNode namedItem(in DOMString name); + + attribute long selectedIndex; + + [noscript] void setOption(in unsigned long index, + in nsIDOMHTMLOptionElement option); + + [noscript] readonly attribute nsIDOMHTMLSelectElement select; + + // This add method implementation means the following + // since IDL doesn't support overloading. + // void add(in nsIDOMHTMLOptionElement, + // [optional] in nsIDOMHTMLOptionElement) + // void add(in nsIDOMHTMLOptionElement, in long) + void add(in nsIDOMHTMLOptionElement option, + [optional] in nsIVariant before); + void remove(in long index); +}; diff --git a/dom/interfaces/html/nsIDOMHTMLParagraphElement.idl b/dom/interfaces/html/nsIDOMHTMLParagraphElement.idl new file mode 100644 index 000000000..8ad4ec31b --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLParagraphElement.idl @@ -0,0 +1,23 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLParagraphElement interface is the interface to a + * [X]HTML p element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(b494e517-2388-4a63-80e7-2f73be3c38a3)] +interface nsIDOMHTMLParagraphElement : nsISupports +{ + attribute DOMString align; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLPictureElement.idl b/dom/interfaces/html/nsIDOMHTMLPictureElement.idl new file mode 100644 index 000000000..18f819c0b --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLPictureElement.idl @@ -0,0 +1,12 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set ts=2 sw=2 sts=2 et cindent: */ +/* 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/. */ + +#include "nsIDOMHTMLElement.idl" + +[scriptable, uuid(e0e5ac7f-b969-494c-a61e-9d740e38abba)] +interface nsIDOMHTMLPictureElement : nsISupports +{ +}; diff --git a/dom/interfaces/html/nsIDOMHTMLPreElement.idl b/dom/interfaces/html/nsIDOMHTMLPreElement.idl new file mode 100644 index 000000000..9013c4b0b --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLPreElement.idl @@ -0,0 +1,23 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLPreElement interface is the interface to a [X]HTML + * pre element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(a2441b77-ad22-4275-b1dd-1b58c044fd04)] +interface nsIDOMHTMLPreElement : nsISupports +{ + attribute long width; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLQuoteElement.idl b/dom/interfaces/html/nsIDOMHTMLQuoteElement.idl new file mode 100644 index 000000000..6e422a4bf --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLQuoteElement.idl @@ -0,0 +1,23 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLQuoteElement interface is the interface to a [X]HTML + * q element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(f02502b5-32a6-4df7-8a57-1416553a3188)] +interface nsIDOMHTMLQuoteElement : nsISupports +{ + attribute DOMString cite; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLScriptElement.idl b/dom/interfaces/html/nsIDOMHTMLScriptElement.idl new file mode 100644 index 000000000..ec4cb5b77 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLScriptElement.idl @@ -0,0 +1,31 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLScriptElement interface is the interface to a [X]HTML + * script element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(fe96dc1c-40e4-4974-9354-e3fce663c3d5)] +interface nsIDOMHTMLScriptElement : nsISupports +{ + attribute DOMString src; + attribute boolean async; + attribute boolean defer; + attribute DOMString type; + attribute DOMString charset; + attribute DOMString text; + + attribute DOMString htmlFor; + attribute DOMString event; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLSelectElement.idl b/dom/interfaces/html/nsIDOMHTMLSelectElement.idl new file mode 100644 index 000000000..ff5708943 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLSelectElement.idl @@ -0,0 +1,60 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" +#include "nsIDOMHTMLOptionsCollection.idl" + +/** + * The nsIDOMHTMLSelectElement interface is the interface to a [X]HTML + * select element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +interface nsIDOMValidityState; + +[uuid(d8914a2d-3556-4b66-911c-a84c4394e7fa)] +interface nsIDOMHTMLSelectElement : nsISupports +{ + attribute boolean autofocus; + attribute boolean disabled; + readonly attribute nsIDOMHTMLFormElement form; + attribute boolean multiple; + attribute DOMString name; + attribute unsigned long size; + + readonly attribute DOMString type; + + readonly attribute nsIDOMHTMLOptionsCollection options; + attribute unsigned long length; + nsIDOMNode item(in unsigned long index); + nsIDOMNode namedItem(in DOMString name); + // This add method implementation means the following + // since IDL doesn't support overfload. + // void add(in nsIDOMHTMLElement, [optional] in nsIDOMHTMLElement) + // void add(in nsIDOMHTMLElement, in long) + void add(in nsIDOMHTMLElement element, + [optional] in nsIVariant before) + raises(DOMException); + void remove(in long index); + + readonly attribute nsIDOMHTMLCollection selectedOptions; + attribute long selectedIndex; + attribute DOMString value; + + // The following lines are part of the constraint validation API, see: + // http://www.whatwg.org/specs/web-apps/current-work/#the-constraint-validation-api + readonly attribute boolean willValidate; + readonly attribute nsIDOMValidityState validity; + readonly attribute DOMString validationMessage; + boolean checkValidity(); + void setCustomValidity(in DOMString error); + + attribute boolean required; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLSourceElement.idl b/dom/interfaces/html/nsIDOMHTMLSourceElement.idl new file mode 100644 index 000000000..907e4b632 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLSourceElement.idl @@ -0,0 +1,27 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set ts=2 sw=2 sts=2 et cindent: */ +/* 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLSourceElement interface is the interface to a HTML + * <source> element. + * + * For more information on this interface, please see + * http://www.whatwg.org/specs/web-apps/current-work/#source + * + * @status UNDER_DEVELOPMENT + */ + +[uuid(1deb68f8-2ed6-4a41-b8c8-e0f86510f799)] +interface nsIDOMHTMLSourceElement : nsISupports +{ + attribute DOMString src; + attribute DOMString type; + attribute DOMString srcset; + attribute DOMString sizes; + attribute DOMString media; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLStyleElement.idl b/dom/interfaces/html/nsIDOMHTMLStyleElement.idl new file mode 100644 index 000000000..789bb0489 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLStyleElement.idl @@ -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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLStyleElement interface is the interface to a [X]HTML + * style element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(fa326d22-8739-4eef-a80e-6449bde605d2)] +interface nsIDOMHTMLStyleElement : nsISupports +{ + [binaryname(MozDisabled)] + attribute boolean disabled; + attribute DOMString media; + attribute DOMString type; + attribute boolean scoped; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLTableCellElement.idl b/dom/interfaces/html/nsIDOMHTMLTableCellElement.idl new file mode 100644 index 000000000..65b92969f --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLTableCellElement.idl @@ -0,0 +1,37 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLTableCellElement interface is the interface to a + * [X]HTML td element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(3203c36f-33fd-4628-8c88-77e82d38df1e)] +interface nsIDOMHTMLTableCellElement : nsISupports +{ + readonly attribute long cellIndex; + attribute DOMString abbr; + attribute DOMString align; + attribute DOMString axis; + attribute DOMString bgColor; + attribute DOMString ch; + attribute DOMString chOff; + attribute long colSpan; + attribute DOMString headers; + attribute DOMString height; + attribute boolean noWrap; + attribute long rowSpan; + attribute DOMString scope; + attribute DOMString vAlign; + attribute DOMString width; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLTextAreaElement.idl b/dom/interfaces/html/nsIDOMHTMLTextAreaElement.idl new file mode 100644 index 000000000..509b0c916 --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLTextAreaElement.idl @@ -0,0 +1,67 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +interface nsIControllers; +interface nsIDOMValidityState; + +/** + * The nsIDOMHTMLTextAreaElement interface is the interface to a + * [X]HTML textarea element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(7a4aeb2e-fcf3-443e-b002-ca1c8ea322e9)] +interface nsIDOMHTMLTextAreaElement : nsISupports +{ + attribute boolean autofocus; + attribute unsigned long cols; + attribute boolean disabled; + readonly attribute nsIDOMHTMLFormElement form; + attribute long maxLength; + attribute long minLength; + attribute DOMString name; + attribute DOMString placeholder; + attribute boolean readOnly; + attribute boolean required; + attribute unsigned long rows; + /** + * Reflects the wrap content attribute. Possible values are "soft", "hard" and + * "off". "soft" is the default. + */ + [Null(Stringify)] + attribute DOMString wrap; + + readonly attribute DOMString type; + attribute DOMString defaultValue; + attribute DOMString value; + readonly attribute long textLength; + + // The following lines are part of the constraint validation API, see: + // http://www.whatwg.org/specs/web-apps/current-work/#the-constraint-validation-api + readonly attribute boolean willValidate; + readonly attribute nsIDOMValidityState validity; + readonly attribute DOMString validationMessage; + boolean checkValidity(); + void setCustomValidity(in DOMString error); + + void select(); + attribute long selectionStart; + attribute long selectionEnd; + void setSelectionRange(in long selectionStart, in long selectionEnd, [optional] in DOMString direction); + attribute DOMString selectionDirection; + + + // Mozilla extensions + // Please make sure to update the HTMLTextAreaElement Web IDL interface to + // mirror the list of Mozilla extensions here when changing it. + readonly attribute nsIControllers controllers; +}; diff --git a/dom/interfaces/html/nsIDOMHTMLUListElement.idl b/dom/interfaces/html/nsIDOMHTMLUListElement.idl new file mode 100644 index 000000000..c4942da7e --- /dev/null +++ b/dom/interfaces/html/nsIDOMHTMLUListElement.idl @@ -0,0 +1,24 @@ +/* -*- 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/. */ + +#include "nsIDOMHTMLElement.idl" + +/** + * The nsIDOMHTMLUListElement interface is the interface to a [X]HTML + * ul element. + * + * This interface is trying to follow the DOM Level 2 HTML specification: + * http://www.w3.org/TR/DOM-Level-2-HTML/ + * + * with changes from the work-in-progress WHATWG HTML specification: + * http://www.whatwg.org/specs/web-apps/current-work/ + */ + +[uuid(8ba1ee8d-36a4-43fc-9148-5144c2a29c96)] +interface nsIDOMHTMLUListElement : nsISupports +{ + attribute boolean compact; + attribute DOMString type; +}; diff --git a/dom/interfaces/html/nsIDOMMozBrowserFrame.idl b/dom/interfaces/html/nsIDOMMozBrowserFrame.idl new file mode 100644 index 000000000..75602bcfb --- /dev/null +++ b/dom/interfaces/html/nsIDOMMozBrowserFrame.idl @@ -0,0 +1,27 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set tw=80 expandtab softtabstop=2 ts=2 sw=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/. */ + +#include "nsISupports.idl" + +[scriptable, uuid(4CAFE116-581B-4194-B0DE-7F02378FC51D)] +interface nsIDOMMozBrowserFrame : nsISupports +{ + /** + * <iframe> element may have the mozbrowser attribute. + * + * The mozbrowser attribute has no effect unless the <iframe> element is + * contained in a document privileged to create browser frames. + * + * An <iframe> element in a privileged document with the mozbrowser attribute + * emits a variety of events when various things happen inside the frame. + * + * This will be documented eventually, but for more information at the moment, + * see dom/browser-element/BrowserElement{Child,Parent}.js. + * + */ + attribute boolean mozbrowser; +}; diff --git a/dom/interfaces/html/nsIDOMTimeRanges.idl b/dom/interfaces/html/nsIDOMTimeRanges.idl new file mode 100644 index 000000000..7e738fa8b --- /dev/null +++ b/dom/interfaces/html/nsIDOMTimeRanges.idl @@ -0,0 +1,21 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set ts=2 sw=2 sts=2 et cindent: */ +/* 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/. */ +#include "domstubs.idl" + +[uuid(c43448db-0bab-461d-b648-1ca14a967f7e)] +interface nsIDOMTimeRanges : nsISupports +{ + /* The number of ranges represented by the time range object */ + readonly attribute unsigned long length; + + /* The position of the start of the index'd range, in seconds measured + from the start of the timeline that this object represents */ + double start(in unsigned long index); + + /* The position of the end of the index'd range, in seconds measured + from the start of the timeline that this object represents */ + double end(in unsigned long index); +}; diff --git a/dom/interfaces/html/nsIDOMValidityState.idl b/dom/interfaces/html/nsIDOMValidityState.idl new file mode 100644 index 000000000..fdd24a6fb --- /dev/null +++ b/dom/interfaces/html/nsIDOMValidityState.idl @@ -0,0 +1,30 @@ +/* -*- 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/. */ + +#include "domstubs.idl" + +/** + * The nsIDOMValidityState interface is the interface to a ValidityState + * object which represents the validity states of an element. + * + * For more information on this interface please see + * http://www.whatwg.org/specs/web-apps/current-work/#validitystate + */ + +[uuid(00bed276-f1f7-492f-a039-dbd9b9efc10b)] +interface nsIDOMValidityState : nsISupports +{ + readonly attribute boolean valueMissing; + readonly attribute boolean typeMismatch; + readonly attribute boolean patternMismatch; + readonly attribute boolean tooLong; + readonly attribute boolean tooShort; + 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/dom/interfaces/html/nsIMozBrowserFrame.idl b/dom/interfaces/html/nsIMozBrowserFrame.idl new file mode 100644 index 000000000..a9dccdd1c --- /dev/null +++ b/dom/interfaces/html/nsIMozBrowserFrame.idl @@ -0,0 +1,89 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set tw=80 expandtab softtabstop=2 ts=2 sw=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/. */ + +#include "nsIDOMMozBrowserFrame.idl" + +interface nsITabParent; + +[scriptable, builtinclass, uuid(0c0a862c-1a47-43c0-ae9e-d51835e3e1a6)] +interface nsIMozBrowserFrame : nsIDOMMozBrowserFrame +{ + /** + * Gets whether this frame really is a browser or app frame. + * + * In order to really be a browser frame, this frame's + * nsIDOMMozBrowserFrame::mozbrowser attribute must be true, and the frame + * may have to pass various security checks. + */ + [infallible] readonly attribute boolean reallyIsBrowserOrApp; + + /** + * Gets whether this frame really is an app frame. + * + * In order to really be an app frame, this frame must really be a browser + * frame (this requirement will go away eventually), and the frame's mozapp + * attribute must point to the manifest of a valid app. + */ + [infallible] readonly attribute boolean reallyIsApp; + + /** + * Gets whether this frame is an isolated frame. + * + * By default, browser frames are isolated, meaning they have a principal + * where OriginAttributes.mIsInIsolatedMozBrowser == true. This isolates + * storage and other origin related items from non-browser apps, xul:browsers, + * etc. + * + * Isolation can be disabled by setting the frame's isolated attribute to + * false. Disabling isolation is only allowed if the containing document has + * browser permission (or equivalent access). + */ + [infallible] readonly attribute boolean isolated; + + /** + * Gets this frame's app manifest URL, if the frame really is an app frame. + * Otherwise, returns the empty string. + * + * This method is guaranteed not to fail. + */ + readonly attribute AString appManifestURL; + + /** + * Normally, a frame tries to create its frame loader when its src is + * modified, or its contentWindow is accessed. + * + * disallowCreateFrameLoader prevents the frame element from creating its + * frame loader (in the same way that not being inside a document prevents the + * creation of a frame loader). allowCreateFrameLoader lifts this restriction. + * + * These methods are not re-entrant -- it is an error to call + * disallowCreateFrameLoader twice without first calling allowFrameLoader. + * + * It's also an error to call either method if we already have a frame loader. + */ + void disallowCreateFrameLoader(); + void allowCreateFrameLoader(); + + /** + * Create a remote (i.e., out-of-process) frame loader attached to the given + * tab parent. + * + * It is an error to call this method if we already have a frame loader. + */ + void createRemoteFrameLoader(in nsITabParent aTabParent); + + /** + * Initialize the API, and add frame message listener that supports API + * invocations. + */ + [noscript] void initializeBrowserAPI(); + + /** + * Notify frame scripts that support the API to destroy. + */ + [noscript] void destroyBrowserFrameScripts(); +}; |