[DOMJIT] Add DOMJIT::Signature
[WebKit-https.git] / Source / WebCore / dom / Element.idl
1 /*
2  * Copyright (C) 2006, 2007, 2009, 2015 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 [
22     CustomToJSObject,
23     JSCustomHeader,
24     JSGenerateToNativeObject,
25     ExportMacro=WEBCORE_EXPORT,
26 ] interface Element : Node {
27     readonly attribute DOMString? tagName;
28
29     [DOMJIT=ReadDOM] DOMString? getAttribute(DOMString name);
30
31     [CEReactions, MayThrowException] void setAttribute(DOMString name, DOMString value);
32
33     [CEReactions] void removeAttribute(DOMString name);
34     [DOMJIT=ReadDOM] Attr? getAttributeNode(DOMString name);
35
36     [CEReactions, MayThrowException] Attr? setAttributeNode(Attr newAttr);
37     [CEReactions, MayThrowException] Attr removeAttributeNode(Attr oldAttr);
38
39     [DOMJIT=ReadDOM] HTMLCollection getElementsByTagName(DOMString name);
40
41     readonly attribute NamedNodeMap attributes;
42     [DOMJIT=ReadDOM] boolean hasAttributes();
43
44     DOMString? getAttributeNS(DOMString? namespaceURI, DOMString localName);
45
46     [CEReactions, MayThrowException] void setAttributeNS(DOMString? namespaceURI, DOMString qualifiedName, DOMString value);
47     [CEReactions] void removeAttributeNS(DOMString? namespaceURI, DOMString localName);
48
49     HTMLCollection getElementsByTagNameNS(DOMString? namespaceURI, DOMString localName);
50
51     Attr? getAttributeNodeNS(DOMString? namespaceURI, DOMString localName);
52     [CEReactions, MayThrowException] Attr? setAttributeNodeNS(Attr newAttr);
53     boolean hasAttribute(DOMString name);
54
55     boolean hasAttributeNS(DOMString? namespaceURI, DOMString localName);
56
57     [ImplementedAs=cssomStyle] readonly attribute CSSStyleDeclaration style;
58
59     [CEReactions, Reflect] attribute DOMString id;
60
61     readonly attribute DOMString? namespaceURI;
62     readonly attribute DOMString? prefix;
63     readonly attribute DOMString localName;
64
65     readonly attribute double offsetLeft;
66     readonly attribute double offsetTop;
67     readonly attribute double offsetWidth;
68     readonly attribute double offsetHeight;
69     readonly attribute double clientLeft;
70     readonly attribute double clientTop;
71     readonly attribute double clientWidth;
72     readonly attribute double clientHeight;
73
74     attribute long scrollLeft; // FIXME: should be unrestricted double
75     attribute long scrollTop; // FIXME: should be unrestricted double
76     readonly attribute long scrollWidth;
77     readonly attribute long scrollHeight;
78
79     [ImplementedAs=bindingsOffsetParent] readonly attribute Element offsetParent;
80
81     void scrollIntoView(optional boolean alignWithTop = true);
82
83     void scrollIntoViewIfNeeded(optional boolean centerIfNeeded = true);
84
85     [ImplementedAs=scrollTo] void scroll(optional ScrollToOptions options);
86     [ImplementedAs=scrollTo] void scroll(unrestricted double x, unrestricted double y);
87
88     void scrollTo(optional ScrollToOptions options);
89     void scrollTo(unrestricted double x, unrestricted double y);
90
91     void scrollBy(optional ScrollToOptions option);
92     void scrollBy(unrestricted double x, unrestricted double y);
93
94     void scrollByLines(optional long lines = 0);
95     void scrollByPages(optional long pages = 0);
96
97     sequence<DOMString> getAttributeNames();
98
99     HTMLCollection getElementsByClassName(DOMString name);
100     [CEReactions, TreatNullAs=EmptyString, SetterMayThrowException] attribute DOMString innerHTML;
101     [CEReactions, TreatNullAs=EmptyString, SetterMayThrowException] attribute DOMString outerHTML;
102
103     [CEReactions, Reflect=class] attribute DOMString className;
104     [PutForwards=value] readonly attribute DOMTokenList classList;
105
106     [MayThrowException] boolean matches(DOMString selectors);
107     [MayThrowException] Element? closest(DOMString selectors);
108     [ImplementedAs=matches, MayThrowException] boolean webkitMatchesSelector(DOMString selectors);
109
110     // CSSOM View Module API
111     ClientRectList getClientRects();
112     ClientRect getBoundingClientRect();
113
114 #if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API
115     // Mozilla version
116     const unsigned short ALLOW_KEYBOARD_INPUT = 1;
117     void webkitRequestFullScreen(optional unsigned short flags = 0);
118
119     // W3C version
120     void webkitRequestFullscreen();
121 #endif
122
123 #if defined(ENABLE_INDIE_UI) && ENABLE_INDIE_UI
124     [CEReactions, Reflect] attribute DOMString uiactions;
125 #endif
126
127     [CEReactions, MayThrowException] Element? insertAdjacentElement(DOMString where, Element element);
128     [CEReactions, MayThrowException] void insertAdjacentHTML(DOMString where, DOMString html);
129     [MayThrowException] void insertAdjacentText(DOMString where, DOMString text);
130
131     [Conditional=POINTER_LOCK] void requestPointerLock();
132
133     // CSS Regions API
134     [Conditional=CSS_REGIONS] readonly attribute DOMString webkitRegionOverset;
135     [Conditional=CSS_REGIONS] sequence<Range> webkitGetRegionFlowRanges();
136
137     // Shadow DOM API
138     [EnabledAtRuntime=ShadowDOM, MayThrowException] ShadowRoot attachShadow(ShadowRootInit init);
139     [EnabledAtRuntime=ShadowDOM, ImplementedAs=shadowRootForBindings, CallWith=ScriptState] readonly attribute ShadowRoot shadowRoot;
140     [CEReactions, EnabledAtRuntime=ShadowDOM, Reflect] attribute DOMString slot;
141
142     // Event Handlers
143
144     // Unique to Element and Document
145     // FIXME: Should these be exposed on Window as well (and therefore moved to GlobalEventHandlers.idl)?
146     [NotEnumerable] attribute EventHandler onbeforecopy;
147     [NotEnumerable] attribute EventHandler onbeforecut;
148     [NotEnumerable] attribute EventHandler onbeforeinput;
149     [NotEnumerable] attribute EventHandler onbeforepaste;
150     [NotEnumerable] attribute EventHandler oncopy;
151     [NotEnumerable] attribute EventHandler oncut;
152     [NotEnumerable] attribute EventHandler onpaste;
153     [NotEnumerable] attribute EventHandler onselectstart;
154     [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventHandler onwebkitfullscreenchange;
155     [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventHandler onwebkitfullscreenerror;
156
157     // Unique to Element and DOMWindow
158     // FIXME: Should these be exposed on Document as well (and therefore moved to GlobalEventHandlers.idl)?
159     [NotEnumerable] attribute EventHandler onanimationend;
160     [NotEnumerable] attribute EventHandler onanimationiteration;
161     [NotEnumerable] attribute EventHandler onanimationstart;
162     [NotEnumerable] attribute EventHandler ontransitionend;
163     [NotEnumerable, ImplementedAs=onwebkitAnimationEnd] attribute EventHandler onwebkitanimationend;
164     [NotEnumerable, ImplementedAs=onwebkitAnimationIteration] attribute EventHandler onwebkitanimationiteration;
165     [NotEnumerable, ImplementedAs=onwebkitAnimationStart] attribute EventHandler onwebkitanimationstart;
166     [NotEnumerable, ImplementedAs=onwebkitTransitionEnd] attribute EventHandler onwebkittransitionend;
167     [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturechange;
168     [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongestureend;
169     [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturestart;
170
171     // Unique to Element, HTMLBodyElement and HTMLFrameSetElement
172     [NotEnumerable] attribute EventHandler onfocusin;
173     [NotEnumerable] attribute EventHandler onfocusout;
174
175     // Unique to Element
176     [NotEnumerable] attribute EventHandler onbeforeload;
177     [NotEnumerable, Conditional=LEGACY_ENCRYPTED_MEDIA] attribute EventHandler onwebkitneedkey;
178     [NotEnumerable, Conditional=VIDEO_PRESENTATION_MODE] attribute EventHandler onwebkitpresentationmodechanged;
179     [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventHandler onwebkitcurrentplaybacktargetiswirelesschanged;
180     [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventHandler onwebkitplaybacktargetavailabilitychanged;
181 };
182
183 dictionary ShadowRootInit {
184     required ShadowRootMode mode;
185 };
186
187 Element implements Animatable;
188 Element implements ChildNode;
189 Element implements NonDocumentTypeChildNode;
190 Element implements ParentNode;
191 Element implements Slotable;