dom/interfaces/core/nsIDOMDocument.idl

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 #include "nsIDOMNode.idl"
     8 %{ C++
     9 #include "jspubtd.h"
    11 // windows.h #defines CreateEvent
    12 #ifdef CreateEvent
    13 #undef CreateEvent
    14 #endif
    15 %}
    17 interface nsIDOMNodeIterator;
    18 interface nsIDOMNodeFilter;
    19 interface nsIDOMTreeWalker;
    20 interface nsIDOMLocation;
    22 /**
    23  * The nsIDOMDocument interface represents the entire HTML or XML document.
    24  * Conceptually, it is the root of the document tree, and provides the 
    25  * primary access to the document's data.
    26  * Since elements, text nodes, comments, processing instructions, etc. 
    27  * cannot exist outside the context of a Document, the nsIDOMDocument 
    28  * interface also contains the factory methods needed to create these 
    29  * objects.
    30  *
    31  * For more information on this interface please see 
    32  * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html
    33  */
    35 [scriptable, uuid(d24d1118-a527-4d5a-9c4e-fb07dfc2fc27)]
    36 interface nsIDOMDocument : nsIDOMNode
    37 {
    38   readonly attribute nsIDOMDocumentType         doctype;
    39   readonly attribute nsIDOMDOMImplementation    implementation;
    40   readonly attribute nsIDOMElement              documentElement;
    41   nsIDOMElement                 createElement([Null(Stringify)] in DOMString tagName)
    42                                   raises(DOMException);
    43   nsIDOMDocumentFragment        createDocumentFragment();
    44   nsIDOMText                    createTextNode(in DOMString data);
    45   nsIDOMComment                 createComment(in DOMString data);
    46   nsIDOMCDATASection            createCDATASection(in DOMString data)
    47                                   raises(DOMException);
    48   nsIDOMProcessingInstruction   createProcessingInstruction(in DOMString target, 
    49                                                             in DOMString data)
    50                                   raises(DOMException);
    51   nsIDOMAttr                    createAttribute(in DOMString name)
    52                                   raises(DOMException);
    53   nsIDOMNodeList                getElementsByTagName(in DOMString tagname);
    55   // Introduced in DOM Level 2:
    56   [optional_argc] nsIDOMNode    importNode(in nsIDOMNode importedNode,
    57                                            [optional] in boolean deep)
    58                                   raises(DOMException);
    59   // Introduced in DOM Level 2:
    60   nsIDOMElement                 createElementNS(in DOMString namespaceURI,
    61                                                 [Null(Stringify)] in DOMString qualifiedName)
    62                                   raises(DOMException);
    63   // Introduced in DOM Level 2:
    64   nsIDOMAttr                    createAttributeNS(in DOMString namespaceURI,
    65                                                   in DOMString qualifiedName)
    66                                   raises(DOMException);
    67   // Introduced in DOM Level 2:
    68   nsIDOMNodeList                getElementsByTagNameNS(in DOMString namespaceURI,
    69                                                        in DOMString localName);
    70   // Introduced in DOM Level 2:
    71   nsIDOMElement                 getElementById(in DOMString elementId);
    72   // Introduced in DOM Level 3:
    73   readonly attribute DOMString       inputEncoding;
    74   // Introduced in DOM Level 3:
    75   readonly attribute DOMString       documentURI;
    76   // Alias introduced for all documents in recent DOM standards
    77   readonly attribute DOMString       URL;
    78   // Introduced in DOM Level 3:
    79   nsIDOMNode         adoptNode(in nsIDOMNode source)
    80                                         raises(DOMException);
    82   /**
    83    * Create a range
    84    *
    85    * @see http://html5.org/specs/dom-range.html#dom-document-createrange
    86    */
    87   nsIDOMRange              createRange();
    89   [optional_argc] nsIDOMNodeIterator createNodeIterator(in nsIDOMNode root,
    90                                                         [optional] in unsigned long whatToShow,
    91                                                         [optional] in nsIDOMNodeFilter filter)
    92                                                           raises(DOMException);
    93   [optional_argc] nsIDOMTreeWalker   createTreeWalker(in nsIDOMNode root,
    94                                                       [optional] in unsigned long whatToShow,
    95                                                       [optional] in nsIDOMNodeFilter filter)
    96                                                         raises(DOMException);
    98   nsIDOMEvent               createEvent(in DOMString eventType)
    99                                                raises(DOMException);
   102   // HTML
   103   /**
   104    * The window associated with this document.
   105    *
   106    * @see <http://www.whatwg.org/html/#dom-document-defaultview>
   107    */
   108   readonly attribute nsIDOMWindow   defaultView;
   110   /**
   111    * @see <http://www.whatwg.org/html/#dom-document-characterset>
   112    */
   113   readonly attribute DOMString      characterSet;
   114   /**
   115    * @see <http://www.whatwg.org/html/#dom-document-dir>
   116    */
   117            attribute DOMString      dir;
   119   /**
   120    * @see <http://www.whatwg.org/html/#dom-document-location>
   121    */
   122   readonly attribute nsIDOMLocation location;
   124   /**
   125    * @see <http://www.whatwg.org/html/#document.title>
   126    */
   127            attribute DOMString      title;
   129   /**
   130    * @see <http://www.whatwg.org/html/#dom-document-readystate>
   131    */
   132   readonly attribute DOMString      readyState;
   133   /**
   134    * @see <http://www.whatwg.org/html/#dom-document-lastmodified>
   135    */
   136   readonly attribute DOMString      lastModified;
   137   /**
   138    * @see <http://www.whatwg.org/html/#dom-document-referrer>
   139    */
   140   readonly attribute DOMString      referrer;
   142   /**
   143    * @see <http://www.whatwg.org/html/#dom-document-hasfocus>
   144    */
   145   boolean      hasFocus();
   147   /**
   148    * @see <http://www.whatwg.org/html/#dom-document-activeelement>
   149    */
   150   readonly attribute nsIDOMElement  activeElement;
   152   /**
   153    * Retrieve elements matching all classes listed in a
   154    * space-separated string.
   155    *
   156    * @see <http://www.whatwg.org/html/#dom-document-getelementsbyclassname>
   157    */
   158   nsIDOMNodeList getElementsByClassName(in DOMString classes);
   161   // CSSOM
   162   /**
   163    * @see <http://dev.w3.org/csswg/cssom/#dom-document-stylesheets>
   164    */
   165   readonly attribute nsIDOMStyleSheetList   styleSheets;
   167   /**
   168    * This attribute must return the preferred style sheet set as set by the
   169    * author. It is determined from the order of style sheet declarations and
   170    * the Default-Style HTTP headers, as eventually defined elsewhere in the Web
   171    * Apps 1.0 specification. If there is no preferred style sheet set, this
   172    * attribute must return the empty string. The case of this attribute must
   173    * exactly match the case given by the author where the preferred style sheet
   174    * is specified or implied. This attribute must never return null.
   175    *
   176    * @see <http://dev.w3.org/csswg/cssom/#dom-document-preferredStyleSheetSet>
   177    */
   178   readonly attribute DOMString preferredStyleSheetSet;
   180   /**
   181    * This attribute indicates which style sheet set is in use. This attribute
   182    * is live; changing the disabled attribute on style sheets directly will
   183    * change the value of this attribute.
   184    *
   185    * If all the sheets that are enabled and have a title have the same title
   186    * (by case-sensitive comparisons) then the value of this attribute must be
   187    * exactly equal to the title of the first enabled style sheet with a title
   188    * in the styleSheets list. Otherwise, if style sheets from different sets
   189    * are enabled, then the return value must be null (there is no way to
   190    * determine what the currently selected style sheet set is in those
   191    * conditions). Otherwise, either all style sheets that have a title are
   192    * disabled, or there are no alternate style sheets, and
   193    * selectedStyleSheetSet must return the empty string.
   194    *
   195    * Setting this attribute to the null value must have no effect.
   196    *
   197    * Setting this attribute to a non-null value must call
   198    * enableStyleSheetsForSet() with that value as the function's argument, and
   199    * set lastStyleSheetSet to that value.
   200    *
   201    * From the DOM's perspective, all views have the same
   202    * selectedStyleSheetSet. If a UA supports multiple views with different
   203    * selected alternate style sheets, then this attribute (and the StyleSheet
   204    * interface's disabled attribute) must return and set the value for the
   205    * default view.
   206    *
   207    * @see <http://dev.w3.org/csswg/cssom/#dom-document-selectedStyleSheetSet>
   208    */
   209   [binaryname(MozSelectedStyleSheetSet)]
   210   attribute DOMString selectedStyleSheetSet;
   212   /*
   213    * This property must initially have the value null. Its value changes when
   214    * the selectedStyleSheetSet attribute is set.
   215    *
   216    * @see <http://dev.w3.org/csswg/cssom/#dom-document-lastStyleSheetSet>
   217    */
   218   readonly attribute DOMString lastStyleSheetSet;
   220   /**
   221    * This must return the live list of the currently available style sheet
   222    * sets. This list is constructed by enumerating all the style sheets for
   223    * this document available to the implementation, in the order they are
   224    * listed in the styleSheets attribute, adding the title of each style sheet
   225    * with a title to the list, avoiding duplicates by dropping titles that
   226    * match (case-sensitively) titles that have already been added to the
   227    * list.
   228    *
   229    * @see <http://dev.w3.org/csswg/cssom/#dom-document-styleSheetSets>
   230    */
   231   readonly attribute nsISupports styleSheetSets;
   233   /**
   234    * Calling this method must change the disabled attribute on each StyleSheet
   235    * object with a title attribute with a length greater than 0 in the
   236    * styleSheets attribute, so that all those whose title matches the name
   237    * argument are enabled, and all others are disabled. Title matches must be
   238    * case-sensitive. Calling this method with the empty string disables all
   239    * alternate and preferred style sheets (but does not change the state of
   240    * persistent style sheets, that is those with no title attribute).
   241    *
   242    * Calling this method with a null value must have no effect.
   243    *
   244    * Style sheets that do not have a title are never affected by this
   245    * method. This method does not change the values of the lastStyleSheetSet or
   246    * preferredStyleSheetSet attributes.
   247    *
   248    * @see <http://dev.w3.org/csswg/cssom/#dom-document-enableStyleSheetsForSet>
   249    */
   250   [binaryname(MozEnableStyleSheetsForSet)]
   251   void enableStyleSheetsForSet(in DOMString name);
   254   // CSSOM-View
   255   /**
   256    * Returns the element from the caller's document at the given point,
   257    * relative to the upper-left-most point in the (possibly scrolled)
   258    * window or frame.
   259    *
   260    * If the element at the given point belongs to another document (such as
   261    * an iframe's subdocument), the element in the calling document's DOM
   262    * (e.g. the iframe) is returned. If the element at the given point is
   263    * anonymous or XBL generated content, such as a textbox's scrollbars, then
   264    * the first non-anonymous parent element (that is, the textbox) is returned.
   265    *
   266    * This method returns null if either coordinate is negative, or if the
   267    * specified point lies outside the visible bounds of the document.
   268    *
   269    * Callers from XUL documents should wait until the onload event has fired
   270    * before calling this method.
   271    *
   272    * @see <http://dev.w3.org/csswg/cssom-view/#dom-document-elementfrompoint>
   273    */
   274   nsIDOMElement             elementFromPoint(in float x, in float y);
   277   // Mozilla extensions
   278   /**
   279    * @see <https://developer.mozilla.org/en/DOM/document.contentType>
   280    */
   281   readonly attribute DOMString      contentType;
   283   /**
   284    * True if this document is synthetic : stand alone image, video, audio file,
   285    * etc.
   286    */
   287   readonly attribute boolean        mozSyntheticDocument;
   289   /**
   290    * Returns the script element whose script is currently being processed.
   291    *
   292    * @see <https://developer.mozilla.org/en/DOM/document.currentScript>
   293    */
   294   readonly attribute nsIDOMElement  currentScript;
   296   /**
   297    * Release the current mouse capture if it is on an element within this
   298    * document.
   299    *
   300    * @see <https://developer.mozilla.org/en/DOM/document.releaseCapture>
   301    */
   302   void releaseCapture();
   304   /**
   305    * Use the given DOM element as the source image of target |-moz-element()|.
   306    *
   307    * This function introduces a new special ID (called "image element ID"),
   308    * which is only used by |-moz-element()|, and associates it with the given
   309    * DOM element.  Image elements ID's have the higher precedence than general
   310    * HTML id's, so if |document.mozSetImageElement(<id>, <element>)| is called,
   311    * |-moz-element(#<id>)| uses |<element>| as the source image even if there
   312    * is another element with id attribute = |<id>|.  To unregister an image
   313    * element ID |<id>|, call |document.mozSetImageElement(<id>, null)|.
   314    *
   315    * Example:
   316    * <script>
   317    *   canvas = document.createElement("canvas");
   318    *   canvas.setAttribute("width", 100);
   319    *   canvas.setAttribute("height", 100);
   320    *   // draw to canvas
   321    *   document.mozSetImageElement("canvasbg", canvas);
   322    * </script>
   323    * <div style="background-image: -moz-element(#canvasbg);"></div>
   324    *
   325    * @param aImageElementId an image element ID to associate with
   326    * |aImageElement|
   327    * @param aImageElement a DOM element to be used as the source image of
   328    * |-moz-element(#aImageElementId)|. If this is null, the function will
   329    * unregister the image element ID |aImageElementId|.
   330    *
   331    * @see <https://developer.mozilla.org/en/DOM/document.mozSetImageElement>
   332    */
   333   void mozSetImageElement(in DOMString aImageElementId,
   334                           in nsIDOMElement aImageElement);
   336   /**
   337    * Element which is currently the full-screen element as per the DOM
   338    * full-screen api.
   339    *
   340    * @see <https://wiki.mozilla.org/index.php?title=Gecko:FullScreenAPI>
   341    */
   342   readonly attribute nsIDOMElement mozFullScreenElement;
   344   /**
   345    * Causes the document to leave DOM full-screen mode, if it's in
   346    * full-screen mode, as per the DOM full-screen api.
   347    *
   348    * @see <https://wiki.mozilla.org/index.php?title=Gecko:FullScreenAPI>
   349    */
   350   void mozCancelFullScreen();   
   352   /**
   353    * Denotes whether this document is in DOM full-screen mode, as per the DOM
   354    * full-screen api.
   355    *
   356    * @see <https://wiki.mozilla.org/index.php?title=Gecko:FullScreenAPI>
   357    */
   358   readonly attribute boolean mozFullScreen;  
   360   /**
   361    * Denotes whether the full-screen-api.enabled is true, no windowed
   362    * plugins are present, and all ancestor documents have the
   363    * allowfullscreen attribute set.
   364    *
   365    * @see <https://wiki.mozilla.org/index.php?title=Gecko:FullScreenAPI>
   366    */
   367   readonly attribute boolean mozFullScreenEnabled;
   369   /**
   370    * The element to which the mouse pointer is locked, if any, as per the
   371    * DOM pointer lock api.
   372    *
   373    * @see <http://dvcs.w3.org/hg/pointerlock/raw-file/default/index.html>
   374    */
   375   readonly attribute nsIDOMElement mozPointerLockElement;
   377   /**
   378    * Retrieve the location of the caret position (DOM node and character
   379    * offset within that node), given a point.
   380    *
   381    * @param x Horizontal point at which to determine the caret position, in
   382    *          page coordinates.
   383    * @param y Vertical point at which to determine the caret position, in
   384    *          page coordinates.
   385    */
   386   nsISupports /* CaretPosition */ caretPositionFromPoint(in float x, in float y);
   388   /**
   389    * Exit pointer is lock if locked, as per the DOM pointer lock api.
   390    *
   391    * @see <http://dvcs.w3.org/hg/pointerlock/raw-file/default/index.html>
   392    */
   393   void mozExitPointerLock();
   395   /**
   396    * Visibility API implementation.
   397    */
   398   readonly attribute boolean hidden;
   399   readonly attribute boolean mozHidden;
   400   readonly attribute DOMString visibilityState;
   401   readonly attribute DOMString mozVisibilityState;
   403   /**
   404    * Returns "BackCompat" if we're in quirks mode or "CSS1Compat" if we're in
   405    * strict mode.  (XML documents are always in strict mode.)
   406    */
   407   readonly attribute DOMString compatMode;
   409   /**
   410    * Return nodes that match a given CSS selector.
   411    *
   412    * @see <http://dev.w3.org/2006/webapi/selectors-api/>
   413    */
   414   nsIDOMElement querySelector([Null(Stringify)] in DOMString selectors);
   415   nsIDOMNodeList querySelectorAll([Null(Stringify)] in DOMString selectors);
   416 };

mercurial