From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- dom/interfaces/core/moz.build | 28 ++ dom/interfaces/core/nsIDOMAttr.idl | 29 ++ dom/interfaces/core/nsIDOMCDATASection.idl | 21 ++ dom/interfaces/core/nsIDOMCharacterData.idl | 42 +++ dom/interfaces/core/nsIDOMComment.idl | 20 + dom/interfaces/core/nsIDOMDOMException.idl | 52 +++ dom/interfaces/core/nsIDOMDOMImplementation.idl | 42 +++ dom/interfaces/core/nsIDOMDocument.idl | 415 +++++++++++++++++++++ dom/interfaces/core/nsIDOMDocumentFragment.idl | 27 ++ dom/interfaces/core/nsIDOMDocumentType.idl | 28 ++ dom/interfaces/core/nsIDOMElement.idl | 229 ++++++++++++ dom/interfaces/core/nsIDOMMozNamedAttrMap.idl | 33 ++ dom/interfaces/core/nsIDOMNSEditableElement.idl | 28 ++ dom/interfaces/core/nsIDOMNode.idl | 111 ++++++ dom/interfaces/core/nsIDOMNodeList.idl | 25 ++ .../core/nsIDOMProcessingInstruction.idl | 22 ++ dom/interfaces/core/nsIDOMText.idl | 29 ++ dom/interfaces/core/nsIDOMXMLDocument.idl | 15 + 18 files changed, 1196 insertions(+) create mode 100644 dom/interfaces/core/moz.build create mode 100644 dom/interfaces/core/nsIDOMAttr.idl create mode 100644 dom/interfaces/core/nsIDOMCDATASection.idl create mode 100644 dom/interfaces/core/nsIDOMCharacterData.idl create mode 100644 dom/interfaces/core/nsIDOMComment.idl create mode 100644 dom/interfaces/core/nsIDOMDOMException.idl create mode 100644 dom/interfaces/core/nsIDOMDOMImplementation.idl create mode 100644 dom/interfaces/core/nsIDOMDocument.idl create mode 100644 dom/interfaces/core/nsIDOMDocumentFragment.idl create mode 100644 dom/interfaces/core/nsIDOMDocumentType.idl create mode 100644 dom/interfaces/core/nsIDOMElement.idl create mode 100644 dom/interfaces/core/nsIDOMMozNamedAttrMap.idl create mode 100644 dom/interfaces/core/nsIDOMNSEditableElement.idl create mode 100644 dom/interfaces/core/nsIDOMNode.idl create mode 100644 dom/interfaces/core/nsIDOMNodeList.idl create mode 100644 dom/interfaces/core/nsIDOMProcessingInstruction.idl create mode 100644 dom/interfaces/core/nsIDOMText.idl create mode 100644 dom/interfaces/core/nsIDOMXMLDocument.idl (limited to 'dom/interfaces/core') 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 + * ''. + * + * 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 + */ + 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 + */ + readonly attribute mozIDOMWindowProxy defaultView; + + /** + * @see + */ + readonly attribute DOMString characterSet; + /** + * @see + */ + attribute DOMString dir; + + /** + * @see + */ + readonly attribute nsIDOMLocation location; + + /** + * @see + */ + attribute DOMString title; + + /** + * @see + */ + readonly attribute DOMString readyState; + /** + * @see + */ + readonly attribute DOMString lastModified; + /** + * @see + */ + readonly attribute DOMString referrer; + + /** + * @see + */ + boolean hasFocus(); + + /** + * @see + */ + readonly attribute nsIDOMElement activeElement; + + /** + * Retrieve elements matching all classes listed in a + * space-separated string. + * + * @see + */ + nsIDOMNodeList getElementsByClassName(in DOMString classes); + + + // CSSOM + /** + * @see + */ + 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 + */ + 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 + */ + [binaryname(MozSelectedStyleSheetSet)] + attribute DOMString selectedStyleSheetSet; + + /* + * This property must initially have the value null. Its value changes when + * the selectedStyleSheetSet attribute is set. + * + * @see + */ + 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 + */ + 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 + */ + [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 + */ + nsIDOMElement elementFromPoint(in float x, in float y); + + + // Mozilla extensions + /** + * @see + */ + 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 + */ + readonly attribute nsIDOMElement currentScript; + + /** + * Release the current mouse capture if it is on an element within this + * document. + * + * @see + */ + 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(, )| is called, + * |-moz-element(#)| uses || as the source image even if there + * is another element with id attribute = ||. To unregister an image + * element ID ||, call |document.mozSetImageElement(, null)|. + * + * Example: + * + *
+ * + * @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 + */ + void mozSetImageElement(in DOMString aImageElementId, + in nsIDOMElement aImageElement); + + /** + * Element which is currently the full-screen element as per the DOM + * full-screen api. + * + * @see + */ + 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 + */ + void mozCancelFullScreen(); + + /** + * Denotes whether this document is in DOM full-screen mode, as per the DOM + * full-screen api. + * + * @see + */ + 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 + */ + readonly attribute boolean mozFullScreenEnabled; + + /** + * The element to which the mouse pointer is locked, if any, as per the + * DOM pointer lock api. + * + * @see + */ + 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 + */ + 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 + */ + 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 + */ + 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 + */ + 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 + */ + void mozRequestFullScreen(); + + /** + * Requests that this element be made the pointer-locked element, as per the DOM + * pointer lock api. + * + * @see + */ + void mozRequestPointerLock(); + + /** + * Return nodes that match a given CSS selector. + * + * @see + */ + 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 +{ +}; -- cgit v1.2.3