.: Remove support for HTML5 MicroData
[WebKit-https.git] / Source / WebCore / dom / Document.idl
1 /*
2  * Copyright (C) 2006, 2007, 2011 Apple Inc. All rights reserved.
3  * Copyright (C) 2006, 2007 Samuel Weinig <sam@webkit.org>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public License
16  * along with this library; see the file COPYING.LIB.  If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  */
20
21 [
22     CustomToJSObject,
23     JSGenerateToNativeObject,
24     JSInlineGetOwnPropertySlot
25 ] interface Document : Node {
26
27     // DOM Level 1 Core
28     readonly attribute DocumentType doctype;
29     readonly attribute DOMImplementation implementation;
30     readonly attribute Element documentElement;
31
32     [ReturnNewObject, RaisesException] Element createElement([TreatNullAs=NullString,Default=Undefined] optional DOMString tagName);
33     DocumentFragment   createDocumentFragment();
34     [ReturnNewObject] Text createTextNode([Default=Undefined] optional DOMString data);
35     [ReturnNewObject] Comment createComment([Default=Undefined] optional DOMString data);
36     [ReturnNewObject, RaisesException] CDATASection createCDATASection([Default=Undefined] optional DOMString data);
37     [ObjCLegacyUnnamedParameters, ReturnNewObject, RaisesException] ProcessingInstruction createProcessingInstruction([Default=Undefined] optional DOMString target,
38                                                                                  [Default=Undefined] optional DOMString data);
39     [ReturnNewObject, RaisesException] Attr createAttribute([Default=Undefined] optional DOMString name);
40     [ReturnNewObject, RaisesException] EntityReference createEntityReference([Default=Undefined] optional DOMString name);
41     NodeList getElementsByTagName([Default=Undefined] optional DOMString tagname);
42
43     // Introduced in DOM Level 2:
44
45     [ObjCLegacyUnnamedParameters, ReturnNewObject, RaisesException] Node importNode([Default=Undefined] optional Node importedNode,
46                     optional boolean deep);
47     [ObjCLegacyUnnamedParameters, ReturnNewObject, RaisesException] Element createElementNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
48                             [TreatNullAs=NullString,Default=Undefined] optional DOMString qualifiedName);
49     [ObjCLegacyUnnamedParameters, ReturnNewObject, RaisesException] Attr createAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
50                                                                           [TreatNullAs=NullString,Default=Undefined] optional DOMString qualifiedName);
51     [ObjCLegacyUnnamedParameters] NodeList getElementsByTagNameNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
52                                                    [Default=Undefined] optional DOMString localName);
53     Element getElementById([Default=Undefined] optional DOMString elementId);
54
55     // DOM Level 3 Core
56
57     [TreatReturnedNullStringAs=Null] readonly attribute DOMString inputEncoding;
58
59     [TreatReturnedNullStringAs=Null] readonly attribute DOMString xmlEncoding;
60     [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, SetterRaisesException] attribute DOMString xmlVersion;
61     [SetterRaisesException] attribute boolean xmlStandalone;
62
63     [RaisesException] Node               adoptNode([Default=Undefined] optional Node source);
64
65 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C || defined(LANGUAGE_GOBJECT) && LANGUAGE_GOBJECT
66     // document.documentURI was writable in DOM3 Core, but is read-only in DOM4
67     // (see http://www.w3.org/TR/2011/WD-dom-20110915/#document). We need to keep
68     // the writable version around for Objective C clients, but are moving to
69     // read-only for other clients.
70              [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] attribute DOMString documentURI;
71 #else
72     [TreatReturnedNullStringAs=Null] readonly attribute DOMString documentURI;
73 #endif
74
75     // DOM Level 2 Events (DocumentEvents interface)
76
77     [RaisesException] Event              createEvent([Default=Undefined] optional DOMString eventType);
78
79     // DOM Level 2 Tranversal and Range (DocumentRange interface)
80
81     Range              createRange();
82
83     // DOM Level 2 Tranversal and Range (DocumentTraversal interface)
84
85     [ObjCLegacyUnnamedParameters, RaisesException] NodeIterator createNodeIterator([Default=Undefined] optional Node root,
86                                                    [Default=Undefined] optional unsigned long whatToShow,
87                                                    [Default=Undefined] optional NodeFilter filter,
88                                                    [Default=Undefined] optional boolean expandEntityReferences);
89     [ObjCLegacyUnnamedParameters, RaisesException] TreeWalker createTreeWalker([Default=Undefined] optional Node root,
90                                                [Default=Undefined] optional unsigned long whatToShow,
91                                                [Default=Undefined] optional NodeFilter filter,
92                                                [Default=Undefined] optional boolean expandEntityReferences);
93
94     // DOM Level 2 Abstract Views (DocumentView interface)
95
96     readonly attribute DOMWindow defaultView;
97
98     // DOM Level 2 Style (DocumentStyle interface)
99
100     readonly attribute StyleSheetList styleSheets;
101
102     // DOM Level 2 Style (DocumentCSS interface)
103
104     [ObjCLegacyUnnamedParameters] CSSStyleDeclaration getOverrideStyle([Default=Undefined] optional Element element,
105                                                         [Default=Undefined] optional DOMString pseudoElement);
106
107     // DOM Level 3 XPath (XPathEvaluator interface)
108     [ObjCLegacyUnnamedParameters, RaisesException] XPathExpression createExpression([Default=Undefined] optional DOMString expression,
109                                                     [Default=Undefined] optional XPathNSResolver resolver);
110     XPathNSResolver    createNSResolver(Node nodeResolver);
111     [ObjCLegacyUnnamedParameters, RaisesException] XPathResult evaluate([Default=Undefined] optional DOMString expression,
112                                                   [Default=Undefined] optional Node contextNode,
113                                                   [Default=Undefined] optional XPathNSResolver resolver,
114                                                   [Default=Undefined] optional unsigned short type,
115                                                   [Default=Undefined] optional XPathResult inResult);
116
117     // Common extensions
118     boolean            execCommand([Default=Undefined] optional DOMString command,
119                                    [Default=Undefined] optional boolean userInterface,
120                                    [TreatNullAs=NullString, TreatUndefinedAs=NullString, Default=Undefined] optional DOMString value);
121
122 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
123     // FIXME: remove the these two versions once optional is implemented for Objective-C.
124     boolean            execCommand(DOMString command,
125                                    boolean userInterface);
126     boolean            execCommand(DOMString command);
127 #endif
128
129     boolean            queryCommandEnabled([Default=Undefined] optional DOMString command);
130     boolean            queryCommandIndeterm([Default=Undefined] optional DOMString command);
131     boolean            queryCommandState([Default=Undefined] optional DOMString command);
132     boolean            queryCommandSupported([Default=Undefined] optional DOMString command);
133     DOMString          queryCommandValue([Default=Undefined] optional DOMString command);
134
135     // Moved down from HTMLDocument
136
137              [TreatNullAs=NullString] attribute DOMString title;
138     readonly attribute DOMString referrer;
139 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
140     [TreatNullAs=NullString, SetterRaisesException] attribute DOMString domain;
141 #else
142     readonly attribute DOMString domain;
143 #endif
144     readonly attribute DOMString URL;
145
146     [TreatNullAs=NullString, GetterRaisesException, SetterRaisesException] attribute DOMString cookie;
147
148     [SetterRaisesException] attribute HTMLElement body;
149
150     readonly attribute HTMLHeadElement head;
151     readonly attribute HTMLCollection images;
152     readonly attribute HTMLCollection applets;
153     readonly attribute HTMLCollection links;
154     readonly attribute HTMLCollection forms;
155     readonly attribute HTMLCollection anchors;
156     readonly attribute DOMString lastModified;
157
158     NodeList getElementsByName([Default=Undefined] optional DOMString elementName);
159
160 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
161              [Custom] attribute Location location;
162 #endif
163
164     // IE extensions
165
166              [TreatReturnedNullStringAs=Undefined, TreatNullAs=NullString] attribute DOMString charset;
167     [TreatReturnedNullStringAs=Undefined] readonly attribute DOMString defaultCharset;
168     [TreatReturnedNullStringAs=Undefined] readonly attribute DOMString readyState;
169
170     Element            elementFromPoint([Default=Undefined] optional long x, 
171                                         [Default=Undefined] optional long y);
172     Range              caretRangeFromPoint([Default=Undefined] optional long x, 
173                                            [Default=Undefined] optional long y);
174
175     // Mozilla extensions
176 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
177     DOMSelection       getSelection();
178 #endif
179     [TreatReturnedNullStringAs=Null] readonly attribute DOMString characterSet;
180
181     // WebKit extensions
182
183     [TreatReturnedNullStringAs=Null] readonly attribute DOMString preferredStylesheetSet;
184              [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] attribute DOMString selectedStylesheetSet;
185
186 #if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
187     CSSStyleDeclaration createCSSStyleDeclaration();
188 #endif
189
190 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
191     // DOM Level 2 Style Interface
192     [ObjCLegacyUnnamedParameters, ObjCUseDefaultView] CSSStyleDeclaration getComputedStyle(Element element,
193                                                                   DOMString pseudoElement);
194
195     // WebKit extension
196     // FIXME: remove the first version once optional is implemented for Objective-C.
197     [ObjCUseDefaultView] CSSRuleList getMatchedCSSRules(Element element,
198                                               DOMString pseudoElement);
199     [ObjCUseDefaultView] CSSRuleList getMatchedCSSRules(Element element,
200                                               DOMString pseudoElement,
201                                               optional boolean authorOnly);
202                                               
203 #endif
204
205 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
206 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
207     CanvasRenderingContext getCSSCanvasContext(DOMString contextId, DOMString name, long width, long height);
208 #endif
209 #endif
210
211     // HTML 5
212     NodeList getElementsByClassName([Default=Undefined] optional DOMString tagname);
213
214     readonly attribute DOMString compatMode;
215
216     // NodeSelector - Selector API
217     [RaisesException] Element querySelector(DOMString selectors);
218     [RaisesException] NodeList querySelectorAll(DOMString selectors);
219
220 #if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API
221     // Mozilla version
222     readonly attribute boolean webkitIsFullScreen;
223     readonly attribute boolean webkitFullScreenKeyboardInputAllowed;
224     readonly attribute Element webkitCurrentFullScreenElement;
225     void webkitCancelFullScreen();
226
227     // W3C version
228     readonly attribute boolean webkitFullscreenEnabled;
229     readonly attribute Element webkitFullscreenElement;
230     void webkitExitFullscreen();
231 #endif
232
233     [Conditional=POINTER_LOCK] void webkitExitPointerLock();
234     [Conditional=POINTER_LOCK] readonly attribute Element webkitPointerLockElement;
235
236     [Conditional=CSS_REGIONS] DOMNamedFlowCollection webkitGetNamedFlows();
237
238 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
239     [Conditional=FONT_LOAD_EVENTS] readonly attribute FontLoader fontloader;
240 #endif
241
242 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
243     // Event handler DOM attributes
244     [NotEnumerable] attribute EventListener onabort;
245     [NotEnumerable] attribute EventListener onblur;
246     [NotEnumerable] attribute EventListener onchange;
247     [NotEnumerable] attribute EventListener onclick;
248     [NotEnumerable] attribute EventListener oncontextmenu;
249     [NotEnumerable] attribute EventListener ondblclick;
250     [NotEnumerable] attribute EventListener ondrag;
251     [NotEnumerable] attribute EventListener ondragend;
252     [NotEnumerable] attribute EventListener ondragenter;
253     [NotEnumerable] attribute EventListener ondragleave;
254     [NotEnumerable] attribute EventListener ondragover;
255     [NotEnumerable] attribute EventListener ondragstart;
256     [NotEnumerable] attribute EventListener ondrop;
257     [NotEnumerable] attribute EventListener onerror;
258     [NotEnumerable] attribute EventListener onfocus;
259     [NotEnumerable] attribute EventListener oninput;
260     [NotEnumerable] attribute EventListener oninvalid;
261     [NotEnumerable] attribute EventListener onkeydown;
262     [NotEnumerable] attribute EventListener onkeypress;
263     [NotEnumerable] attribute EventListener onkeyup;
264     [NotEnumerable] attribute EventListener onload;
265     [NotEnumerable] attribute EventListener onmousedown;
266     [NotEnumerable] attribute EventListener onmouseenter;
267     [NotEnumerable] attribute EventListener onmouseleave;
268     [NotEnumerable] attribute EventListener onmousemove;
269     [NotEnumerable] attribute EventListener onmouseout;
270     [NotEnumerable] attribute EventListener onmouseover;
271     [NotEnumerable] attribute EventListener onmouseup;
272     [NotEnumerable] attribute EventListener onmousewheel;
273     [NotEnumerable] attribute EventListener onreadystatechange;
274     [NotEnumerable] attribute EventListener onscroll;
275     [NotEnumerable] attribute EventListener onselect;
276     [NotEnumerable] attribute EventListener onsubmit;
277
278     // [NotEnumerable] attribute EventListener oncanplay;
279     // [NotEnumerable] attribute EventListener oncanplaythrough;
280     // [NotEnumerable] attribute EventListener ondurationchange;
281     // [NotEnumerable] attribute EventListener onemptied;
282     // [NotEnumerable] attribute EventListener onended;
283     // [NotEnumerable] attribute EventListener onloadeddata;
284     // [NotEnumerable] attribute EventListener onloadedmetadata;
285     // [NotEnumerable] attribute EventListener onloadstart;
286     // [NotEnumerable] attribute EventListener onpause;
287     // [NotEnumerable] attribute EventListener onplay;
288     // [NotEnumerable] attribute EventListener onplaying;
289     // [NotEnumerable] attribute EventListener onprogress;
290     // [NotEnumerable] attribute EventListener onratechange;
291     // [NotEnumerable] attribute EventListener onseeked;
292     // [NotEnumerable] attribute EventListener onseeking;
293     // [NotEnumerable] attribute EventListener onshow;
294     // [NotEnumerable] attribute EventListener onstalled;
295     // [NotEnumerable] attribute EventListener onsuspend;
296     // [NotEnumerable] attribute EventListener ontimeupdate;
297     // [NotEnumerable] attribute EventListener onvolumechange;
298     // [NotEnumerable] attribute EventListener onwaiting;
299
300     // WebKit extensions
301     [NotEnumerable] attribute EventListener onbeforecut;
302     [NotEnumerable] attribute EventListener oncut;
303     [NotEnumerable] attribute EventListener onbeforecopy;
304     [NotEnumerable] attribute EventListener oncopy;
305     [NotEnumerable] attribute EventListener onbeforepaste;
306     [NotEnumerable] attribute EventListener onpaste;
307     [NotEnumerable] attribute EventListener onreset;
308     [NotEnumerable] attribute EventListener onsearch;
309     [NotEnumerable] attribute EventListener onselectstart;
310     [NotEnumerable] attribute EventListener onselectionchange;
311     [NotEnumerable,Conditional=TOUCH_EVENTS] attribute EventListener ontouchstart;
312     [NotEnumerable,Conditional=TOUCH_EVENTS] attribute EventListener ontouchmove;
313     [NotEnumerable,Conditional=TOUCH_EVENTS] attribute EventListener ontouchend;
314     [NotEnumerable,Conditional=TOUCH_EVENTS] attribute EventListener ontouchcancel;
315     [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenchange;
316     [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenerror;
317     [NotEnumerable, Conditional=POINTER_LOCK] attribute EventListener onwebkitpointerlockchange;
318     [NotEnumerable, Conditional=POINTER_LOCK] attribute EventListener onwebkitpointerlockerror;
319     [NotEnumerable, Conditional=CSP_NEXT] attribute EventListener onsecuritypolicyviolation;
320 #endif
321
322 #if defined(ENABLE_TOUCH_EVENTS) && ENABLE_TOUCH_EVENTS
323     [ReturnNewObject, RaisesException] Touch createTouch([Default=Undefined] optional DOMWindow window,
324                                                      [Default=Undefined] optional EventTarget target,
325                                                      [Default=Undefined] optional long identifier,
326                                                      [Default=Undefined] optional long pageX,
327                                                      [Default=Undefined] optional long pageY,
328                                                      [Default=Undefined] optional long screenX,
329                                                      [Default=Undefined] optional long screenY,
330                                                      [Default=Undefined] optional long webkitRadiusX,
331                                                      [Default=Undefined] optional long webkitRadiusY,
332                                                      [Default=Undefined] optional float webkitRotationAngle,
333                                                      [Default=Undefined] optional float webkitForce);
334     [ReturnNewObject, Custom, RaisesException] TouchList createTouchList();
335 #endif
336
337 #if defined(ENABLE_CUSTOM_ELEMENTS) && ENABLE_CUSTOM_ELEMENTS
338     [Conditional=CUSTOM_ELEMENTS, ImplementedAs=registerElement, CallWith=ScriptState, RaisesException] CustomElementConstructor webkitRegister(DOMString name, optional Dictionary options);
339     [ReturnNewObject, RaisesException] Element createElement(DOMString localName, [TreatNullAs=NullString] DOMString typeExtension);
340     [ReturnNewObject, RaisesException] Element createElementNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString qualifiedName,
341                             [TreatNullAs=NullString] DOMString typeExtension);
342 #endif
343
344 #if defined(LANGUAGE_CPP) && LANGUAGE_CPP
345     // Extra WebCore methods exposed to allow compile-time casting in C++
346     boolean isHTMLDocument();
347 #endif
348
349     // Page visibility API.
350     [Conditional=PAGE_VISIBILITY_API] readonly attribute DOMString visibilityState;
351     [Conditional=PAGE_VISIBILITY_API] readonly attribute boolean hidden;
352
353     // Security Policy API: http://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#script-interfaces
354     [Conditional=CSP_NEXT] readonly attribute DOMSecurityPolicy securityPolicy;
355
356     // currentscript API: http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#dom-document-currentscript
357     readonly attribute HTMLScriptElement currentScript;
358 };
359