summaryrefslogtreecommitdiffstats
path: root/dom/interfaces/html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/interfaces/html')
-rw-r--r--dom/interfaces/html/moz.build61
-rw-r--r--dom/interfaces/html/nsIDOMHTMLAnchorElement.idl55
-rw-r--r--dom/interfaces/html/nsIDOMHTMLAppletElement.idl36
-rw-r--r--dom/interfaces/html/nsIDOMHTMLAreaElement.idl43
-rw-r--r--dom/interfaces/html/nsIDOMHTMLBaseElement.idl24
-rw-r--r--dom/interfaces/html/nsIDOMHTMLBodyElement.idl32
-rw-r--r--dom/interfaces/html/nsIDOMHTMLButtonElement.idl45
-rw-r--r--dom/interfaces/html/nsIDOMHTMLCanvasElement.idl47
-rw-r--r--dom/interfaces/html/nsIDOMHTMLCollection.idl26
-rw-r--r--dom/interfaces/html/nsIDOMHTMLDirectoryElement.idl23
-rw-r--r--dom/interfaces/html/nsIDOMHTMLDocument.idl99
-rw-r--r--dom/interfaces/html/nsIDOMHTMLElement.idl67
-rw-r--r--dom/interfaces/html/nsIDOMHTMLEmbedElement.idl25
-rw-r--r--dom/interfaces/html/nsIDOMHTMLFieldSetElement.idl39
-rw-r--r--dom/interfaces/html/nsIDOMHTMLFormElement.idl38
-rw-r--r--dom/interfaces/html/nsIDOMHTMLFrameElement.idl32
-rw-r--r--dom/interfaces/html/nsIDOMHTMLFrameSetElement.idl28
-rw-r--r--dom/interfaces/html/nsIDOMHTMLHRElement.idl27
-rw-r--r--dom/interfaces/html/nsIDOMHTMLHeadElement.idl22
-rw-r--r--dom/interfaces/html/nsIDOMHTMLHtmlElement.idl23
-rw-r--r--dom/interfaces/html/nsIDOMHTMLIFrameElement.idl37
-rw-r--r--dom/interfaces/html/nsIDOMHTMLImageElement.idl49
-rw-r--r--dom/interfaces/html/nsIDOMHTMLInputElement.idl109
-rw-r--r--dom/interfaces/html/nsIDOMHTMLLIElement.idl24
-rw-r--r--dom/interfaces/html/nsIDOMHTMLLabelElement.idl25
-rw-r--r--dom/interfaces/html/nsIDOMHTMLLinkElement.idl32
-rw-r--r--dom/interfaces/html/nsIDOMHTMLMapElement.idl24
-rw-r--r--dom/interfaces/html/nsIDOMHTMLMediaElement.idl140
-rw-r--r--dom/interfaces/html/nsIDOMHTMLMenuElement.idl26
-rw-r--r--dom/interfaces/html/nsIDOMHTMLMenuItemElement.idl30
-rw-r--r--dom/interfaces/html/nsIDOMHTMLMetaElement.idl26
-rw-r--r--dom/interfaces/html/nsIDOMHTMLOListElement.idl26
-rw-r--r--dom/interfaces/html/nsIDOMHTMLObjectElement.idl51
-rw-r--r--dom/interfaces/html/nsIDOMHTMLOptGroupElement.idl24
-rw-r--r--dom/interfaces/html/nsIDOMHTMLOptionElement.idl31
-rw-r--r--dom/interfaces/html/nsIDOMHTMLOptionsCollection.idl52
-rw-r--r--dom/interfaces/html/nsIDOMHTMLParagraphElement.idl23
-rw-r--r--dom/interfaces/html/nsIDOMHTMLPictureElement.idl12
-rw-r--r--dom/interfaces/html/nsIDOMHTMLPreElement.idl23
-rw-r--r--dom/interfaces/html/nsIDOMHTMLQuoteElement.idl23
-rw-r--r--dom/interfaces/html/nsIDOMHTMLScriptElement.idl31
-rw-r--r--dom/interfaces/html/nsIDOMHTMLSelectElement.idl60
-rw-r--r--dom/interfaces/html/nsIDOMHTMLSourceElement.idl27
-rw-r--r--dom/interfaces/html/nsIDOMHTMLStyleElement.idl27
-rw-r--r--dom/interfaces/html/nsIDOMHTMLTableCellElement.idl37
-rw-r--r--dom/interfaces/html/nsIDOMHTMLTextAreaElement.idl67
-rw-r--r--dom/interfaces/html/nsIDOMHTMLUListElement.idl24
-rw-r--r--dom/interfaces/html/nsIDOMMozBrowserFrame.idl27
-rw-r--r--dom/interfaces/html/nsIDOMTimeRanges.idl21
-rw-r--r--dom/interfaces/html/nsIDOMValidityState.idl30
-rw-r--r--dom/interfaces/html/nsIMozBrowserFrame.idl89
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();
+};