WebCore: Patch for https://bugs.webkit.org/show_bug.cgi?id=41146
[WebKit-https.git] / WebCore / dom / Element.idl
1 /*
2  * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
3  * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
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         CustomMarkFunction,
25         GenerateNativeConverter,
26         InlineGetOwnPropertySlot
27     ] Element : Node {
28
29         // DOM Level 1 Core
30
31         readonly attribute [ConvertNullStringTo=Null] DOMString tagName;
32
33         [ConvertNullStringTo=Null] DOMString getAttribute(in DOMString name);
34         [OldStyleObjC] void setAttribute(in DOMString name,
35                                          in DOMString value)
36             raises(DOMException);
37         void removeAttribute(in DOMString name)
38             raises(DOMException);
39         Attr getAttributeNode(in DOMString name);
40         Attr setAttributeNode(in Attr newAttr)
41             raises(DOMException);
42         Attr removeAttributeNode(in Attr oldAttr)
43             raises(DOMException);
44         NodeList getElementsByTagName(in DOMString name);
45
46         // DOM Level 2 Core
47
48         [OldStyleObjC] DOMString getAttributeNS(in [ConvertNullToNullString] DOMString namespaceURI,
49                                                 in DOMString localName);
50         [OldStyleObjC] void setAttributeNS(in [ConvertNullToNullString] DOMString namespaceURI,
51                                            in DOMString qualifiedName, 
52                                            in DOMString value)
53             raises(DOMException);
54         [OldStyleObjC] void removeAttributeNS(in [ConvertNullToNullString] DOMString namespaceURI,
55                                               in DOMString localName)
56             raises(DOMException);
57         [OldStyleObjC] NodeList getElementsByTagNameNS(in [ConvertNullToNullString] DOMString namespaceURI,
58                                                        in DOMString localName);
59         [OldStyleObjC] Attr getAttributeNodeNS(in [ConvertNullToNullString] DOMString namespaceURI,
60                                                in DOMString localName);
61         Attr setAttributeNodeNS(in Attr newAttr)
62             raises(DOMException);
63         boolean hasAttribute(in DOMString name);
64         [OldStyleObjC] boolean hasAttributeNS(in [ConvertNullToNullString] DOMString namespaceURI,
65                                               in DOMString localName);
66
67         readonly attribute CSSStyleDeclaration style;
68
69         // Common extensions
70
71         readonly attribute long offsetLeft;
72         readonly attribute long offsetTop;
73         readonly attribute long offsetWidth;
74         readonly attribute long offsetHeight;
75         readonly attribute Element offsetParent;
76         readonly attribute long clientLeft;
77         readonly attribute long clientTop;
78         readonly attribute long clientWidth;
79         readonly attribute long clientHeight;
80                  attribute long scrollLeft;
81                  attribute long scrollTop;
82         readonly attribute long scrollWidth;
83         readonly attribute long scrollHeight;
84
85         void focus();
86         void blur();
87         void scrollIntoView(in [Optional] boolean alignWithTop);
88
89         // IE extensions
90
91         boolean contains(in Element element);
92
93         // WebKit extensions
94
95         void scrollIntoViewIfNeeded(in [Optional] boolean centerIfNeeded);
96         void scrollByLines(in long lines);
97         void scrollByPages(in long pages);
98
99         // HTML 5
100         NodeList getElementsByClassName(in DOMString name);
101
102 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
103 #if !defined(V8_BINDING) || !V8_BINDING
104         readonly attribute DOMStringMap dataset;
105 #endif
106 #endif
107
108         // NodeSelector - Selector API
109         Element querySelector(in DOMString selectors)
110             raises(DOMException);
111         NodeList querySelectorAll(in DOMString selectors)
112             raises(DOMException);
113
114         // WebKit extension, pending specification.
115         boolean webkitMatchesSelector(in DOMString selectors)
116             raises(DOMException);
117
118         // ElementTraversal API
119         readonly attribute Element firstElementChild;
120         readonly attribute Element lastElementChild;
121         readonly attribute Element previousElementSibling;
122         readonly attribute Element nextElementSibling;
123         readonly attribute unsigned long childElementCount;
124
125 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
126         // CSSOM View Module API
127         ClientRectList getClientRects();
128         ClientRect getBoundingClientRect();
129 #endif
130
131 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
132         // Objective-C extensions
133         readonly attribute DOMString innerText;
134 #endif
135
136 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
137         // Event handler DOM attributes
138         attribute [DontEnum] EventListener onabort;
139         attribute [DontEnum] EventListener onblur;
140         attribute [DontEnum] EventListener onchange;
141         attribute [DontEnum] EventListener onclick;
142         attribute [DontEnum] EventListener oncontextmenu;
143         attribute [DontEnum] EventListener ondblclick;
144         attribute [DontEnum] EventListener ondrag;
145         attribute [DontEnum] EventListener ondragend;
146         attribute [DontEnum] EventListener ondragenter;
147         attribute [DontEnum] EventListener ondragleave;
148         attribute [DontEnum] EventListener ondragover;
149         attribute [DontEnum] EventListener ondragstart;
150         attribute [DontEnum] EventListener ondrop;
151         attribute [DontEnum] EventListener onerror;
152         attribute [DontEnum] EventListener onfocus;
153         attribute [DontEnum] EventListener oninput;
154         attribute [DontEnum] EventListener oninvalid;
155         attribute [DontEnum] EventListener onkeydown;
156         attribute [DontEnum] EventListener onkeypress;
157         attribute [DontEnum] EventListener onkeyup;
158         attribute [DontEnum] EventListener onload;
159         attribute [DontEnum] EventListener onmousedown;
160         attribute [DontEnum] EventListener onmousemove;
161         attribute [DontEnum] EventListener onmouseout;
162         attribute [DontEnum] EventListener onmouseover;
163         attribute [DontEnum] EventListener onmouseup;
164         attribute [DontEnum] EventListener onmousewheel;
165         attribute [DontEnum] EventListener onscroll;
166         attribute [DontEnum] EventListener onselect;
167         attribute [DontEnum] EventListener onsubmit;
168
169         // attribute [DontEnum] EventListener oncanplay;
170         // attribute [DontEnum] EventListener oncanplaythrough;
171         // attribute [DontEnum] EventListener ondurationchange;
172         // attribute [DontEnum] EventListener onemptied;
173         // attribute [DontEnum] EventListener onended;
174         // attribute [DontEnum] EventListener onformchange;
175         // attribute [DontEnum] EventListener onforminput;
176         // attribute [DontEnum] EventListener onloadeddata;
177         // attribute [DontEnum] EventListener onloadedmetadata;
178         // attribute [DontEnum] EventListener onloadstart;
179         // attribute [DontEnum] EventListener onpause;
180         // attribute [DontEnum] EventListener onplay;
181         // attribute [DontEnum] EventListener onplaying;
182         // attribute [DontEnum] EventListener onprogress;
183         // attribute [DontEnum] EventListener onratechange;
184         // attribute [DontEnum] EventListener onreadystatechange;
185         // attribute [DontEnum] EventListener onseeked;
186         // attribute [DontEnum] EventListener onseeking;
187         // attribute [DontEnum] EventListener onshow;
188         // attribute [DontEnum] EventListener onstalled;
189         // attribute [DontEnum] EventListener onsuspend;
190         // attribute [DontEnum] EventListener ontimeupdate;
191         // attribute [DontEnum] EventListener onvolumechange;
192         // attribute [DontEnum] EventListener onwaiting;
193
194         // WebKit extensions
195         attribute [DontEnum] EventListener onbeforecut;
196         attribute [DontEnum] EventListener oncut;
197         attribute [DontEnum] EventListener onbeforecopy;
198         attribute [DontEnum] EventListener oncopy;
199         attribute [DontEnum] EventListener onbeforepaste;
200         attribute [DontEnum] EventListener onpaste;
201         attribute [DontEnum] EventListener onreset;
202         attribute [DontEnum] EventListener onsearch;
203         attribute [DontEnum] EventListener onselectstart;
204         attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchstart;
205         attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchmove;
206         attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchend;
207         attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchcancel;
208 #endif
209     };
210
211 }