[CSS Regions] Remove the deprecated API Document.webkitGetFlowByName
[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 module core {
22
23     interface [
24         CustomToJSObject,
25         JSGenerateToNativeObject,
26         JSInlineGetOwnPropertySlot
27     ] Document : Node {
28
29         // DOM Level 1 Core
30         readonly attribute DocumentType doctype;
31         readonly attribute DOMImplementation implementation;
32         readonly attribute Element documentElement;
33
34         [ReturnNewObject] Element createElement(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString tagName)
35             raises (DOMException);
36         DocumentFragment   createDocumentFragment();
37         [ReturnNewObject] Text createTextNode(in [Optional=DefaultIsUndefined] DOMString data);
38         [ReturnNewObject] Comment createComment(in [Optional=DefaultIsUndefined] DOMString data);
39         [ReturnNewObject] CDATASection createCDATASection(in [Optional=DefaultIsUndefined] DOMString data)
40             raises(DOMException);
41         [ObjCLegacyUnnamedParameters, ReturnNewObject] ProcessingInstruction createProcessingInstruction(in [Optional=DefaultIsUndefined] DOMString target,
42                                                                                      in [Optional=DefaultIsUndefined] DOMString data)
43             raises (DOMException);
44         [ReturnNewObject] Attr createAttribute(in [Optional=DefaultIsUndefined] DOMString name)
45             raises (DOMException);
46         [ReturnNewObject] EntityReference createEntityReference(in [Optional=DefaultIsUndefined] DOMString name)
47             raises(DOMException);
48         NodeList           getElementsByTagName(in [Optional=DefaultIsUndefined] DOMString tagname);
49
50         // Introduced in DOM Level 2:
51
52         [ObjCLegacyUnnamedParameters, ReturnNewObject] Node importNode(in [Optional=DefaultIsUndefined] Node importedNode,
53                                                    in [Optional] boolean deep)
54             raises (DOMException);
55         [ObjCLegacyUnnamedParameters, ReturnNewObject] Element createElementNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
56                                                            in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString qualifiedName)
57             raises (DOMException);
58         [ObjCLegacyUnnamedParameters, ReturnNewObject] Attr createAttributeNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
59                                                           in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString qualifiedName)
60             raises (DOMException);
61         [ObjCLegacyUnnamedParameters] NodeList getElementsByTagNameNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
62                                                        in [Optional=DefaultIsUndefined] DOMString localName);
63         Element            getElementById(in [Optional=DefaultIsUndefined] DOMString elementId);
64
65         // DOM Level 3 Core
66
67         readonly attribute [TreatReturnedNullStringAs=Null] DOMString inputEncoding;
68
69         readonly attribute [TreatReturnedNullStringAs=Null] DOMString xmlEncoding;
70                  attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString xmlVersion
71                     setter raises (DOMException);
72                  attribute boolean xmlStandalone
73                     setter raises (DOMException);
74
75         Node               adoptNode(in [Optional=DefaultIsUndefined] Node source)
76             raises (DOMException);
77
78 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C || defined(LANGUAGE_GOBJECT) && LANGUAGE_GOBJECT
79         // document.documentURI was writable in DOM3 Core, but is read-only in DOM4
80         // (see http://www.w3.org/TR/2011/WD-dom-20110915/#document). We need to keep
81         // the writable version around for Objective C clients, but are moving to
82         // read-only for other clients.
83                  attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString documentURI;
84 #else
85         readonly attribute [TreatReturnedNullStringAs=Null] DOMString documentURI;
86 #endif
87
88         // DOM Level 2 Events (DocumentEvents interface)
89
90         Event              createEvent(in [Optional=DefaultIsUndefined] DOMString eventType)
91             raises(DOMException);
92
93         // DOM Level 2 Tranversal and Range (DocumentRange interface)
94
95         Range              createRange();
96
97         // DOM Level 2 Tranversal and Range (DocumentTraversal interface)
98
99         [ObjCLegacyUnnamedParameters] NodeIterator createNodeIterator(in [Optional=DefaultIsUndefined] Node root,
100                                                        in [Optional=DefaultIsUndefined] unsigned long whatToShow,
101                                                        in [Optional=DefaultIsUndefined] NodeFilter filter,
102                                                        in [Optional=DefaultIsUndefined] boolean expandEntityReferences)
103             raises(DOMException);
104         [ObjCLegacyUnnamedParameters] TreeWalker createTreeWalker(in [Optional=DefaultIsUndefined] Node root,
105                                                    in [Optional=DefaultIsUndefined] unsigned long whatToShow,
106                                                    in [Optional=DefaultIsUndefined] NodeFilter filter,
107                                                    in [Optional=DefaultIsUndefined] boolean expandEntityReferences)
108             raises(DOMException);
109
110         // DOM Level 2 Abstract Views (DocumentView interface)
111
112         readonly attribute DOMWindow defaultView;
113
114         // DOM Level 2 Style (DocumentStyle interface)
115
116         readonly attribute StyleSheetList styleSheets;
117
118         // DOM Level 2 Style (DocumentCSS interface)
119
120         [ObjCLegacyUnnamedParameters] CSSStyleDeclaration getOverrideStyle(in [Optional=DefaultIsUndefined] Element element,
121                                                             in [Optional=DefaultIsUndefined] DOMString pseudoElement);
122
123         // DOM Level 3 XPath (XPathEvaluator interface)
124         [ObjCLegacyUnnamedParameters] XPathExpression createExpression(in [Optional=DefaultIsUndefined] DOMString expression,
125                                                         in [Optional=DefaultIsUndefined] XPathNSResolver resolver)
126             raises(DOMException);
127         XPathNSResolver    createNSResolver(in Node nodeResolver);
128         [ObjCLegacyUnnamedParameters, V8Custom] XPathResult evaluate(in [Optional=DefaultIsUndefined] DOMString expression,
129                                                       in [Optional=DefaultIsUndefined] Node contextNode,
130                                                       in [Optional=DefaultIsUndefined] XPathNSResolver resolver,
131                                                       in [Optional=DefaultIsUndefined] unsigned short type,
132                                                       in [Optional=DefaultIsUndefined] XPathResult inResult)
133             raises(DOMException);
134
135         // Common extensions
136
137         boolean            execCommand(in [Optional=DefaultIsUndefined] DOMString command,
138                                        in [Optional=DefaultIsUndefined] boolean userInterface,
139                                        in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString value);
140
141 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
142         // FIXME: remove the these two versions once [Optional] is implemented for Objective-C.
143         boolean            execCommand(in DOMString command,
144                                        in boolean userInterface);
145         boolean            execCommand(in DOMString command);
146 #endif
147
148         boolean            queryCommandEnabled(in [Optional=DefaultIsUndefined] DOMString command);
149         boolean            queryCommandIndeterm(in [Optional=DefaultIsUndefined] DOMString command);
150         boolean            queryCommandState(in [Optional=DefaultIsUndefined] DOMString command);
151         boolean            queryCommandSupported(in [Optional=DefaultIsUndefined] DOMString command);
152         DOMString          queryCommandValue(in [Optional=DefaultIsUndefined] DOMString command);
153
154         // Moved down from HTMLDocument
155
156                  attribute [TreatNullAs=NullString] DOMString title;
157         readonly attribute DOMString referrer;
158 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
159                  attribute [TreatNullAs=NullString] DOMString domain
160                      setter raises (DOMException);
161 #else
162         readonly attribute DOMString domain;
163 #endif
164         readonly attribute DOMString URL;
165
166                  attribute [TreatNullAs=NullString] DOMString cookie
167                      setter raises (DOMException),
168                      getter raises (DOMException);
169
170         // FIXME: the DOM spec does NOT have this attribute
171         // raising an exception.
172                  attribute HTMLElement body
173                      setter raises (DOMException);
174
175         readonly attribute HTMLHeadElement head;
176         readonly attribute HTMLCollection images;
177         readonly attribute HTMLCollection applets;
178         readonly attribute HTMLCollection links;
179         readonly attribute HTMLCollection forms;
180         readonly attribute HTMLCollection anchors;
181         readonly attribute DOMString lastModified;
182
183         NodeList getElementsByName(in [Optional=DefaultIsUndefined] DOMString elementName);
184
185 #if defined(ENABLE_MICRODATA) && ENABLE_MICRODATA
186         NodeList getItems(in [TreatNullAs=NullString, TreatUndefinedAs=NullString, Optional=DefaultIsUndefined] DOMString typeNames);
187 #endif
188
189 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
190                  attribute [Custom] Location location;
191 #endif
192
193         // IE extensions
194
195                  attribute [TreatReturnedNullStringAs=Undefined, TreatNullAs=NullString] DOMString charset;
196         readonly attribute [TreatReturnedNullStringAs=Undefined] DOMString defaultCharset;
197         readonly attribute [TreatReturnedNullStringAs=Undefined] DOMString readyState;
198
199         Element            elementFromPoint(in [Optional=DefaultIsUndefined] long x, 
200                                             in [Optional=DefaultIsUndefined] long y);
201         Range              caretRangeFromPoint(in [Optional=DefaultIsUndefined] long x, 
202                                                in [Optional=DefaultIsUndefined] long y);
203
204         // Mozilla extensions
205 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
206         DOMSelection       getSelection();
207 #endif
208         readonly attribute [TreatReturnedNullStringAs=Null] DOMString characterSet;
209
210         // WebKit extensions
211
212         readonly attribute [TreatReturnedNullStringAs=Null] DOMString preferredStylesheetSet;
213                  attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString selectedStylesheetSet;
214
215 #if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
216         CSSStyleDeclaration createCSSStyleDeclaration();
217 #endif
218
219 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
220         readonly attribute [Conditional=UNDO_MANAGER] UndoManager undoManager;
221 #endif
222
223 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
224         // DOM Level 2 Style Interface
225         [ObjCLegacyUnnamedParameters, ObjCUseDefaultView] CSSStyleDeclaration getComputedStyle(in Element element,
226                                                                       in DOMString pseudoElement);
227
228         // WebKit extension
229         // FIXME: remove the first version once [Optional] is implemented for Objective-C.
230         [ObjCUseDefaultView] CSSRuleList getMatchedCSSRules(in Element element,
231                                                   in DOMString pseudoElement);
232         [ObjCUseDefaultView] CSSRuleList getMatchedCSSRules(in Element element,
233                                                   in DOMString pseudoElement,
234                                                   in [Optional] boolean authorOnly);
235                                                   
236 #endif
237
238 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
239 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
240         CanvasRenderingContext getCSSCanvasContext(in DOMString contextId, in DOMString name, in long width, in long height);
241 #endif
242 #endif
243
244         // HTML 5
245         NodeList getElementsByClassName(in [Optional=DefaultIsUndefined] DOMString tagname);
246
247         readonly attribute DOMString compatMode;
248
249         // NodeSelector - Selector API
250         Element querySelector(in DOMString selectors)
251             raises(DOMException);
252         NodeList querySelectorAll(in DOMString selectors)
253             raises(DOMException);
254
255 #if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API
256         // Mozilla version
257         readonly attribute [V8EnabledAtRuntime] boolean webkitIsFullScreen;
258         readonly attribute [V8EnabledAtRuntime] boolean webkitFullScreenKeyboardInputAllowed;
259         readonly attribute [V8EnabledAtRuntime] Element webkitCurrentFullScreenElement;
260         [V8EnabledAtRuntime] void webkitCancelFullScreen();
261
262         // W3C version
263         readonly attribute [V8EnabledAtRuntime] boolean webkitFullscreenEnabled;
264         readonly attribute [V8EnabledAtRuntime] Element webkitFullscreenElement;
265         [V8EnabledAtRuntime] void webkitExitFullscreen();
266 #endif
267
268         [Conditional=POINTER_LOCK, V8EnabledAtRuntime=pointerLock] void webkitExitPointerLock();
269         readonly attribute [Conditional=POINTER_LOCK, V8EnabledAtRuntime=pointerLock] Element webkitPointerLockElement;
270
271         [Conditional=CSS_REGIONS] DOMNamedFlowCollection webkitGetNamedFlows();
272
273 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
274         // Event handler DOM attributes
275         attribute [NotEnumerable] EventListener onabort;
276         attribute [NotEnumerable] EventListener onblur;
277         attribute [NotEnumerable] EventListener onchange;
278         attribute [NotEnumerable] EventListener onclick;
279         attribute [NotEnumerable] EventListener oncontextmenu;
280         attribute [NotEnumerable] EventListener ondblclick;
281         attribute [NotEnumerable] EventListener ondrag;
282         attribute [NotEnumerable] EventListener ondragend;
283         attribute [NotEnumerable] EventListener ondragenter;
284         attribute [NotEnumerable] EventListener ondragleave;
285         attribute [NotEnumerable] EventListener ondragover;
286         attribute [NotEnumerable] EventListener ondragstart;
287         attribute [NotEnumerable] EventListener ondrop;
288         attribute [NotEnumerable] EventListener onerror;
289         attribute [NotEnumerable] EventListener onfocus;
290         attribute [NotEnumerable] EventListener oninput;
291         attribute [NotEnumerable] EventListener oninvalid;
292         attribute [NotEnumerable] EventListener onkeydown;
293         attribute [NotEnumerable] EventListener onkeypress;
294         attribute [NotEnumerable] EventListener onkeyup;
295         attribute [NotEnumerable] EventListener onload;
296         attribute [NotEnumerable] EventListener onmousedown;
297         attribute [NotEnumerable] EventListener onmousemove;
298         attribute [NotEnumerable] EventListener onmouseout;
299         attribute [NotEnumerable] EventListener onmouseover;
300         attribute [NotEnumerable] EventListener onmouseup;
301         attribute [NotEnumerable] EventListener onmousewheel;
302         attribute [NotEnumerable] EventListener onreadystatechange;
303         attribute [NotEnumerable] EventListener onscroll;
304         attribute [NotEnumerable] EventListener onselect;
305         attribute [NotEnumerable] EventListener onsubmit;
306
307         // attribute [NotEnumerable] EventListener oncanplay;
308         // attribute [NotEnumerable] EventListener oncanplaythrough;
309         // attribute [NotEnumerable] EventListener ondurationchange;
310         // attribute [NotEnumerable] EventListener onemptied;
311         // attribute [NotEnumerable] EventListener onended;
312         // attribute [NotEnumerable] EventListener onloadeddata;
313         // attribute [NotEnumerable] EventListener onloadedmetadata;
314         // attribute [NotEnumerable] EventListener onloadstart;
315         // attribute [NotEnumerable] EventListener onpause;
316         // attribute [NotEnumerable] EventListener onplay;
317         // attribute [NotEnumerable] EventListener onplaying;
318         // attribute [NotEnumerable] EventListener onprogress;
319         // attribute [NotEnumerable] EventListener onratechange;
320         // attribute [NotEnumerable] EventListener onseeked;
321         // attribute [NotEnumerable] EventListener onseeking;
322         // attribute [NotEnumerable] EventListener onshow;
323         // attribute [NotEnumerable] EventListener onstalled;
324         // attribute [NotEnumerable] EventListener onsuspend;
325         // attribute [NotEnumerable] EventListener ontimeupdate;
326         // attribute [NotEnumerable] EventListener onvolumechange;
327         // attribute [NotEnumerable] EventListener onwaiting;
328
329         // WebKit extensions
330         attribute [NotEnumerable] EventListener onbeforecut;
331         attribute [NotEnumerable] EventListener oncut;
332         attribute [NotEnumerable] EventListener onbeforecopy;
333         attribute [NotEnumerable] EventListener oncopy;
334         attribute [NotEnumerable] EventListener onbeforepaste;
335         attribute [NotEnumerable] EventListener onpaste;
336         attribute [NotEnumerable] EventListener onreset;
337         attribute [NotEnumerable] EventListener onsearch;
338         attribute [NotEnumerable] EventListener onselectstart;
339         attribute [NotEnumerable] EventListener onselectionchange;
340         attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchstart;
341         attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchmove;
342         attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchend;
343         attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchcancel;
344         attribute [NotEnumerable, Conditional=FULLSCREEN_API] EventListener onwebkitfullscreenchange;
345         attribute [NotEnumerable, Conditional=FULLSCREEN_API] EventListener onwebkitfullscreenerror;
346         attribute [NotEnumerable, Conditional=POINTER_LOCK, V8EnabledAtRuntime=pointerLock] EventListener onwebkitpointerlockchange;
347         attribute [NotEnumerable, Conditional=POINTER_LOCK, V8EnabledAtRuntime=pointerLock] EventListener onwebkitpointerlockerror;
348 #endif
349
350 #if defined(ENABLE_TOUCH_EVENTS) && ENABLE_TOUCH_EVENTS
351         [ReturnNewObject, V8EnabledAtRuntime] Touch createTouch(in [Optional=DefaultIsUndefined] DOMWindow window,
352                                                          in [Optional=DefaultIsUndefined] EventTarget target,
353                                                          in [Optional=DefaultIsUndefined] long identifier,
354                                                          in [Optional=DefaultIsUndefined] long pageX,
355                                                          in [Optional=DefaultIsUndefined] long pageY,
356                                                          in [Optional=DefaultIsUndefined] long screenX,
357                                                          in [Optional=DefaultIsUndefined] long screenY,
358                                                          in [Optional=DefaultIsUndefined] long webkitRadiusX,
359                                                          in [Optional=DefaultIsUndefined] long webkitRadiusY,
360                                                          in [Optional=DefaultIsUndefined] float webkitRotationAngle,
361                                                          in [Optional=DefaultIsUndefined] float webkitForce)
362             raises (DOMException);
363         [ReturnNewObject, V8EnabledAtRuntime, Custom] TouchList createTouchList()
364             raises (DOMException);
365 #endif
366
367 #if defined(LANGUAGE_CPP) && LANGUAGE_CPP
368         // Extra WebCore methods exposed to allow compile-time casting in C++
369         boolean isHTMLDocument();
370 #endif
371
372         // Page visibility API.
373         readonly attribute [Conditional=PAGE_VISIBILITY_API] DOMString webkitVisibilityState;
374         readonly attribute [Conditional=PAGE_VISIBILITY_API] boolean webkitHidden;
375
376         // Security Policy API: http://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#script-interfaces
377         readonly attribute [Conditional=CSP_NEXT] DOMSecurityPolicy SecurityPolicy;
378
379     };
380
381 }