Element.slot should be marked as [Unscopable]
[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, SetterMayThrowException] attribute [TreatNullAs=EmptyString] DOMString innerHTML;
101     [CEReactions, SetterMayThrowException] attribute [TreatNullAs=EmptyString] 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     sequence<DOMRect> getClientRects();
112     [NewObject] DOMRect getBoundingClientRect();
113
114 #if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API
115     // Mozilla version
116     [ImplementedAs=webkitRequestFullscreen] void webkitRequestFullScreen();
117
118     // W3C version
119     void webkitRequestFullscreen();
120 #endif
121
122     [CEReactions, MayThrowException] Element? insertAdjacentElement(DOMString where, Element element);
123     [CEReactions, MayThrowException] void insertAdjacentHTML(DOMString where, DOMString html);
124     [MayThrowException] void insertAdjacentText(DOMString where, DOMString text);
125
126     [Conditional=POINTER_LOCK] void requestPointerLock();
127
128     // CSS Regions API
129     [Conditional=CSS_REGIONS] readonly attribute DOMString webkitRegionOverset;
130     [Conditional=CSS_REGIONS] sequence<Range> webkitGetRegionFlowRanges();
131
132     // Shadow DOM API
133     [EnabledAtRuntime=ShadowDOM, MayThrowException] ShadowRoot attachShadow(ShadowRootInit init);
134     [EnabledAtRuntime=ShadowDOM, ImplementedAs=shadowRootForBindings, CallWith=ScriptState] readonly attribute ShadowRoot shadowRoot;
135     [CEReactions, EnabledAtRuntime=ShadowDOM, Reflect, Unscopable] attribute DOMString slot;
136
137     // Event Handlers
138
139     // Unique to Element and Document
140     // FIXME: Should these be exposed on Window as well (and therefore moved to GlobalEventHandlers.idl)?
141     [NotEnumerable] attribute EventHandler onbeforecopy;
142     [NotEnumerable] attribute EventHandler onbeforecut;
143     [NotEnumerable] attribute EventHandler onbeforeinput;
144     [NotEnumerable] attribute EventHandler onbeforepaste;
145     [NotEnumerable] attribute EventHandler oncopy;
146     [NotEnumerable] attribute EventHandler oncut;
147     [NotEnumerable] attribute EventHandler onpaste;
148     [NotEnumerable] attribute EventHandler onselectstart;
149     [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventHandler onwebkitfullscreenchange;
150     [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventHandler onwebkitfullscreenerror;
151
152     // Unique to Element and DOMWindow
153     // FIXME: Should these be exposed on Document as well (and therefore moved to GlobalEventHandlers.idl)?
154     [NotEnumerable] attribute EventHandler onanimationend;
155     [NotEnumerable] attribute EventHandler onanimationiteration;
156     [NotEnumerable] attribute EventHandler onanimationstart;
157     [NotEnumerable] attribute EventHandler ontransitionend;
158     [NotEnumerable, ImplementedAs=onwebkitAnimationEnd] attribute EventHandler onwebkitanimationend;
159     [NotEnumerable, ImplementedAs=onwebkitAnimationIteration] attribute EventHandler onwebkitanimationiteration;
160     [NotEnumerable, ImplementedAs=onwebkitAnimationStart] attribute EventHandler onwebkitanimationstart;
161     [NotEnumerable, ImplementedAs=onwebkitTransitionEnd] attribute EventHandler onwebkittransitionend;
162     [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturechange;
163     [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongestureend;
164     [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturestart;
165
166     // Unique to Element, HTMLBodyElement and HTMLFrameSetElement
167     [NotEnumerable] attribute EventHandler onfocusin;
168     [NotEnumerable] attribute EventHandler onfocusout;
169
170     // Unique to Element
171     [NotEnumerable] attribute EventHandler onbeforeload;
172     [NotEnumerable, Conditional=LEGACY_ENCRYPTED_MEDIA] attribute EventHandler onwebkitneedkey;
173     [NotEnumerable, Conditional=VIDEO_PRESENTATION_MODE] attribute EventHandler onwebkitpresentationmodechanged;
174     [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventHandler onwebkitcurrentplaybacktargetiswirelesschanged;
175     [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventHandler onwebkitplaybacktargetavailabilitychanged;
176 };
177
178 dictionary ShadowRootInit {
179     required ShadowRootMode mode;
180 };
181
182 Element implements Animatable;
183 Element implements ChildNode;
184 Element implements NonDocumentTypeChildNode;
185 Element implements ParentNode;
186 Element implements Slotable;