summaryrefslogtreecommitdiffstats
path: root/dom/interfaces/core
diff options
context:
space:
mode:
Diffstat (limited to 'dom/interfaces/core')
-rw-r--r--dom/interfaces/core/moz.build28
-rw-r--r--dom/interfaces/core/nsIDOMAttr.idl29
-rw-r--r--dom/interfaces/core/nsIDOMCDATASection.idl21
-rw-r--r--dom/interfaces/core/nsIDOMCharacterData.idl42
-rw-r--r--dom/interfaces/core/nsIDOMComment.idl20
-rw-r--r--dom/interfaces/core/nsIDOMDOMException.idl52
-rw-r--r--dom/interfaces/core/nsIDOMDOMImplementation.idl42
-rw-r--r--dom/interfaces/core/nsIDOMDocument.idl415
-rw-r--r--dom/interfaces/core/nsIDOMDocumentFragment.idl27
-rw-r--r--dom/interfaces/core/nsIDOMDocumentType.idl28
-rw-r--r--dom/interfaces/core/nsIDOMElement.idl229
-rw-r--r--dom/interfaces/core/nsIDOMMozNamedAttrMap.idl33
-rw-r--r--dom/interfaces/core/nsIDOMNSEditableElement.idl28
-rw-r--r--dom/interfaces/core/nsIDOMNode.idl111
-rw-r--r--dom/interfaces/core/nsIDOMNodeList.idl25
-rw-r--r--dom/interfaces/core/nsIDOMProcessingInstruction.idl22
-rw-r--r--dom/interfaces/core/nsIDOMText.idl29
-rw-r--r--dom/interfaces/core/nsIDOMXMLDocument.idl15
18 files changed, 1196 insertions, 0 deletions
diff --git a/dom/interfaces/core/moz.build b/dom/interfaces/core/moz.build
new file mode 100644
index 000000000..415432a83
--- /dev/null
+++ b/dom/interfaces/core/moz.build
@@ -0,0 +1,28 @@
+# -*- 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 += [
+ 'nsIDOMAttr.idl',
+ 'nsIDOMCDATASection.idl',
+ 'nsIDOMCharacterData.idl',
+ 'nsIDOMComment.idl',
+ 'nsIDOMDocument.idl',
+ 'nsIDOMDocumentFragment.idl',
+ 'nsIDOMDocumentType.idl',
+ 'nsIDOMDOMException.idl',
+ 'nsIDOMDOMImplementation.idl',
+ 'nsIDOMElement.idl',
+ 'nsIDOMMozNamedAttrMap.idl',
+ 'nsIDOMNode.idl',
+ 'nsIDOMNodeList.idl',
+ 'nsIDOMNSEditableElement.idl',
+ 'nsIDOMProcessingInstruction.idl',
+ 'nsIDOMText.idl',
+ 'nsIDOMXMLDocument.idl',
+]
+
+XPIDL_MODULE = 'dom_core'
+
diff --git a/dom/interfaces/core/nsIDOMAttr.idl b/dom/interfaces/core/nsIDOMAttr.idl
new file mode 100644
index 000000000..f4971ba44
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMAttr.idl
@@ -0,0 +1,29 @@
+/* -*- 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 "nsIDOMNode.idl"
+
+/**
+ * The nsIDOMAttr interface represents an attribute in an "Element" object.
+ * Typically the allowable values for the attribute are defined in a document
+ * type definition.
+ *
+ * For more information on this interface please see
+ * http://www.w3.org/TR/DOM-Level-2-Core/
+ */
+
+[builtinclass, uuid(7db491e8-a3a3-4432-ad67-e6c33e24ac6d)]
+interface nsIDOMAttr : nsIDOMNode
+{
+ readonly attribute DOMString name;
+ readonly attribute boolean specified;
+ attribute DOMString value;
+ // raises(DOMException) on setting
+
+ // Introduced in DOM Level 2:
+ readonly attribute nsIDOMElement ownerElement;
+
+ readonly attribute boolean isId;
+};
diff --git a/dom/interfaces/core/nsIDOMCDATASection.idl b/dom/interfaces/core/nsIDOMCDATASection.idl
new file mode 100644
index 000000000..c0595c58c
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMCDATASection.idl
@@ -0,0 +1,21 @@
+/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsIDOMText.idl"
+
+/**
+ * CDATA sections are used to escape blocks of text containing characters
+ * that would otherwise be regarded as markup.
+ * Their primary purpose is for including material such as XML fragments,
+ * without needing to escape all the delimiters.
+ *
+ * For more information on this interface please see
+ * http://www.w3.org/TR/DOM-Level-2-Core/
+ */
+
+[uuid(e14ef131-34cc-40c8-9c99-a403c001184a)]
+interface nsIDOMCDATASection : nsIDOMText
+{
+};
diff --git a/dom/interfaces/core/nsIDOMCharacterData.idl b/dom/interfaces/core/nsIDOMCharacterData.idl
new file mode 100644
index 000000000..96cfd40e7
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMCharacterData.idl
@@ -0,0 +1,42 @@
+/* -*- 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 "nsIDOMNode.idl"
+
+/**
+ * The nsIDOMCharacterData interface extends nsIDOMNode with a set of
+ * attributes and methods for accessing character data in the DOM.
+ *
+ * For more information on this interface please see
+ * http://www.w3.org/TR/DOM-Level-2-Core/
+ */
+
+[uuid(4109a2d2-e7af-445d-bb72-c7c9b875f35e)]
+interface nsIDOMCharacterData : nsIDOMNode
+{
+ attribute DOMString data;
+ // raises(DOMException) on setting
+ // raises(DOMException) on retrieval
+
+ readonly attribute unsigned long length;
+ DOMString substringData(in unsigned long offset,
+ in unsigned long count)
+ raises(DOMException);
+ void appendData(in DOMString arg)
+ raises(DOMException);
+ void insertData(in unsigned long offset,
+ in DOMString arg)
+ raises(DOMException);
+ void deleteData(in unsigned long offset,
+ in unsigned long count)
+ raises(DOMException);
+ void replaceData(in unsigned long offset,
+ in unsigned long count,
+ in DOMString arg)
+ raises(DOMException);
+
+ [binaryname(MozRemove)]
+ void remove();
+};
diff --git a/dom/interfaces/core/nsIDOMComment.idl b/dom/interfaces/core/nsIDOMComment.idl
new file mode 100644
index 000000000..f7d372167
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMComment.idl
@@ -0,0 +1,20 @@
+/* -*- 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 "nsIDOMCharacterData.idl"
+
+/**
+ * The nsIDOMComment interface inherits from nsIDOMCharacterData and represents
+ * the content of a comment, i.e., all the characters between the starting
+ * '<!--' and ending '-->'.
+ *
+ * For more information on this interface please see
+ * http://www.w3.org/TR/DOM-Level-2-Core/
+ */
+
+[uuid(e7866ff8-b7fc-494f-87c0-fb017d8a4d30)]
+interface nsIDOMComment : nsIDOMCharacterData
+{
+};
diff --git a/dom/interfaces/core/nsIDOMDOMException.idl b/dom/interfaces/core/nsIDOMDOMException.idl
new file mode 100644
index 000000000..5206a5f4c
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMDOMException.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 "domstubs.idl"
+
+/**
+ * In general, DOM methods return specific error values in ordinary
+ * processing situations, such as out-of-bound errors.
+ * However, DOM operations can raise exceptions in "exceptional"
+ * circumstances, i.e., when an operation is impossible to perform
+ * (either for logical reasons, because data is lost, or because the
+ * implementation has become unstable)
+ *
+ * For more information on this interface please see
+ * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#domexception
+ */
+
+[uuid(5bd766d3-57a9-4833-995d-dbe21da29595)]
+interface nsIDOMDOMException : nsISupports
+{
+ const unsigned short INDEX_SIZE_ERR = 1;
+ const unsigned short DOMSTRING_SIZE_ERR = 2; // historical
+ const unsigned short HIERARCHY_REQUEST_ERR = 3;
+ const unsigned short WRONG_DOCUMENT_ERR = 4;
+ const unsigned short INVALID_CHARACTER_ERR = 5;
+ const unsigned short NO_DATA_ALLOWED_ERR = 6; // historical
+ const unsigned short NO_MODIFICATION_ALLOWED_ERR = 7;
+ const unsigned short NOT_FOUND_ERR = 8;
+ const unsigned short NOT_SUPPORTED_ERR = 9;
+ const unsigned short INUSE_ATTRIBUTE_ERR = 10; // historical
+ const unsigned short INVALID_STATE_ERR = 11;
+ const unsigned short SYNTAX_ERR = 12;
+ const unsigned short INVALID_MODIFICATION_ERR = 13;
+ const unsigned short NAMESPACE_ERR = 14;
+ const unsigned short INVALID_ACCESS_ERR = 15;
+ const unsigned short VALIDATION_ERR = 16; // historical
+ const unsigned short TYPE_MISMATCH_ERR = 17;
+ const unsigned short SECURITY_ERR = 18;
+ const unsigned short NETWORK_ERR = 19;
+ const unsigned short ABORT_ERR = 20;
+ const unsigned short URL_MISMATCH_ERR = 21;
+ const unsigned short QUOTA_EXCEEDED_ERR = 22;
+ const unsigned short TIMEOUT_ERR = 23;
+ const unsigned short INVALID_NODE_TYPE_ERR = 24;
+ const unsigned short DATA_CLONE_ERR = 25;
+ const unsigned short INVALID_POINTER_ERR = 26;
+
+ readonly attribute unsigned short code;
+};
+
diff --git a/dom/interfaces/core/nsIDOMDOMImplementation.idl b/dom/interfaces/core/nsIDOMDOMImplementation.idl
new file mode 100644
index 000000000..60e902840
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMDOMImplementation.idl
@@ -0,0 +1,42 @@
+/* -*- 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 nsIDOMDOMImplementation interface provides a number of methods for
+ * performing operations that are independent of any particular instance
+ * of the document object model.
+ *
+ * For more information on this interface please see
+ * http://www.w3.org/TR/DOM-Level-2-Core/
+ */
+
+[uuid(03a6f574-99ec-42f8-9e6c-812a4a9bcbf7)]
+interface nsIDOMDOMImplementation : nsISupports
+{
+ boolean hasFeature(in DOMString feature,
+ in DOMString version);
+
+ nsIDOMDocumentType createDocumentType(in DOMString qualifiedName,
+ in DOMString publicId,
+ in DOMString systemId)
+ raises(DOMException);
+
+ nsIDOMDocument createDocument(in DOMString namespaceURI,
+ in DOMString qualifiedName,
+ in nsIDOMDocumentType doctype)
+ raises(DOMException);
+
+ /**
+ * Returns an HTML document with a basic DOM already constructed and with an
+ * appropriate title element.
+ *
+ * @param title the title of the Document
+ * @see <http://www.whatwg.org/html/#creating-documents>
+ */
+ nsIDOMDocument createHTMLDocument([Null(Stringify)]
+ in DOMString title);
+};
diff --git a/dom/interfaces/core/nsIDOMDocument.idl b/dom/interfaces/core/nsIDOMDocument.idl
new file mode 100644
index 000000000..6070a99ac
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMDocument.idl
@@ -0,0 +1,415 @@
+/* -*- 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 "nsIDOMNode.idl"
+
+%{ C++
+#include "jspubtd.h"
+
+// windows.h #defines CreateEvent
+#ifdef CreateEvent
+#undef CreateEvent
+#endif
+%}
+
+interface mozIDOMWindowProxy;
+interface nsIDOMNodeIterator;
+interface nsIDOMNodeFilter;
+interface nsIDOMTreeWalker;
+interface nsIDOMLocation;
+
+/**
+ * The nsIDOMDocument interface represents the entire HTML or XML document.
+ * Conceptually, it is the root of the document tree, and provides the
+ * primary access to the document's data.
+ * Since elements, text nodes, comments, processing instructions, etc.
+ * cannot exist outside the context of a Document, the nsIDOMDocument
+ * interface also contains the factory methods needed to create these
+ * objects.
+ *
+ * For more information on this interface please see
+ * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html
+ */
+
+[uuid(b15fa0f4-97c1-4388-af62-2ceff7a89bdf)]
+interface nsIDOMDocument : nsIDOMNode
+{
+ readonly attribute nsIDOMDocumentType doctype;
+ readonly attribute nsIDOMDOMImplementation implementation;
+ readonly attribute nsIDOMElement documentElement;
+ nsIDOMElement createElement([Null(Stringify)] in DOMString tagName)
+ raises(DOMException);
+ nsIDOMDocumentFragment createDocumentFragment();
+ nsIDOMText createTextNode(in DOMString data);
+ nsIDOMComment createComment(in DOMString data);
+ nsIDOMCDATASection createCDATASection(in DOMString data)
+ raises(DOMException);
+ nsIDOMProcessingInstruction createProcessingInstruction(in DOMString target,
+ in DOMString data)
+ raises(DOMException);
+ nsIDOMAttr createAttribute(in DOMString name)
+ raises(DOMException);
+ nsIDOMNodeList getElementsByTagName(in DOMString tagname);
+
+ // Introduced in DOM Level 2:
+ [optional_argc] nsIDOMNode importNode(in nsIDOMNode importedNode,
+ [optional] in boolean deep)
+ raises(DOMException);
+ // Introduced in DOM Level 2:
+ nsIDOMElement createElementNS(in DOMString namespaceURI,
+ [Null(Stringify)] in DOMString qualifiedName)
+ raises(DOMException);
+ // Introduced in DOM Level 2:
+ nsIDOMAttr createAttributeNS(in DOMString namespaceURI,
+ in DOMString qualifiedName)
+ raises(DOMException);
+ // Introduced in DOM Level 2:
+ nsIDOMNodeList getElementsByTagNameNS(in DOMString namespaceURI,
+ in DOMString localName);
+ // Introduced in DOM Level 2:
+ nsIDOMElement getElementById(in DOMString elementId);
+ // Introduced in DOM Level 3:
+ readonly attribute DOMString inputEncoding;
+ // Introduced in DOM Level 3:
+ readonly attribute DOMString documentURI;
+ // Alias introduced for all documents in recent DOM standards
+ readonly attribute DOMString URL;
+ // Introduced in DOM Level 3:
+ nsIDOMNode adoptNode(in nsIDOMNode source)
+ raises(DOMException);
+
+ /**
+ * Create a range
+ *
+ * @see http://html5.org/specs/dom-range.html#dom-document-createrange
+ */
+ nsIDOMRange createRange();
+
+ [optional_argc] nsIDOMNodeIterator createNodeIterator(in nsIDOMNode root,
+ [optional] in unsigned long whatToShow,
+ [optional] in nsIDOMNodeFilter filter)
+ raises(DOMException);
+ [optional_argc] nsIDOMTreeWalker createTreeWalker(in nsIDOMNode root,
+ [optional] in unsigned long whatToShow,
+ [optional] in nsIDOMNodeFilter filter)
+ raises(DOMException);
+
+ nsIDOMEvent createEvent(in DOMString eventType)
+ raises(DOMException);
+
+
+ // HTML
+ /**
+ * The window associated with this document.
+ *
+ * @see <http://www.whatwg.org/html/#dom-document-defaultview>
+ */
+ readonly attribute mozIDOMWindowProxy defaultView;
+
+ /**
+ * @see <http://www.whatwg.org/html/#dom-document-characterset>
+ */
+ readonly attribute DOMString characterSet;
+ /**
+ * @see <http://www.whatwg.org/html/#dom-document-dir>
+ */
+ attribute DOMString dir;
+
+ /**
+ * @see <http://www.whatwg.org/html/#dom-document-location>
+ */
+ readonly attribute nsIDOMLocation location;
+
+ /**
+ * @see <http://www.whatwg.org/html/#document.title>
+ */
+ attribute DOMString title;
+
+ /**
+ * @see <http://www.whatwg.org/html/#dom-document-readystate>
+ */
+ readonly attribute DOMString readyState;
+ /**
+ * @see <http://www.whatwg.org/html/#dom-document-lastmodified>
+ */
+ readonly attribute DOMString lastModified;
+ /**
+ * @see <http://www.whatwg.org/html/#dom-document-referrer>
+ */
+ readonly attribute DOMString referrer;
+
+ /**
+ * @see <http://www.whatwg.org/html/#dom-document-hasfocus>
+ */
+ boolean hasFocus();
+
+ /**
+ * @see <http://www.whatwg.org/html/#dom-document-activeelement>
+ */
+ readonly attribute nsIDOMElement activeElement;
+
+ /**
+ * Retrieve elements matching all classes listed in a
+ * space-separated string.
+ *
+ * @see <http://www.whatwg.org/html/#dom-document-getelementsbyclassname>
+ */
+ nsIDOMNodeList getElementsByClassName(in DOMString classes);
+
+
+ // CSSOM
+ /**
+ * @see <http://dev.w3.org/csswg/cssom/#dom-document-stylesheets>
+ */
+ readonly attribute nsIDOMStyleSheetList styleSheets;
+
+ /**
+ * This attribute must return the preferred style sheet set as set by the
+ * author. It is determined from the order of style sheet declarations and
+ * the Default-Style HTTP headers, as eventually defined elsewhere in the Web
+ * Apps 1.0 specification. If there is no preferred style sheet set, this
+ * attribute must return the empty string. The case of this attribute must
+ * exactly match the case given by the author where the preferred style sheet
+ * is specified or implied. This attribute must never return null.
+ *
+ * @see <http://dev.w3.org/csswg/cssom/#dom-document-preferredStyleSheetSet>
+ */
+ readonly attribute DOMString preferredStyleSheetSet;
+
+ /**
+ * This attribute indicates which style sheet set is in use. This attribute
+ * is live; changing the disabled attribute on style sheets directly will
+ * change the value of this attribute.
+ *
+ * If all the sheets that are enabled and have a title have the same title
+ * (by case-sensitive comparisons) then the value of this attribute must be
+ * exactly equal to the title of the first enabled style sheet with a title
+ * in the styleSheets list. Otherwise, if style sheets from different sets
+ * are enabled, then the return value must be null (there is no way to
+ * determine what the currently selected style sheet set is in those
+ * conditions). Otherwise, either all style sheets that have a title are
+ * disabled, or there are no alternate style sheets, and
+ * selectedStyleSheetSet must return the empty string.
+ *
+ * Setting this attribute to the null value must have no effect.
+ *
+ * Setting this attribute to a non-null value must call
+ * enableStyleSheetsForSet() with that value as the function's argument, and
+ * set lastStyleSheetSet to that value.
+ *
+ * From the DOM's perspective, all views have the same
+ * selectedStyleSheetSet. If a UA supports multiple views with different
+ * selected alternate style sheets, then this attribute (and the StyleSheet
+ * interface's disabled attribute) must return and set the value for the
+ * default view.
+ *
+ * @see <http://dev.w3.org/csswg/cssom/#dom-document-selectedStyleSheetSet>
+ */
+ [binaryname(MozSelectedStyleSheetSet)]
+ attribute DOMString selectedStyleSheetSet;
+
+ /*
+ * This property must initially have the value null. Its value changes when
+ * the selectedStyleSheetSet attribute is set.
+ *
+ * @see <http://dev.w3.org/csswg/cssom/#dom-document-lastStyleSheetSet>
+ */
+ readonly attribute DOMString lastStyleSheetSet;
+
+ /**
+ * This must return the live list of the currently available style sheet
+ * sets. This list is constructed by enumerating all the style sheets for
+ * this document available to the implementation, in the order they are
+ * listed in the styleSheets attribute, adding the title of each style sheet
+ * with a title to the list, avoiding duplicates by dropping titles that
+ * match (case-sensitively) titles that have already been added to the
+ * list.
+ *
+ * @see <http://dev.w3.org/csswg/cssom/#dom-document-styleSheetSets>
+ */
+ readonly attribute nsISupports styleSheetSets;
+
+ /**
+ * Calling this method must change the disabled attribute on each StyleSheet
+ * object with a title attribute with a length greater than 0 in the
+ * styleSheets attribute, so that all those whose title matches the name
+ * argument are enabled, and all others are disabled. Title matches must be
+ * case-sensitive. Calling this method with the empty string disables all
+ * alternate and preferred style sheets (but does not change the state of
+ * persistent style sheets, that is those with no title attribute).
+ *
+ * Calling this method with a null value must have no effect.
+ *
+ * Style sheets that do not have a title are never affected by this
+ * method. This method does not change the values of the lastStyleSheetSet or
+ * preferredStyleSheetSet attributes.
+ *
+ * @see <http://dev.w3.org/csswg/cssom/#dom-document-enableStyleSheetsForSet>
+ */
+ [binaryname(MozEnableStyleSheetsForSet)]
+ void enableStyleSheetsForSet(in DOMString name);
+
+
+ // CSSOM-View
+ /**
+ * Returns the element from the caller's document at the given point,
+ * relative to the upper-left-most point in the (possibly scrolled)
+ * window or frame.
+ *
+ * If the element at the given point belongs to another document (such as
+ * an iframe's subdocument), the element in the calling document's DOM
+ * (e.g. the iframe) is returned. If the element at the given point is
+ * anonymous or XBL generated content, such as a textbox's scrollbars, then
+ * the first non-anonymous parent element (that is, the textbox) is returned.
+ *
+ * This method returns null if either coordinate is negative, or if the
+ * specified point lies outside the visible bounds of the document.
+ *
+ * Callers from XUL documents should wait until the onload event has fired
+ * before calling this method.
+ *
+ * @see <http://dev.w3.org/csswg/cssom-view/#dom-document-elementfrompoint>
+ */
+ nsIDOMElement elementFromPoint(in float x, in float y);
+
+
+ // Mozilla extensions
+ /**
+ * @see <https://developer.mozilla.org/en/DOM/document.contentType>
+ */
+ readonly attribute DOMString contentType;
+
+ /**
+ * True if this document is synthetic : stand alone image, video, audio file,
+ * etc.
+ */
+ readonly attribute boolean mozSyntheticDocument;
+
+ /**
+ * Returns the script element whose script is currently being processed.
+ *
+ * @see <https://developer.mozilla.org/en/DOM/document.currentScript>
+ */
+ readonly attribute nsIDOMElement currentScript;
+
+ /**
+ * Release the current mouse capture if it is on an element within this
+ * document.
+ *
+ * @see <https://developer.mozilla.org/en/DOM/document.releaseCapture>
+ */
+ void releaseCapture();
+
+ /**
+ * Use the given DOM element as the source image of target |-moz-element()|.
+ *
+ * This function introduces a new special ID (called "image element ID"),
+ * which is only used by |-moz-element()|, and associates it with the given
+ * DOM element. Image elements ID's have the higher precedence than general
+ * HTML id's, so if |document.mozSetImageElement(<id>, <element>)| is called,
+ * |-moz-element(#<id>)| uses |<element>| as the source image even if there
+ * is another element with id attribute = |<id>|. To unregister an image
+ * element ID |<id>|, call |document.mozSetImageElement(<id>, null)|.
+ *
+ * Example:
+ * <script>
+ * canvas = document.createElement("canvas");
+ * canvas.setAttribute("width", 100);
+ * canvas.setAttribute("height", 100);
+ * // draw to canvas
+ * document.mozSetImageElement("canvasbg", canvas);
+ * </script>
+ * <div style="background-image: -moz-element(#canvasbg);"></div>
+ *
+ * @param aImageElementId an image element ID to associate with
+ * |aImageElement|
+ * @param aImageElement a DOM element to be used as the source image of
+ * |-moz-element(#aImageElementId)|. If this is null, the function will
+ * unregister the image element ID |aImageElementId|.
+ *
+ * @see <https://developer.mozilla.org/en/DOM/document.mozSetImageElement>
+ */
+ void mozSetImageElement(in DOMString aImageElementId,
+ in nsIDOMElement aImageElement);
+
+ /**
+ * Element which is currently the full-screen element as per the DOM
+ * full-screen api.
+ *
+ * @see <https://wiki.mozilla.org/index.php?title=Gecko:FullScreenAPI>
+ */
+ readonly attribute nsIDOMElement mozFullScreenElement;
+
+ /**
+ * Causes the document to leave DOM full-screen mode, if it's in
+ * full-screen mode, as per the DOM full-screen api.
+ *
+ * @see <https://wiki.mozilla.org/index.php?title=Gecko:FullScreenAPI>
+ */
+ void mozCancelFullScreen();
+
+ /**
+ * Denotes whether this document is in DOM full-screen mode, as per the DOM
+ * full-screen api.
+ *
+ * @see <https://wiki.mozilla.org/index.php?title=Gecko:FullScreenAPI>
+ */
+ readonly attribute boolean mozFullScreen;
+
+ /**
+ * Denotes whether the full-screen-api.enabled is true, no windowed
+ * plugins are present, and all ancestor documents have the
+ * allowfullscreen attribute set.
+ *
+ * @see <https://wiki.mozilla.org/index.php?title=Gecko:FullScreenAPI>
+ */
+ readonly attribute boolean mozFullScreenEnabled;
+
+ /**
+ * The element to which the mouse pointer is locked, if any, as per the
+ * DOM pointer lock api.
+ *
+ * @see <http://dvcs.w3.org/hg/pointerlock/raw-file/default/index.html>
+ */
+ readonly attribute nsIDOMElement mozPointerLockElement;
+
+ /**
+ * Retrieve the location of the caret position (DOM node and character
+ * offset within that node), given a point.
+ *
+ * @param x Horizontal point at which to determine the caret position, in
+ * page coordinates.
+ * @param y Vertical point at which to determine the caret position, in
+ * page coordinates.
+ */
+ nsISupports /* CaretPosition */ caretPositionFromPoint(in float x, in float y);
+
+ /**
+ * Exit pointer is lock if locked, as per the DOM pointer lock api.
+ *
+ * @see <http://dvcs.w3.org/hg/pointerlock/raw-file/default/index.html>
+ */
+ void mozExitPointerLock();
+
+ /**
+ * Visibility API implementation.
+ */
+ readonly attribute boolean hidden;
+ readonly attribute DOMString visibilityState;
+
+ /**
+ * Returns "BackCompat" if we're in quirks mode or "CSS1Compat" if we're in
+ * strict mode. (XML documents are always in strict mode.)
+ */
+ readonly attribute DOMString compatMode;
+
+ /**
+ * Return nodes that match a given CSS selector.
+ *
+ * @see <http://dev.w3.org/2006/webapi/selectors-api/>
+ */
+ nsIDOMElement querySelector([Null(Stringify)] in DOMString selectors);
+ nsIDOMNodeList querySelectorAll([Null(Stringify)] in DOMString selectors);
+};
diff --git a/dom/interfaces/core/nsIDOMDocumentFragment.idl b/dom/interfaces/core/nsIDOMDocumentFragment.idl
new file mode 100644
index 000000000..b4f4823a0
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMDocumentFragment.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 "nsIDOMNode.idl"
+
+/**
+ * DocumentFragment is a "lightweight" or "minimal" Document object.
+ * nsIDOMDocumentFragment is used in situations where the Document
+ * interface can potentially be a heavyweight interface.
+ *
+ * For more information on this interface please see
+ * http://www.w3.org/TR/DOM-Level-2-Core/
+ */
+
+[builtinclass, uuid(48eb8d72-95bb-402e-a8fc-f2b187abcbdb)]
+interface nsIDOMDocumentFragment : nsIDOMNode
+{
+ /**
+ * Return nodes that match a given CSS selector.
+ *
+ * @see <http://dev.w3.org/2006/webapi/selectors-api/>
+ */
+ nsIDOMElement querySelector([Null(Stringify)] in DOMString selectors);
+ nsIDOMNodeList querySelectorAll([Null(Stringify)] in DOMString selectors);
+};
diff --git a/dom/interfaces/core/nsIDOMDocumentType.idl b/dom/interfaces/core/nsIDOMDocumentType.idl
new file mode 100644
index 000000000..0ce6fc4c8
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMDocumentType.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 "nsIDOMNode.idl"
+
+/**
+ * Each Document has a doctype attribute whose value is either null
+ * or a DocumentType object.
+ * The nsIDOMDocumentType interface in the DOM Core provides an
+ * interface to the list of entities that are defined for the document.
+ *
+ * For more information on this interface please see
+ * http://www.w3.org/TR/DOM-Level-2-Core/
+ */
+
+[uuid(cd7467b9-0f26-4787-a359-66e80ba8db92)]
+interface nsIDOMDocumentType : nsIDOMNode
+{
+ readonly attribute DOMString name;
+ readonly attribute DOMString publicId;
+ readonly attribute DOMString systemId;
+ readonly attribute DOMString internalSubset;
+
+ [binaryname(MozRemove)]
+ void remove();
+};
diff --git a/dom/interfaces/core/nsIDOMElement.idl b/dom/interfaces/core/nsIDOMElement.idl
new file mode 100644
index 000000000..403661394
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMElement.idl
@@ -0,0 +1,229 @@
+/* -*- 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 "nsIDOMNode.idl"
+
+interface nsIDOMMozNamedAttrMap;
+
+%{C++
+// Undo the windows.h damage
+#undef GetMessage
+#undef CreateEvent
+#undef GetClassName
+#undef GetBinaryType
+#undef RemoveDirectory
+%}
+
+/**
+ * The nsIDOMElement interface represents an element in an HTML or
+ * XML document.
+ *
+ * For more information on this interface please see
+ * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#interface-element
+ */
+
+[uuid(6289999b-1008-4269-b42a-413ec5a9d3f4)]
+interface nsIDOMElement : nsIDOMNode
+{
+ readonly attribute DOMString tagName;
+
+ attribute DOMString id;
+ attribute DOMString className;
+ /**
+ * Returns a DOMTokenList object reflecting the class attribute.
+ */
+ readonly attribute nsISupports classList;
+
+ readonly attribute nsIDOMMozNamedAttrMap attributes;
+ DOMString getAttribute(in DOMString name);
+ DOMString getAttributeNS(in DOMString namespaceURI,
+ in DOMString localName);
+ void setAttribute(in DOMString name,
+ in DOMString value);
+ void setAttributeNS(in DOMString namespaceURI,
+ in DOMString qualifiedName,
+ in DOMString value);
+ void removeAttribute(in DOMString name);
+ void removeAttributeNS(in DOMString namespaceURI,
+ in DOMString localName);
+ boolean hasAttribute(in DOMString name);
+ boolean hasAttributeNS(in DOMString namespaceURI,
+ in DOMString localName);
+ boolean hasAttributes();
+
+ // Obsolete methods.
+ nsIDOMAttr getAttributeNode(in DOMString name);
+ nsIDOMAttr setAttributeNode(in nsIDOMAttr newAttr);
+ nsIDOMAttr removeAttributeNode(in nsIDOMAttr oldAttr);
+ nsIDOMAttr getAttributeNodeNS(in DOMString namespaceURI,
+ in DOMString localName);
+ nsIDOMAttr setAttributeNodeNS(in nsIDOMAttr newAttr)
+ raises(DOMException);
+
+ nsIDOMHTMLCollection getElementsByTagName(in DOMString name);
+ nsIDOMHTMLCollection getElementsByTagNameNS(in DOMString namespaceURI,
+ in DOMString localName);
+ /**
+ * Retrieve elements matching all classes listed in a
+ * space-separated string.
+ */
+ nsIDOMHTMLCollection getElementsByClassName(in DOMString classes);
+
+ /**
+ * Returns a live nsIDOMNodeList of the current child elements.
+ */
+ [binaryname(ChildElements)]
+ readonly attribute nsIDOMNodeList children;
+ /**
+ * Similar as the attributes on nsIDOMNode, but navigates just elements
+ * rather than all nodes.
+ */
+ readonly attribute nsIDOMElement firstElementChild;
+ readonly attribute nsIDOMElement lastElementChild;
+ readonly attribute nsIDOMElement previousElementSibling;
+ readonly attribute nsIDOMElement nextElementSibling;
+ /**
+ * Returns the number of child nodes that are nsIDOMElements.
+ */
+ readonly attribute unsigned long childElementCount;
+
+ [binaryname(MozRemove)]
+ void remove();
+
+ // CSSOM View
+ /**
+ * Retrieve a list of rectangles, one for each CSS border-box associated with
+ * the element. The coordinates are in CSS pixels, and relative to
+ * the top-left of the document's viewport, unless the document
+ * has an SVG foreignobject ancestor, in which case the coordinates are
+ * relative to the top-left of the content box of the nearest SVG foreignobject
+ * ancestor. The coordinates are calculated as if every scrollable element
+ * is scrolled to its default position.
+ *
+ * Note: the boxes of overflowing children do not affect these rectangles.
+ * Note: some elements have empty CSS boxes. Those return empty rectangles,
+ * but the coordinates may still be meaningful.
+ * Note: some elements have no CSS boxes (including display:none elements,
+ * HTML AREA elements, and SVG elements that do not render). Those return
+ * an empty list.
+ */
+ nsIDOMClientRectList getClientRects();
+
+ /**
+ * Returns the union of all rectangles in the getClientRects() list. Empty
+ * rectangles are ignored, except that if all rectangles are empty,
+ * we return an empty rectangle positioned at the top-left of the first
+ * rectangle in getClientRects().
+ */
+ nsIDOMClientRect getBoundingClientRect();
+
+ /**
+ * The vertical scroll position of the element, or 0 if the element is not
+ * scrollable. This property may be assigned a value to change the
+ * vertical scroll position.
+ */
+ attribute long scrollTop;
+
+ /**
+ * The horizontal scroll position of the element, or 0 if the element is not
+ * scrollable. This property may be assigned a value to change the
+ * horizontal scroll position.
+ */
+ attribute long scrollLeft;
+
+ /**
+ * The width of the scrollable area of the element. If the element is not
+ * scrollable, scrollWidth is equivalent to the offsetWidth.
+ */
+ readonly attribute long scrollWidth;
+
+ /**
+ * The height of the scrollable area of the element. If the element is not
+ * scrollable, scrollHeight is equivalent to the offsetHeight.
+ */
+ readonly attribute long scrollHeight;
+
+ /**
+ * The height in CSS pixels of the element's top border.
+ */
+ readonly attribute long clientTop;
+
+ /**
+ * The width in CSS pixels of the element's left border and scrollbar
+ * if it is present on the left side.
+ */
+ readonly attribute long clientLeft;
+
+ /**
+ * The height in CSS pixels of the element's padding box. If the element is
+ * scrollable, the scroll bars are included inside this width.
+ */
+ readonly attribute long clientWidth;
+
+ /**
+ * The width in CSS pixels of the element's padding box. If the element is
+ * scrollable, the scroll bars are included inside this height.
+ */
+ readonly attribute long clientHeight;
+
+ /* The maximum offset that the element can be scrolled to
+ (i.e., the value that scrollLeft/scrollTop would be clamped to if they were
+ set to arbitrarily large values. */
+ readonly attribute long scrollLeftMax;
+ readonly attribute long scrollTopMax;
+
+
+ // Selectors API
+ /**
+ * Returns whether this element would be selected by the given selector
+ * string.
+ *
+ * See <http://dev.w3.org/2006/webapi/selectors-api2/#matchesselector>
+ */
+ boolean mozMatchesSelector([Null(Stringify)] in DOMString selector);
+
+
+ // Proprietary extensions
+ /**
+ * Set this during a mousedown event to grab and retarget all mouse events
+ * to this element until the mouse button is released or releaseCapture is
+ * called. If retargetToElement is true, then all events are targetted at
+ * this element. If false, events can also fire at descendants of this
+ * element.
+ *
+ */
+ void setCapture([optional] in boolean retargetToElement);
+
+ /**
+ * If this element has captured the mouse, release the capture. If another
+ * element has captured the mouse, this method has no effect.
+ */
+ void releaseCapture();
+
+ // Mozilla extensions
+ /**
+ * Requests that this element be made the full-screen element, as per the DOM
+ * full-screen api.
+ *
+ * @see <https://wiki.mozilla.org/index.php?title=Gecko:FullScreenAPI>
+ */
+ void mozRequestFullScreen();
+
+ /**
+ * Requests that this element be made the pointer-locked element, as per the DOM
+ * pointer lock api.
+ *
+ * @see <http://dvcs.w3.org/hg/pointerlock/raw-file/default/index.html>
+ */
+ void mozRequestPointerLock();
+
+ /**
+ * Return nodes that match a given CSS selector.
+ *
+ * @see <http://dev.w3.org/2006/webapi/selectors-api/>
+ */
+ nsIDOMElement querySelector([Null(Stringify)] in DOMString selectors);
+ nsIDOMNodeList querySelectorAll([Null(Stringify)] in DOMString selectors);
+};
diff --git a/dom/interfaces/core/nsIDOMMozNamedAttrMap.idl b/dom/interfaces/core/nsIDOMMozNamedAttrMap.idl
new file mode 100644
index 000000000..b93786474
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMMozNamedAttrMap.idl
@@ -0,0 +1,33 @@
+/* -*- 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"
+
+/**
+ * This is a temporary, non-standard interface, to ease the transition to a
+ * world where Attr no longer inherits from Node.
+ */
+
+[uuid(cb5564cd-26ec-418f-a6d6-1d57cd2c971c)]
+interface nsIDOMMozNamedAttrMap : nsISupports
+{
+ nsIDOMAttr getNamedItem(in DOMString name);
+ nsIDOMAttr setNamedItem(in nsIDOMAttr arg)
+ raises(DOMException);
+ nsIDOMAttr removeNamedItem(in DOMString name)
+ raises(DOMException);
+ nsIDOMAttr item(in unsigned long index);
+ readonly attribute unsigned long length;
+ // Introduced in DOM Level 2:
+ nsIDOMAttr getNamedItemNS(in DOMString namespaceURI,
+ in DOMString localName);
+ // Introduced in DOM Level 2:
+ nsIDOMAttr setNamedItemNS(in nsIDOMAttr arg)
+ raises(DOMException);
+ // Introduced in DOM Level 2:
+ nsIDOMAttr removeNamedItemNS(in DOMString namespaceURI,
+ in DOMString localName)
+ raises(DOMException);
+};
diff --git a/dom/interfaces/core/nsIDOMNSEditableElement.idl b/dom/interfaces/core/nsIDOMNSEditableElement.idl
new file mode 100644
index 000000000..67cb10488
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMNSEditableElement.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 "nsISupports.idl"
+
+interface nsIEditor;
+
+/**
+ * This interface is implemented by elements which have inner editable content,
+ * such as HTML input and textarea.
+ *
+ * Please make sure to update the HTMLTextAreaElement and HTMLInputElement
+ * Web IDL interfaces to mirror this interface when changing it.
+ *
+ */
+
+[scriptable, uuid(3503de34-6631-4594-b7be-c36ff6a520c4)]
+interface nsIDOMNSEditableElement : nsISupports
+{
+ [noscript] readonly attribute nsIEditor editor;
+ // This is similar to set .value on nsIDOMInput/TextAreaElements, but
+ // handling of the value change is closer to the normal user input, so
+ // 'change' event for example will be dispatched when focusing out the
+ // element.
+ [noscript] void setUserInput(in DOMString input);
+};
diff --git a/dom/interfaces/core/nsIDOMNode.idl b/dom/interfaces/core/nsIDOMNode.idl
new file mode 100644
index 000000000..fc390dd7b
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMNode.idl
@@ -0,0 +1,111 @@
+/* -*- 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"
+
+interface nsIVariant;
+
+/**
+ * The nsIDOMNode interface is the primary datatype for the entire
+ * Document Object Model.
+ * It represents a single node in the document tree.
+ *
+ * For more information on this interface please see
+ * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html
+ */
+
+[uuid(cc35b412-009b-46a3-9be0-76448f12548d)]
+interface nsIDOMNode : nsISupports
+{
+ const unsigned short ELEMENT_NODE = 1;
+ const unsigned short ATTRIBUTE_NODE = 2;
+ const unsigned short TEXT_NODE = 3;
+ const unsigned short CDATA_SECTION_NODE = 4;
+ const unsigned short ENTITY_REFERENCE_NODE = 5;
+ const unsigned short ENTITY_NODE = 6;
+ const unsigned short PROCESSING_INSTRUCTION_NODE = 7;
+ const unsigned short COMMENT_NODE = 8;
+ const unsigned short DOCUMENT_NODE = 9;
+ const unsigned short DOCUMENT_TYPE_NODE = 10;
+ const unsigned short DOCUMENT_FRAGMENT_NODE = 11;
+ const unsigned short NOTATION_NODE = 12;
+
+ readonly attribute DOMString nodeName;
+ attribute DOMString nodeValue;
+ // raises(DOMException) on setting
+ // raises(DOMException) on retrieval
+ readonly attribute unsigned short nodeType;
+ readonly attribute nsIDOMNode parentNode;
+ readonly attribute nsIDOMElement parentElement;
+ readonly attribute nsIDOMNodeList childNodes;
+ readonly attribute nsIDOMNode firstChild;
+ readonly attribute nsIDOMNode lastChild;
+ readonly attribute nsIDOMNode previousSibling;
+ readonly attribute nsIDOMNode nextSibling;
+ // Modified in DOM Level 2:
+ readonly attribute nsIDOMDocument ownerDocument;
+ nsIDOMNode insertBefore(in nsIDOMNode newChild,
+ in nsIDOMNode refChild)
+ raises(DOMException);
+ nsIDOMNode replaceChild(in nsIDOMNode newChild,
+ in nsIDOMNode oldChild)
+ raises(DOMException);
+ nsIDOMNode removeChild(in nsIDOMNode oldChild)
+ raises(DOMException);
+ nsIDOMNode appendChild(in nsIDOMNode newChild)
+ raises(DOMException);
+ boolean hasChildNodes();
+ // Modified in DOM Level 4:
+ [optional_argc] nsIDOMNode cloneNode([optional] in boolean deep);
+ // Modified in DOM Level 2:
+ void normalize();
+ // Introduced in DOM Level 2:
+ readonly attribute DOMString namespaceURI;
+ // Modified in DOM Core
+ readonly attribute DOMString prefix;
+
+ // Introduced in DOM Level 2:
+ readonly attribute DOMString localName;
+
+ // For vtable compatibility (see bug 1078674)
+ [noscript] bool unusedPlaceholder();
+
+ // Introduced in DOM Level 3:
+ // This uses a binaryname to avoid warnings due to name collision with
+ // nsINode::GetBaseURI
+ [binaryname(DOMBaseURI)] readonly attribute DOMString baseURI;
+
+ // DocumentPosition
+ const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01;
+ const unsigned short DOCUMENT_POSITION_PRECEDING = 0x02;
+ const unsigned short DOCUMENT_POSITION_FOLLOWING = 0x04;
+ const unsigned short DOCUMENT_POSITION_CONTAINS = 0x08;
+ const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 0x10;
+ const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;
+
+ // Introduced in DOM Level 3:
+ unsigned short compareDocumentPosition(in nsIDOMNode other)
+ raises(DOMException);
+ // Introduced in DOM Level 3:
+ attribute DOMString textContent;
+ // raises(DOMException) on setting
+ // raises(DOMException) on retrieval
+
+ // Introduced in DOM Level 3:
+ DOMString lookupPrefix(in DOMString namespaceURI);
+ // Introduced in DOM Level 3:
+ boolean isDefaultNamespace(in DOMString namespaceURI);
+ // Introduced in DOM Level 3:
+ DOMString lookupNamespaceURI(in DOMString prefix);
+ // Introduced in DOM Level 3:
+ boolean isEqualNode(in nsIDOMNode arg);
+ // Introduced in DOM Level 3:
+ nsIVariant setUserData(in DOMString key,
+ in nsIVariant data);
+ // Introduced in DOM Level 3:
+ nsIVariant getUserData(in DOMString key);
+
+ boolean contains(in nsIDOMNode aOther);
+};
diff --git a/dom/interfaces/core/nsIDOMNodeList.idl b/dom/interfaces/core/nsIDOMNodeList.idl
new file mode 100644
index 000000000..bb2f76f1a
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMNodeList.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 "domstubs.idl"
+
+/**
+ * The nsIDOMNodeList interface provides the abstraction of an ordered
+ * collection of nodes, without defining or constraining how this collection
+ * is implemented.
+ * The items in the list are accessible via an integral index, starting from 0.
+ *
+ * For more information on this interface please see
+ * http://www.w3.org/TR/DOM-Level-2-Core/
+ */
+
+// NOTE: Please do not attempt to make this not scriptable,
+// see https://bugzilla.mozilla.org/show_bug.cgi?id=994964#c73.
+[scriptable, uuid(450cf0ba-de90-4f86-85bf-e10cc8b8713f)]
+interface nsIDOMNodeList : nsISupports
+{
+ nsIDOMNode item(in unsigned long index);
+ readonly attribute unsigned long length;
+};
diff --git a/dom/interfaces/core/nsIDOMProcessingInstruction.idl b/dom/interfaces/core/nsIDOMProcessingInstruction.idl
new file mode 100644
index 000000000..bcf8724fc
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMProcessingInstruction.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 "nsIDOMCharacterData.idl"
+
+/**
+ * The nsIDOMProcessingInstruction interface represents a
+ * "processing instruction", used in XML as a way to keep processor-specific
+ * information in the text of the document.
+ *
+ * For more information on this interface please see
+ * http://www.w3.org/TR/DOM-Level-2-Core/ and
+ * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html
+ */
+
+[uuid(5a139df7-04d0-438d-bd18-d8122564258f)]
+interface nsIDOMProcessingInstruction : nsIDOMCharacterData
+{
+ readonly attribute DOMString target;
+};
diff --git a/dom/interfaces/core/nsIDOMText.idl b/dom/interfaces/core/nsIDOMText.idl
new file mode 100644
index 000000000..72fcf859b
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMText.idl
@@ -0,0 +1,29 @@
+/* -*- 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 "nsIDOMCharacterData.idl"
+
+/**
+ * The nsIDOMText interface inherits from nsIDOMCharacterData and represents
+ * the textual content (termed character data in XML) of an Element or Attr.
+ *
+ * For more information on this interface please see
+ * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html
+ */
+
+[uuid(67273994-6aff-4091-9de9-b788a249f783)]
+interface nsIDOMText : nsIDOMCharacterData
+{
+ nsIDOMText splitText(in unsigned long offset)
+ raises(DOMException);
+
+ /**
+ * The concatenation of all logically adjacent text nodes with this text
+ * node, where "logically adjacent" consists of all text nodes which can be
+ * reached by traversing the document tree in either direction without
+ * passing an element, comment, or processing-instruction boundary.
+ */
+ readonly attribute DOMString wholeText;
+};
diff --git a/dom/interfaces/core/nsIDOMXMLDocument.idl b/dom/interfaces/core/nsIDOMXMLDocument.idl
new file mode 100644
index 000000000..218a03290
--- /dev/null
+++ b/dom/interfaces/core/nsIDOMXMLDocument.idl
@@ -0,0 +1,15 @@
+/* -*- 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 "nsISupports.idl"
+
+// The only reason this interface still exists is that we have addon and Firefox
+// code QIing to it and using it for instanceof via Components.interfaces, and
+// the interface needs to exist in order for the shim stuff in
+// xpcom/reflect/xptinfo/ShimInterfaceInfo.cpp to work.
+[uuid(89ab39cb-c568-4d85-bd34-306d5cd5164d)]
+interface nsIDOMXMLDocument : nsISupports
+{
+};