Emit an error event when a request to enter full-screen is rejected.
[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         CustomToJS,
25         GenerateNativeConverter,
26         InlineGetOwnPropertySlot
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         [ReturnsNew] Element createElement(in [ConvertNullToNullString,Optional=CallWithDefaultValue] DOMString tagName)
35             raises (DOMException);
36         DocumentFragment   createDocumentFragment();
37         [ReturnsNew] Text createTextNode(in [Optional=CallWithDefaultValue] DOMString data);
38         [ReturnsNew] Comment createComment(in [Optional=CallWithDefaultValue] DOMString data);
39         [ReturnsNew] CDATASection createCDATASection(in [Optional=CallWithDefaultValue] DOMString data)
40             raises(DOMException);
41         [OldStyleObjC, ReturnsNew] ProcessingInstruction createProcessingInstruction(in [Optional=CallWithDefaultValue] DOMString target,
42                                                                                      in [Optional=CallWithDefaultValue] DOMString data)
43             raises (DOMException);
44         [ReturnsNew] Attr createAttribute(in [Optional=CallWithDefaultValue] DOMString name)
45             raises (DOMException);
46         [ReturnsNew] EntityReference createEntityReference(in [Optional=CallWithDefaultValue] DOMString name)
47             raises(DOMException);
48         NodeList           getElementsByTagName(in [Optional=CallWithDefaultValue] DOMString tagname);
49
50         // Introduced in DOM Level 2:
51
52         [OldStyleObjC, ReturnsNew] Node importNode(in [Optional=CallWithDefaultValue] Node importedNode,
53                                                    in [Optional] boolean deep)
54             raises (DOMException);
55         [OldStyleObjC, ReturnsNew] Element createElementNS(in [ConvertNullToNullString,Optional=CallWithDefaultValue] DOMString namespaceURI,
56                                                            in [ConvertNullToNullString,Optional=CallWithDefaultValue] DOMString qualifiedName)
57             raises (DOMException);
58         [OldStyleObjC, ReturnsNew] Attr createAttributeNS(in [ConvertNullToNullString,Optional=CallWithDefaultValue] DOMString namespaceURI,
59                                                           in [ConvertNullToNullString,Optional=CallWithDefaultValue] DOMString qualifiedName)
60             raises (DOMException);
61         [OldStyleObjC] NodeList getElementsByTagNameNS(in [ConvertNullToNullString,Optional=CallWithDefaultValue] DOMString namespaceURI,
62                                                        in [Optional=CallWithDefaultValue] DOMString localName);
63         Element            getElementById(in [Optional=CallWithDefaultValue] DOMString elementId);
64
65         // DOM Level 3 Core
66
67         readonly attribute [ConvertNullStringTo=Null] DOMString inputEncoding;
68
69         readonly attribute [ConvertNullStringTo=Null] DOMString xmlEncoding;
70                  attribute [ConvertNullStringTo=Null, ConvertNullToNullString] DOMString xmlVersion
71                     setter raises (DOMException);
72                  attribute boolean xmlStandalone
73                     setter raises (DOMException);
74
75         Node               adoptNode(in [Optional=CallWithDefaultValue] Node source)
76             raises (DOMException);
77
78                  attribute [ConvertNullStringTo=Null, ConvertNullToNullString] DOMString documentURI;
79
80         // DOM Level 2 Events (DocumentEvents interface)
81
82         Event              createEvent(in [Optional=CallWithDefaultValue] DOMString eventType)
83             raises(DOMException);
84
85         // DOM Level 2 Tranversal and Range (DocumentRange interface)
86
87         Range              createRange();
88
89         // DOM Level 2 Tranversal and Range (DocumentTraversal interface)
90
91         [OldStyleObjC] NodeIterator createNodeIterator(in [Optional=CallWithDefaultValue] Node root,
92                                                        in [Optional=CallWithDefaultValue] unsigned long whatToShow,
93                                                        in [Optional=CallWithDefaultValue] NodeFilter filter,
94                                                        in [Optional=CallWithDefaultValue] boolean expandEntityReferences)
95             raises(DOMException);
96         [OldStyleObjC] TreeWalker createTreeWalker(in [Optional=CallWithDefaultValue] Node root,
97                                                    in [Optional=CallWithDefaultValue] unsigned long whatToShow,
98                                                    in [Optional=CallWithDefaultValue] NodeFilter filter,
99                                                    in [Optional=CallWithDefaultValue] boolean expandEntityReferences)
100             raises(DOMException);
101
102         // DOM Level 2 Abstract Views (DocumentView interface)
103
104         readonly attribute DOMWindow defaultView;
105
106         // DOM Level 2 Style (DocumentStyle interface)
107
108         readonly attribute StyleSheetList styleSheets;
109
110         // DOM Level 2 Style (DocumentCSS interface)
111
112         [OldStyleObjC] CSSStyleDeclaration getOverrideStyle(in [Optional=CallWithDefaultValue] Element element,
113                                                             in [Optional=CallWithDefaultValue] DOMString pseudoElement);
114
115         // DOM Level 3 XPath (XPathEvaluator interface)
116         [OldStyleObjC] XPathExpression createExpression(in [Optional=CallWithDefaultValue] DOMString expression,
117                                                         in [Optional=CallWithDefaultValue] XPathNSResolver resolver)
118             raises(DOMException);
119         XPathNSResolver    createNSResolver(in Node nodeResolver);
120         [OldStyleObjC, V8Custom] XPathResult evaluate(in [Optional=CallWithDefaultValue] DOMString expression,
121                                                       in [Optional=CallWithDefaultValue] Node contextNode,
122                                                       in [Optional=CallWithDefaultValue] XPathNSResolver resolver,
123                                                       in [Optional=CallWithDefaultValue] unsigned short type,
124                                                       in [Optional=CallWithDefaultValue] XPathResult inResult)
125             raises(DOMException);
126
127         // Common extensions
128
129         boolean            execCommand(in [Optional=CallWithDefaultValue] DOMString command,
130                                        in [Optional=CallWithDefaultValue] boolean userInterface,
131                                        in [ConvertUndefinedOrNullToNullString,Optional=CallWithDefaultValue] DOMString value);
132
133 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
134         // FIXME: remove the these two versions once [Optional] is implemented for Objective-C.
135         boolean            execCommand(in DOMString command,
136                                        in boolean userInterface);
137         boolean            execCommand(in DOMString command);
138 #endif
139
140         boolean            queryCommandEnabled(in [Optional=CallWithDefaultValue] DOMString command);
141         boolean            queryCommandIndeterm(in [Optional=CallWithDefaultValue] DOMString command);
142         boolean            queryCommandState(in [Optional=CallWithDefaultValue] DOMString command);
143         boolean            queryCommandSupported(in [Optional=CallWithDefaultValue] DOMString command);
144         [ConvertNullStringTo=False] DOMString queryCommandValue(in [Optional=CallWithDefaultValue] DOMString command);
145
146         // Moved down from HTMLDocument
147
148                  attribute [ConvertNullToNullString] DOMString title;
149         readonly attribute DOMString referrer;
150 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
151                  attribute [ConvertNullToNullString] DOMString domain
152                      setter raises (DOMException);
153 #else
154         readonly attribute DOMString domain;
155 #endif
156         readonly attribute DOMString URL;
157
158                  attribute [ConvertNullToNullString] DOMString cookie
159                      setter raises (DOMException),
160                      getter raises (DOMException);
161
162         // FIXME: the DOM spec does NOT have this attribute
163         // raising an exception.
164                  attribute HTMLElement body
165                      setter raises (DOMException);
166
167         readonly attribute HTMLHeadElement head;
168         readonly attribute HTMLCollection images;
169         readonly attribute HTMLCollection applets;
170         readonly attribute HTMLCollection links;
171         readonly attribute HTMLCollection forms;
172         readonly attribute HTMLCollection anchors;
173         readonly attribute DOMString lastModified;
174
175         NodeList getElementsByName(in [Optional=CallWithDefaultValue] DOMString elementName);
176
177 #if defined(ENABLE_MICRODATA) && ENABLE_MICRODATA
178         NodeList getItems(in [ConvertUndefinedOrNullToNullString, Optional=CallWithDefaultValue] DOMString typeNames);
179 #endif
180
181 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
182                  attribute [Custom] Location location;
183 #endif
184
185         // IE extensions
186
187                  attribute [ConvertNullStringTo=Undefined, ConvertNullToNullString] DOMString charset;
188         readonly attribute [ConvertNullStringTo=Undefined] DOMString defaultCharset;
189         readonly attribute [ConvertNullStringTo=Undefined] DOMString readyState;
190
191         Element            elementFromPoint(in [Optional=CallWithDefaultValue] long x, 
192                                             in [Optional=CallWithDefaultValue] long y);
193         Range              caretRangeFromPoint(in [Optional=CallWithDefaultValue] long x, 
194                                                in [Optional=CallWithDefaultValue] long y);
195
196         // Mozilla extensions
197 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
198         DOMSelection       getSelection();
199 #endif
200         readonly attribute [ConvertNullStringTo=Null] DOMString characterSet;
201
202         // WebKit extensions
203
204         readonly attribute [ConvertNullStringTo=Null] DOMString preferredStylesheetSet;
205                  attribute [ConvertNullStringTo=Null, ConvertNullToNullString] DOMString selectedStylesheetSet;
206
207 #if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
208         CSSStyleDeclaration createCSSStyleDeclaration();
209 #endif
210
211 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
212         // DOM Level 2 Style Interface
213         [OldStyleObjC, UsesView] CSSStyleDeclaration getComputedStyle(in Element element,
214                                                                       in DOMString pseudoElement);
215
216         // WebKit extension
217         // FIXME: remove the first version once [Optional] is implemented for Objective-C.
218         [UsesView] CSSRuleList getMatchedCSSRules(in Element element,
219                                                   in DOMString pseudoElement);
220         [UsesView] CSSRuleList getMatchedCSSRules(in Element element,
221                                                   in DOMString pseudoElement,
222                                                   in [Optional] boolean authorOnly);
223                                                   
224 #endif
225
226 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
227 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
228         [V8Custom] DOMObject getCSSCanvasContext(in DOMString contextId, in DOMString name, in long width, in long height);
229 #endif
230 #endif
231
232         // HTML 5
233         NodeList getElementsByClassName(in [Optional=CallWithDefaultValue] DOMString tagname);
234
235         readonly attribute DOMString compatMode;
236
237         // NodeSelector - Selector API
238         Element querySelector(in DOMString selectors)
239             raises(DOMException);
240         NodeList querySelectorAll(in DOMString selectors)
241             raises(DOMException);
242
243 #if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API
244         readonly attribute [EnabledAtRuntime] boolean webkitIsFullScreen;
245         readonly attribute [EnabledAtRuntime] boolean webkitFullScreenKeyboardInputAllowed;
246         readonly attribute [EnabledAtRuntime] Element webkitCurrentFullScreenElement;
247         [EnabledAtRuntime] void webkitCancelFullScreen();
248 #endif
249
250         WebKitNamedFlow webkitGetFlowByName(in DOMString name);
251
252 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
253         // Event handler DOM attributes
254         attribute [DontEnum] EventListener onabort;
255         attribute [DontEnum] EventListener onblur;
256         attribute [DontEnum] EventListener onchange;
257         attribute [DontEnum] EventListener onclick;
258         attribute [DontEnum] EventListener oncontextmenu;
259         attribute [DontEnum] EventListener ondblclick;
260         attribute [DontEnum] EventListener ondrag;
261         attribute [DontEnum] EventListener ondragend;
262         attribute [DontEnum] EventListener ondragenter;
263         attribute [DontEnum] EventListener ondragleave;
264         attribute [DontEnum] EventListener ondragover;
265         attribute [DontEnum] EventListener ondragstart;
266         attribute [DontEnum] EventListener ondrop;
267         attribute [DontEnum] EventListener onerror;
268         attribute [DontEnum] EventListener onfocus;
269         attribute [DontEnum] EventListener oninput;
270         attribute [DontEnum] EventListener oninvalid;
271         attribute [DontEnum] EventListener onkeydown;
272         attribute [DontEnum] EventListener onkeypress;
273         attribute [DontEnum] EventListener onkeyup;
274         attribute [DontEnum] EventListener onload;
275         attribute [DontEnum] EventListener onmousedown;
276         attribute [DontEnum] EventListener onmousemove;
277         attribute [DontEnum] EventListener onmouseout;
278         attribute [DontEnum] EventListener onmouseover;
279         attribute [DontEnum] EventListener onmouseup;
280         attribute [DontEnum] EventListener onmousewheel;
281         attribute [DontEnum] EventListener onreadystatechange;
282         attribute [DontEnum] EventListener onscroll;
283         attribute [DontEnum] EventListener onselect;
284         attribute [DontEnum] EventListener onsubmit;
285
286         // attribute [DontEnum] EventListener oncanplay;
287         // attribute [DontEnum] EventListener oncanplaythrough;
288         // attribute [DontEnum] EventListener ondurationchange;
289         // attribute [DontEnum] EventListener onemptied;
290         // attribute [DontEnum] EventListener onended;
291         // attribute [DontEnum] EventListener onloadeddata;
292         // attribute [DontEnum] EventListener onloadedmetadata;
293         // attribute [DontEnum] EventListener onloadstart;
294         // attribute [DontEnum] EventListener onpause;
295         // attribute [DontEnum] EventListener onplay;
296         // attribute [DontEnum] EventListener onplaying;
297         // attribute [DontEnum] EventListener onprogress;
298         // attribute [DontEnum] EventListener onratechange;
299         // attribute [DontEnum] EventListener onseeked;
300         // attribute [DontEnum] EventListener onseeking;
301         // attribute [DontEnum] EventListener onshow;
302         // attribute [DontEnum] EventListener onstalled;
303         // attribute [DontEnum] EventListener onsuspend;
304         // attribute [DontEnum] EventListener ontimeupdate;
305         // attribute [DontEnum] EventListener onvolumechange;
306         // attribute [DontEnum] EventListener onwaiting;
307
308         // WebKit extensions
309         attribute [DontEnum] EventListener onbeforecut;
310         attribute [DontEnum] EventListener oncut;
311         attribute [DontEnum] EventListener onbeforecopy;
312         attribute [DontEnum] EventListener oncopy;
313         attribute [DontEnum] EventListener onbeforepaste;
314         attribute [DontEnum] EventListener onpaste;
315         attribute [DontEnum] EventListener onreset;
316         attribute [DontEnum] EventListener onsearch;
317         attribute [DontEnum] EventListener onselectstart;
318         attribute [DontEnum] EventListener onselectionchange;
319         attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchstart;
320         attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchmove;
321         attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchend;
322         attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchcancel;
323         attribute [DontEnum, Conditional=FULLSCREEN_API] EventListener onwebkitfullscreenchange;
324         attribute [DontEnum, Conditional=FULLSCREEN_API] EventListener onwebkitfullscreenerror;
325 #endif
326
327 #if defined(ENABLE_TOUCH_EVENTS) && ENABLE_TOUCH_EVENTS
328         [ReturnsNew, EnabledAtRuntime] Touch createTouch(in [Optional=CallWithDefaultValue] DOMWindow window,
329                                                          in [Optional=CallWithDefaultValue] EventTarget target,
330                                                          in [Optional=CallWithDefaultValue] long identifier,
331                                                          in [Optional=CallWithDefaultValue] long pageX,
332                                                          in [Optional=CallWithDefaultValue] long pageY,
333                                                          in [Optional=CallWithDefaultValue] long screenX,
334                                                          in [Optional=CallWithDefaultValue] long screenY,
335                                                          in [Optional=CallWithDefaultValue] long webkitRadiusX,
336                                                          in [Optional=CallWithDefaultValue] long webkitRadiusY,
337                                                          in [Optional=CallWithDefaultValue] float webkitRotationAngle,
338                                                          in [Optional=CallWithDefaultValue] float webkitForce)
339             raises (DOMException);
340         [ReturnsNew, EnabledAtRuntime, Custom] TouchList createTouchList()
341             raises (DOMException);
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         readonly attribute [Conditional=PAGE_VISIBILITY_API] DOMString webkitVisibilityState;
351         readonly attribute [Conditional=PAGE_VISIBILITY_API] boolean webkitHidden;
352
353     };
354
355 }