Add ENABLE_DIALOG_ELEMENT and skeleton files
[WebKit-https.git] / Source / WebCore / page / DOMWindow.idl
1 /*
2  * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3  * Copyright (C) 2011 Google Inc. All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  *    notice, this list of conditions and the following disclaimer in the
12  *    documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
15  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
18  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25  */
26
27 module window {
28
29     interface [
30         CheckSecurity,
31         JSCustomDefineOwnProperty,
32         CustomDeleteProperty,
33         CustomGetOwnPropertySlot,
34         CustomEnumerateProperty,
35         JSCustomMarkFunction,
36         JSCustomToNativeObject,
37         CustomPutFunction,
38         EventTarget,
39         ExtendsDOMGlobalObject,
40         JSGenerateToNativeObject,
41         ReplaceableConstructor,
42         JSLegacyParent=JSDOMWindowBase,
43         V8CustomToJSObject,
44         InterfaceName=Window
45     ] DOMWindow {
46         // DOM Level 0
47         attribute [Replaceable] Screen screen;
48         attribute [Replaceable, DoNotCheckSecurityOnGetter] History history;
49         attribute [Replaceable] BarInfo locationbar;
50         attribute [Replaceable] BarInfo menubar;
51         attribute [Replaceable] BarInfo personalbar;
52         attribute [Replaceable] BarInfo scrollbars;
53         attribute [Replaceable] BarInfo statusbar;
54         attribute [Replaceable] BarInfo toolbar;
55         attribute [Replaceable] Navigator navigator;
56         attribute [Replaceable] Navigator clientInformation;
57         readonly attribute Crypto crypto;
58 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
59         attribute [DoNotCheckSecurity, CustomSetter, V8Unforgeable] Location location;
60 #endif
61         attribute [Replaceable, CustomGetter, V8CustomSetter] Event event;
62
63         DOMSelection getSelection();
64
65         readonly attribute [CheckSecurityForNode] Element frameElement;
66
67         [DoNotCheckSecurity, CallWith=ScriptExecutionContext] void focus();
68         [DoNotCheckSecurity] void blur();
69         [DoNotCheckSecurity, CallWith=ScriptExecutionContext] void close();
70
71         void print();
72         void stop();
73
74         [Custom] DOMWindow open(in DOMString url,
75                                 in DOMString name,
76                                 in [Optional] DOMString options);
77
78         [Custom] DOMObject showModalDialog(in DOMString url,
79                                            in [Optional] DOMObject dialogArgs,
80                                            in [Optional] DOMString featureArgs);
81
82         void alert(in [Optional=DefaultIsUndefined] DOMString message);
83         boolean confirm(in [Optional=DefaultIsUndefined] DOMString message);
84         [TreatReturnedNullStringAs=Null] DOMString prompt(in [Optional=DefaultIsUndefined] DOMString message,
85                                                     in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString defaultValue);
86
87         boolean find(in [Optional=DefaultIsUndefined] DOMString string,
88                      in [Optional=DefaultIsUndefined] boolean caseSensitive,
89                      in [Optional=DefaultIsUndefined] boolean backwards,
90                      in [Optional=DefaultIsUndefined] boolean wrap,
91                      in [Optional=DefaultIsUndefined] boolean wholeWord,
92                      in [Optional=DefaultIsUndefined] boolean searchInFrames,
93                      in [Optional=DefaultIsUndefined] boolean showDialog);
94
95         attribute [Replaceable] boolean offscreenBuffering;
96
97         attribute [Replaceable] long outerHeight;
98         attribute [Replaceable] long outerWidth;
99         attribute [Replaceable] long innerHeight;
100         attribute [Replaceable] long innerWidth;
101         attribute [Replaceable] long screenX;
102         attribute [Replaceable] long screenY;
103         attribute [Replaceable] long screenLeft;
104         attribute [Replaceable] long screenTop;
105         attribute [Replaceable] long scrollX;
106         attribute [Replaceable] long scrollY;
107         readonly attribute long pageXOffset;
108         readonly attribute long pageYOffset;
109
110         void scrollBy(in [Optional=DefaultIsUndefined] long x, in [Optional=DefaultIsUndefined] long y);
111         void scrollTo(in [Optional=DefaultIsUndefined] long x, in [Optional=DefaultIsUndefined] long y);
112         void scroll(in [Optional=DefaultIsUndefined] long x, in [Optional=DefaultIsUndefined] long y);
113         void moveBy(in [Optional=DefaultIsUndefined] float x, in [Optional=DefaultIsUndefined] float y); // FIXME: this should take longs not floats.
114         void moveTo(in [Optional=DefaultIsUndefined] float x, in [Optional=DefaultIsUndefined] float y); // FIXME: this should take longs not floats.
115         void resizeBy(in [Optional=DefaultIsUndefined] float x, in [Optional=DefaultIsUndefined] float y); // FIXME: this should take longs not floats.
116         void resizeTo(in [Optional=DefaultIsUndefined] float width, in [Optional=DefaultIsUndefined] float height); // FIXME: this should take longs not floats.
117
118         readonly attribute [DoNotCheckSecurity] boolean closed;
119
120         attribute [Replaceable, DoNotCheckSecurityOnGetter] unsigned long length;
121
122         attribute DOMString name;
123
124         attribute DOMString status;
125         attribute DOMString defaultStatus;
126 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
127         // This attribute is an alias of defaultStatus and is necessary for legacy uses.
128         attribute DOMString defaultstatus;
129 #endif
130
131         // Self referential attributes
132         attribute [Replaceable, DoNotCheckSecurityOnGetter] DOMWindow self;
133         readonly attribute [DoNotCheckSecurity, V8Unforgeable] DOMWindow window;
134         attribute [Replaceable, DoNotCheckSecurityOnGetter] DOMWindow frames;
135
136         attribute [Replaceable, DoNotCheckSecurityOnGetter, V8CustomSetter] DOMWindow opener;
137         attribute [Replaceable, DoNotCheckSecurityOnGetter] DOMWindow parent;
138         attribute [Replaceable, DoNotCheckSecurityOnGetter, V8Unforgeable, V8ReadOnly] DOMWindow top;
139
140         // DOM Level 2 AbstractView Interface
141         readonly attribute Document document;
142
143         // CSSOM View Module
144         MediaQueryList matchMedia(in DOMString query);
145
146         // styleMedia has been removed from the CSSOM View specification.
147         readonly attribute StyleMedia styleMedia;
148
149         // DOM Level 2 Style Interface
150         CSSStyleDeclaration getComputedStyle(in [Optional=DefaultIsUndefined] Element element,
151                                              in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString pseudoElement);
152
153         // WebKit extensions
154 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
155         CSSRuleList getMatchedCSSRules(in [Optional=DefaultIsUndefined] Element element,
156                                        in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString pseudoElement);
157 #endif
158
159         attribute [Replaceable] double devicePixelRatio;
160         
161         WebKitPoint webkitConvertPointFromPageToNode(in [Optional=DefaultIsUndefined] Node node, 
162                                                      in [Optional=DefaultIsUndefined] WebKitPoint p);
163         WebKitPoint webkitConvertPointFromNodeToPage(in [Optional=DefaultIsUndefined] Node node, 
164                                                      in [Optional=DefaultIsUndefined] WebKitPoint p);
165
166         readonly attribute [V8EnabledAtRuntime] DOMApplicationCache applicationCache;
167
168         readonly attribute [V8EnabledAtRuntime] Storage sessionStorage
169             getter raises(DOMException);
170         readonly attribute [V8EnabledAtRuntime] Storage localStorage
171             getter raises(DOMException);
172
173 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
174         // This is the interface orientation in degrees. Some examples are:
175         //  0 is straight up; -90 is when the device is rotated 90 clockwise;
176         //  90 is when rotated counter clockwise.
177         readonly attribute long orientation;
178 #endif
179
180                  attribute [Replaceable] Console console;
181
182         // cross-document messaging
183 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
184         [DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in DOMString targetOrigin)
185             raises(DOMException);
186         [DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in DOMString targetOrigin, in Array messagePorts)
187             raises(DOMException);
188
189         [DoNotCheckSecurity, Custom] void webkitPostMessage(in SerializedScriptValue message, in DOMString targetOrigin)
190             raises(DOMException);
191         [DoNotCheckSecurity, Custom] void webkitPostMessage(in SerializedScriptValue message, in DOMString targetOrigin, in Array transferList)
192             raises(DOMException);
193 #else
194         // There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port.
195         [DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] MessagePort messagePort, in DOMString targetOrigin)
196             raises(DOMException);
197 #endif
198
199 #if defined(ENABLE_WEB_TIMING) && ENABLE_WEB_TIMING
200         attribute [Replaceable] Performance performance;
201 #endif
202
203         // Timers
204         [Custom] long setTimeout(in [Optional=DefaultIsUndefined] TimeoutHandler handler, 
205                                  in [Optional=DefaultIsUndefined] long timeout);
206         // [Custom] long setTimeout(in TimeoutHandler handler, in long timeout, arguments...);
207         // [Custom] long setTimeout(in DOMString code, in long timeout);
208         void clearTimeout(in [Optional=DefaultIsUndefined] long handle);
209         [Custom] long setInterval(in TimeoutHandler handler, in long timeout);
210         // [Custom] long setInterval(in TimeoutHandler handler, in long timeout, arguments...);
211         // [Custom] long setInterval(in DOMString code, in long timeout);
212         void clearInterval(in [Optional=DefaultIsUndefined] long handle);
213
214 #if defined(ENABLE_REQUEST_ANIMATION_FRAME)
215         // WebKit animation extensions, being standardized in the WebPerf WG
216         long webkitRequestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback);
217         void webkitCancelAnimationFrame(in long id);
218         void webkitCancelRequestAnimationFrame(in long id); // This is a deprecated alias for webkitCancelAnimationFrame(). Remove this when removing vendor prefix.
219 #endif
220
221         // Base64
222         DOMString atob(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString string)
223             raises(DOMException);
224         DOMString btoa(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString string)
225             raises(DOMException);
226
227         // Events
228         attribute EventListener onabort;
229         attribute EventListener onbeforeunload;
230         attribute EventListener onblur;
231         attribute EventListener oncanplay;
232         attribute EventListener oncanplaythrough;
233         attribute EventListener onchange;
234         attribute EventListener onclick;
235         attribute EventListener oncontextmenu;
236         attribute EventListener ondblclick;
237         attribute EventListener ondrag;
238         attribute EventListener ondragend;
239         attribute EventListener ondragenter;
240         attribute EventListener ondragleave;
241         attribute EventListener ondragover;
242         attribute EventListener ondragstart;
243         attribute EventListener ondrop;
244         attribute EventListener ondurationchange;
245         attribute EventListener onemptied;
246         attribute EventListener onended;
247         attribute EventListener onerror;
248         attribute EventListener onfocus;
249         attribute EventListener onhashchange;
250         attribute EventListener oninput;
251         attribute EventListener oninvalid;
252         attribute EventListener onkeydown;
253         attribute EventListener onkeypress;
254         attribute EventListener onkeyup;
255         attribute EventListener onload;
256         attribute EventListener onloadeddata;
257         attribute EventListener onloadedmetadata;
258         attribute EventListener onloadstart;
259         attribute EventListener onmessage;
260         attribute EventListener onmousedown;
261         attribute EventListener onmousemove;
262         attribute EventListener onmouseout;
263         attribute EventListener onmouseover;
264         attribute EventListener onmouseup;
265         attribute EventListener onmousewheel;
266         attribute EventListener onoffline;
267         attribute EventListener ononline;
268         attribute EventListener onpagehide;
269         attribute EventListener onpageshow;
270         attribute EventListener onpause;
271         attribute EventListener onplay;
272         attribute EventListener onplaying;
273         attribute EventListener onpopstate;
274         attribute EventListener onprogress;
275         attribute EventListener onratechange;
276         attribute EventListener onresize;
277         attribute EventListener onscroll;
278         attribute EventListener onseeked;
279         attribute EventListener onseeking;
280         attribute EventListener onselect;
281         attribute EventListener onstalled;
282         attribute EventListener onstorage;
283         attribute EventListener onsubmit;
284         attribute EventListener onsuspend;
285         attribute EventListener ontimeupdate;
286         attribute EventListener onunload;
287         attribute EventListener onvolumechange;
288         attribute EventListener onwaiting;
289
290         // Not implemented yet.
291         // attribute EventListener onafterprint;
292         // attribute EventListener onbeforeprint;
293         // attribute EventListener onreadystatechange;
294         // attribute EventListener onredo;
295         // attribute EventListener onshow;
296         // attribute EventListener onundo;
297
298         // Webkit extensions
299         attribute EventListener onreset;
300         attribute EventListener onsearch;
301         attribute EventListener onwebkitanimationend;
302         attribute EventListener onwebkitanimationiteration;
303         attribute EventListener onwebkitanimationstart;
304         attribute EventListener onwebkittransitionend;
305 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
306         attribute EventListener onorientationchange;
307 #endif
308         attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchstart;
309         attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchmove;
310         attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchend;
311         attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchcancel;
312
313         attribute [Conditional=DEVICE_ORIENTATION,V8EnabledAtRuntime] EventListener ondevicemotion;
314         attribute [Conditional=DEVICE_ORIENTATION,V8EnabledAtRuntime] EventListener ondeviceorientation;
315
316         // EventTarget interface
317         [Custom] void addEventListener(in DOMString type,
318                                       in EventListener listener,
319                                       in [Optional] boolean useCapture);
320         [Custom] void removeEventListener(in DOMString type,
321                                           in EventListener listener,
322                                           in [Optional] boolean useCapture);
323         boolean dispatchEvent(in Event evt)
324             raises(EventException);
325
326         [V8Custom] void captureEvents(/*in long eventFlags*/);
327         [V8Custom] void releaseEvents(/*in long eventFlags*/);
328
329 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
330         // Global constructors
331         attribute StyleSheetConstructor StyleSheet;
332         attribute CSSStyleSheetConstructor CSSStyleSheet;
333
334         attribute CSSValueConstructor CSSValue;
335         attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
336         attribute CSSValueListConstructor CSSValueList;
337         attribute WebKitCSSTransformValueConstructor WebKitCSSTransformValue;
338
339 #if defined(ENABLE_CSS_FILTERS) && ENABLE_CSS_FILTERS
340         attribute WebKitCSSFilterValueConstructor WebKitCSSFilterValue;
341 #endif
342
343         attribute CSSRuleConstructor CSSRule;
344         attribute CSSCharsetRuleConstructor CSSCharsetRule;
345         attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
346         attribute CSSImportRuleConstructor CSSImportRule;
347         attribute CSSMediaRuleConstructor CSSMediaRule;
348         attribute CSSPageRuleConstructor CSSPageRule;
349         attribute CSSStyleRuleConstructor CSSStyleRule;
350         
351         attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
352         attribute MediaListConstructor MediaList;
353         attribute CounterConstructor Counter;
354         attribute CSSRuleListConstructor CSSRuleList;
355         attribute RectConstructor Rect;
356         attribute RGBColorConstructor RGBColor;
357         attribute StyleSheetListConstructor StyleSheetList;
358
359         // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
360         attribute DOMCoreExceptionConstructor DOMException;
361         attribute DOMStringListConstructor DOMStringList;
362 //        attribute NameListConstructor NameList;
363 //        attribute DOMImplementationListConstructor DOMImplementationList;
364 //        attribute DOMImplementationSourceConstructor DOMImplementationSource;
365         attribute DOMImplementationConstructor DOMImplementation;
366         attribute DOMSettableTokenListConstructor DOMSettableTokenList;
367         attribute DOMTokenListConstructor DOMTokenList;
368         attribute DocumentFragmentConstructor DocumentFragment;
369         attribute DocumentConstructor Document;
370         attribute NodeConstructor Node;
371         attribute NodeListConstructor NodeList;
372         attribute NamedNodeMapConstructor NamedNodeMap;
373         attribute CharacterDataConstructor CharacterData;
374         attribute AttrConstructor Attr;
375         attribute ElementConstructor Element;
376         attribute TextConstructor Text;
377         attribute CommentConstructor Comment;
378 //        attribute TypeInfoConstructor TypeInfo;
379 //        attribute UserDataHandlerConstructor UserDataHandler;
380 //        attribute DOMErrorConstructor DOMError;
381 //        attribute DOMErrorHandlerConstructor DOMErrorHandler
382 //        attribute DOMLocatorConstructor DOMLocator;
383 //        attribute DOMConfigurationConstructor DOMConfiguration;
384         attribute CDATASectionConstructor CDATASection;
385         attribute DocumentTypeConstructor DocumentType;
386         attribute NotationConstructor Notation;
387         attribute EntityConstructor Entity;
388         attribute EntityReferenceConstructor EntityReference;
389         attribute ProcessingInstructionConstructor ProcessingInstruction;
390         attribute [Conditional=SHADOW_DOM, V8EnabledPerContext=shadowDOM] ShadowRootConstructor WebKitShadowRoot;
391         attribute [Conditional=SHADOW_DOM, V8EnabledPerContext=shadowDOM] HTMLContentElementConstructor HTMLContentElement;
392         attribute [Conditional=SHADOW_DOM, V8EnabledPerContext=shadowDOM] HTMLShadowElementConstructor HTMLShadowElement;
393
394         attribute DOMSelectionConstructor Selection;
395         attribute DOMWindowConstructor Window;
396
397         attribute HTMLDocumentConstructor HTMLDocument;
398         attribute HTMLElementConstructor HTMLElement;
399         attribute HTMLAnchorElementConstructor HTMLAnchorElement;
400         attribute HTMLAppletElementConstructor HTMLAppletElement;
401         attribute HTMLAreaElementConstructor HTMLAreaElement;
402         attribute HTMLBRElementConstructor HTMLBRElement;
403         attribute HTMLBaseElementConstructor HTMLBaseElement;
404         attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
405         attribute HTMLBodyElementConstructor HTMLBodyElement;
406         attribute HTMLButtonElementConstructor HTMLButtonElement;
407         attribute HTMLCanvasElementConstructor HTMLCanvasElement;
408         attribute HTMLDListElementConstructor HTMLDListElement;
409         attribute [Conditional=DATALIST] HTMLDataListElementConstructor HTMLDataListElement;
410         attribute [Conditional=DIALOG_ELEMENT, V8EnabledPerContext=dialogElement] HTMLDialogElementConstructor HTMLDialogElement;
411         attribute HTMLDirectoryElementConstructor HTMLDirectoryElement;
412         attribute HTMLDivElementConstructor HTMLDivElement;
413         attribute HTMLEmbedElementConstructor HTMLEmbedElement;
414         attribute HTMLFieldSetElementConstructor HTMLFieldSetElement;
415         attribute HTMLFontElementConstructor HTMLFontElement;
416         attribute HTMLFormElementConstructor HTMLFormElement;
417         attribute HTMLFrameElementConstructor HTMLFrameElement;
418         attribute HTMLFrameSetElementConstructor HTMLFrameSetElement;
419         attribute HTMLHRElementConstructor HTMLHRElement;
420         attribute HTMLHeadElementConstructor HTMLHeadElement;
421         attribute HTMLHeadingElementConstructor HTMLHeadingElement;
422         attribute HTMLHtmlElementConstructor HTMLHtmlElement;
423         attribute HTMLIFrameElementConstructor HTMLIFrameElement;
424         attribute HTMLImageElementConstructor HTMLImageElement;
425         attribute HTMLInputElementConstructor HTMLInputElement;
426         attribute HTMLKeygenElementConstructor HTMLKeygenElement;
427         attribute HTMLLIElementConstructor HTMLLIElement;
428         attribute HTMLLabelElementConstructor HTMLLabelElement;
429         attribute HTMLLegendElementConstructor HTMLLegendElement;
430         attribute HTMLLinkElementConstructor HTMLLinkElement;
431         attribute HTMLMapElementConstructor HTMLMapElement;
432         attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
433         attribute HTMLMenuElementConstructor HTMLMenuElement;
434         attribute HTMLMetaElementConstructor HTMLMetaElement;
435 #if defined(ENABLE_METER_TAG) && ENABLE_METER_TAG
436         attribute HTMLMeterElementConstructor HTMLMeterElement;
437 #endif
438         attribute HTMLModElementConstructor HTMLModElement;
439         attribute HTMLOListElementConstructor HTMLOListElement;
440         attribute HTMLObjectElementConstructor HTMLObjectElement;
441         attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
442         attribute HTMLOptionElementConstructor HTMLOptionElement;
443         attribute HTMLOutputElementConstructor HTMLOutputElement;
444         attribute HTMLParagraphElementConstructor HTMLParagraphElement;
445         attribute HTMLParamElementConstructor HTMLParamElement;
446         attribute HTMLPreElementConstructor HTMLPreElement;
447 #if defined(ENABLE_PROGRESS_TAG) && ENABLE_PROGRESS_TAG
448         attribute HTMLProgressElementConstructor HTMLProgressElement;
449 #endif
450         attribute HTMLQuoteElementConstructor HTMLQuoteElement;
451         attribute HTMLScriptElementConstructor HTMLScriptElement;
452         attribute HTMLSelectElementConstructor HTMLSelectElement;
453         attribute HTMLSpanElementConstructor HTMLSpanElement;
454         attribute HTMLStyleElementConstructor HTMLStyleElement;
455         attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement;
456         attribute HTMLTableCellElementConstructor HTMLTableCellElement;
457         attribute HTMLTableColElementConstructor HTMLTableColElement;
458         attribute HTMLTableElementConstructor HTMLTableElement;
459         attribute HTMLTableRowElementConstructor HTMLTableRowElement;
460         attribute HTMLTableSectionElementConstructor HTMLTableSectionElement;
461         attribute HTMLTextAreaElementConstructor HTMLTextAreaElement;
462         attribute HTMLTitleElementConstructor HTMLTitleElement;
463         attribute HTMLUListElementConstructor HTMLUListElement;
464
465         attribute HTMLCollectionConstructor HTMLCollection;
466         attribute HTMLAllCollectionConstructor HTMLAllCollection;
467         attribute [Conditional=MICRODATA] HTMLPropertiesCollectionConstructor HTMLPropertiesCollection;
468         attribute HTMLUnknownElementConstructor HTMLUnknownElement;
469
470         attribute [JSCustomGetter, CustomConstructor] HTMLImageElementConstructorConstructor Image; // Usable with new operator
471         attribute [JSCustomGetter] HTMLOptionElementConstructorConstructor Option; // Usable with new operator
472
473         attribute [Conditional=ENCRYPTED_MEDIA, V8EnabledAtRuntime=encryptedMedia] MediaKeyErrorConstructor MediaKeyError;
474         attribute [Conditional=ENCRYPTED_MEDIA, V8EnabledAtRuntime=encryptedMedia] MediaKeyEventConstructor MediaKeyEvent;
475
476         attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] HTMLTrackElementConstructor HTMLTrackElement;
477         attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackConstructor TextTrack;
478         attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackCueConstructor TextTrackCue; // Usable with the new operator
479         attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackCueListConstructor TextTrackCueList;
480         attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackListConstructor TextTrackList;
481         attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TrackEventConstructor TrackEvent;
482
483         attribute [JSCustomGetter, Conditional=VIDEO, V8EnabledAtRuntime] HTMLAudioElementConstructorConstructor Audio; // Usable with the new operator
484         attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLAudioElementConstructor HTMLAudioElement;
485         attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLMediaElementConstructor HTMLMediaElement;
486         attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLVideoElementConstructor HTMLVideoElement;
487         attribute [Conditional=VIDEO, V8EnabledAtRuntime] MediaErrorConstructor MediaError;
488         attribute [Conditional=VIDEO, V8EnabledAtRuntime] TimeRangesConstructor TimeRanges;
489         attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLSourceElementConstructor HTMLSourceElement;
490         attribute [Conditional=VIDEO, V8EnabledAtRuntime] MediaControllerConstructor MediaController;
491
492         attribute [Conditional=WEB_INTENTS_TAG] HTMLIntentElementConstructor HTMLIntentElement;
493
494         attribute CanvasPatternConstructor CanvasPattern;
495         attribute CanvasGradientConstructor CanvasGradient;
496         attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
497
498         attribute ImageDataConstructor ImageData;
499         attribute TextMetricsConstructor TextMetrics;
500
501         attribute [Conditional=WEBGL] WebGLActiveInfoConstructor WebGLActiveInfo;
502         attribute [Conditional=WEBGL] WebGLBufferConstructor WebGLBuffer;
503         attribute [Conditional=WEBGL] WebGLFramebufferConstructor WebGLFramebuffer;
504         attribute [Conditional=WEBGL] WebGLProgramConstructor WebGLProgram;
505         attribute [Conditional=WEBGL] WebGLRenderbufferConstructor WebGLRenderbuffer;
506         attribute [Conditional=WEBGL] WebGLRenderingContextConstructor WebGLRenderingContext;
507         attribute [Conditional=WEBGL] WebGLShaderConstructor WebGLShader;
508         attribute [Conditional=WEBGL] WebGLShaderPrecisionFormatConstructor WebGLShaderPrecisionFormat;
509         attribute [Conditional=WEBGL] WebGLTextureConstructor WebGLTexture;
510         attribute [Conditional=WEBGL] WebGLUniformLocationConstructor WebGLUniformLocation;
511
512         attribute DOMStringMapConstructor DOMStringMap;
513
514         attribute ArrayBufferConstructor ArrayBuffer; // Usable with new operator
515         attribute Int8ArrayConstructor Int8Array; // Usable with new operator
516         attribute Uint8ArrayConstructor Uint8Array; // Usable with new operator
517         attribute Uint8ClampedArrayConstructor Uint8ClampedArray; // Usable with new operator
518         attribute Int16ArrayConstructor Int16Array; // Usable with new operator
519         attribute Uint16ArrayConstructor Uint16Array; // Usable with new operator
520         attribute Int32ArrayConstructor Int32Array; // Usable with new operator
521         attribute Uint32ArrayConstructor Uint32Array; // Usable with new operator
522         attribute Float32ArrayConstructor Float32Array; // Usable with new operator
523         attribute Float64ArrayConstructor Float64Array; // Usable with new operator
524         attribute DataViewConstructor DataView; // Usable with new operator
525
526         // Event Constructors
527         attribute EventConstructor Event;
528         attribute BeforeLoadEventConstructor BeforeLoadEvent;
529         attribute CompositionEventConstructor CompositionEvent;
530         attribute CustomEventConstructor CustomEvent;
531         attribute ErrorEventConstructor ErrorEvent;
532         attribute HashChangeEventConstructor HashChangeEvent;
533         attribute KeyboardEventConstructor KeyboardEvent;
534         attribute MessageEventConstructor MessageEvent;
535         attribute MouseEventConstructor MouseEvent;
536         attribute MutationEventConstructor MutationEvent;
537         attribute OverflowEventConstructor OverflowEvent;
538         attribute PopStateEventConstructor PopStateEvent;
539         attribute PageTransitionEventConstructor PageTransitionEvent;
540         attribute ProgressEventConstructor ProgressEvent;
541         attribute TextEventConstructor TextEvent;
542         attribute UIEventConstructor UIEvent;
543         attribute WebKitAnimationEventConstructor WebKitAnimationEvent;
544         attribute WebKitTransitionEventConstructor WebKitTransitionEvent;
545         attribute WheelEventConstructor WheelEvent;
546         attribute XMLHttpRequestProgressEventConstructor XMLHttpRequestProgressEvent;
547         attribute [Conditional=DEVICE_ORIENTATION, V8EnabledAtRuntime] DeviceMotionEventConstructor DeviceMotionEvent;
548         attribute [Conditional=DEVICE_ORIENTATION, V8EnabledAtRuntime] DeviceOrientationEventConstructor DeviceOrientationEvent;
549         attribute [Conditional=TOUCH_EVENTS] TouchEventConstructor TouchEvent;
550         attribute StorageEventConstructor StorageEvent;
551         attribute [Conditional=INPUT_SPEECH] SpeechInputEventConstructor SpeechInputEvent;
552         attribute [Conditional=WEBGL] WebGLContextEventConstructor WebGLContextEvent;
553
554         attribute EventExceptionConstructor EventException;
555
556         attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
557         attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
558         attribute [Conditional=CSS_REGIONS] WebKitCSSRegionRuleConstructor WebKitCSSRegionRule;
559
560         attribute WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
561
562         attribute WebKitPointConstructor WebKitPoint; // Usable with new the operator
563
564         attribute ClipboardConstructor Clipboard;
565
566         attribute [Conditional=WORKERS] WorkerConstructor Worker; // Usable with the new operator
567         attribute [Conditional=SHARED_WORKERS, JSCustomGetter, V8EnabledAtRuntime] SharedWorkerConstructor SharedWorker; // Usable with the new operator
568
569         attribute FileConstructor File;
570         attribute FileListConstructor FileList;
571         attribute BlobConstructor Blob;
572
573         attribute NodeFilterConstructor NodeFilter;
574         attribute RangeConstructor Range;
575         attribute RangeExceptionConstructor RangeException;
576
577         attribute EventSourceConstructor EventSource; // Usable with new the operator
578
579         // Mozilla has a separate XMLDocument object for XML documents. 
580         // We just use Document for this.
581         attribute DocumentConstructor XMLDocument;
582         attribute DOMParserConstructor DOMParser;
583         attribute XMLSerializerConstructor XMLSerializer;
584         attribute XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
585         attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
586         attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
587         attribute [Conditional=XSLT] XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
588
589 #if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
590         attribute MessagePortConstructor MessagePort;
591         attribute MessageChannelConstructor MessageChannel; // Usable with the new operator
592 #endif
593
594         attribute DOMPluginConstructor Plugin;
595         attribute DOMPluginArrayConstructor PluginArray;
596
597         attribute DOMMimeTypeConstructor MimeType;
598         attribute DOMMimeTypeArrayConstructor MimeTypeArray;
599
600         attribute ClientRectConstructor ClientRect;
601         attribute ClientRectListConstructor ClientRectList;
602
603         attribute StorageConstructor Storage;
604
605 #if defined(ENABLE_ANIMATION_API) && ENABLE_ANIMATION_API
606         attribute WebKitAnimationConstructor WebKitAnimation;
607         attribute WebKitAnimationListConstructor WebKitAnimationList;
608 #endif
609
610         attribute XPathEvaluatorConstructor XPathEvaluator;
611         attribute XPathResultConstructor XPathResult;
612         attribute XPathExceptionConstructor XPathException;
613
614         attribute [Conditional=SVG] SVGZoomEventConstructor SVGZoomEvent;
615
616 #if defined(ENABLE_SVG) && ENABLE_SVG
617         // Expose all implemented SVG 1.1 interfaces, excluding the SVG MI interfaces:
618         // SVGAnimatedPathData, SVGAnimatedPoints, SVGExternalResourcesRequired,
619         // SVGFilterPrimitiveStandardAttributes, SVGFitToViewBox, SVGLangSpace, SVGLocatable
620         // SVGStylable, SVGTests, SVGTransformable, SVGURIReference, SVGZoomAndPan
621         attribute SVGAElementConstructor SVGAElement;
622         attribute SVGAngleConstructor SVGAngle;
623         attribute SVGAnimatedAngleConstructor SVGAnimatedAngle;
624         attribute SVGAnimatedBooleanConstructor SVGAnimatedBoolean;
625         attribute SVGAnimatedEnumerationConstructor SVGAnimatedEnumeration;
626         attribute SVGAnimatedIntegerConstructor SVGAnimatedInteger;
627         attribute SVGAnimatedLengthConstructor SVGAnimatedLength;
628         attribute SVGAnimatedLengthListConstructor SVGAnimatedLengthList;
629         attribute SVGAnimatedNumberConstructor SVGAnimatedNumber;
630         attribute SVGAnimatedNumberListConstructor SVGAnimatedNumberList;
631         attribute SVGAnimatedPreserveAspectRatioConstructor SVGAnimatedPreserveAspectRatio;
632         attribute SVGAnimatedRectConstructor SVGAnimatedRect;
633         attribute SVGAnimatedStringConstructor SVGAnimatedString;
634         attribute SVGAnimatedTransformListConstructor SVGAnimatedTransformList;
635         attribute SVGCircleElementConstructor SVGCircleElement;
636         attribute SVGClipPathElementConstructor SVGClipPathElement;
637         attribute SVGColorConstructor SVGColor;
638         attribute SVGCursorElementConstructor SVGCursorElement;
639 //      attribute SVGCSSRuleConstructor SVGCSSRule;
640         attribute SVGDefsElementConstructor SVGDefsElement;
641         attribute SVGDescElementConstructor SVGDescElement;
642         attribute SVGDocumentConstructor SVGDocument;
643         attribute SVGElementConstructor SVGElement;
644         attribute SVGElementInstanceConstructor SVGElementInstance;
645         attribute SVGElementInstanceListConstructor SVGElementInstanceList;
646         attribute SVGEllipseElementConstructor SVGEllipseElement;
647         attribute SVGForeignObjectElementConstructor SVGForeignObjectElement;
648         attribute SVGExceptionConstructor SVGException;
649         attribute SVGGElementConstructor SVGGElement;
650         attribute SVGGradientElementConstructor SVGGradientElement;
651         attribute SVGImageElementConstructor SVGImageElement;
652         attribute SVGLengthConstructor SVGLength;
653         attribute SVGLengthListConstructor SVGLengthList;
654         attribute SVGLinearGradientElementConstructor SVGLinearGradientElement;
655         attribute SVGLineElementConstructor SVGLineElement;
656         attribute SVGMarkerElementConstructor SVGMarkerElement;
657         attribute SVGMaskElementConstructor SVGMaskElement;
658         attribute SVGMatrixConstructor SVGMatrix;
659         attribute SVGMetadataElementConstructor SVGMetadataElement;
660         attribute SVGNumberConstructor SVGNumber;
661         attribute SVGNumberListConstructor SVGNumberList;
662         attribute SVGPaintConstructor SVGPaint;
663         attribute SVGPathElementConstructor SVGPathElement;
664         attribute SVGPathSegConstructor SVGPathSeg;
665         attribute SVGPathSegArcAbsConstructor SVGPathSegArcAbs;
666         attribute SVGPathSegArcRelConstructor SVGPathSegArcRel;
667         attribute SVGPathSegClosePathConstructor SVGPathSegClosePath;
668         attribute SVGPathSegCurvetoCubicAbsConstructor SVGPathSegCurvetoCubicAbs;
669         attribute SVGPathSegCurvetoCubicRelConstructor SVGPathSegCurvetoCubicRel;
670         attribute SVGPathSegCurvetoCubicSmoothAbsConstructor SVGPathSegCurvetoCubicSmoothAbs;
671         attribute SVGPathSegCurvetoCubicSmoothRelConstructor SVGPathSegCurvetoCubicSmoothRel;
672         attribute SVGPathSegCurvetoQuadraticAbsConstructor SVGPathSegCurvetoQuadraticAbs;
673         attribute SVGPathSegCurvetoQuadraticRelConstructor SVGPathSegCurvetoQuadraticRel;
674         attribute SVGPathSegCurvetoQuadraticSmoothAbsConstructor SVGPathSegCurvetoQuadraticSmoothAbs;
675         attribute SVGPathSegCurvetoQuadraticSmoothRelConstructor SVGPathSegCurvetoQuadraticSmoothRel;
676         attribute SVGPathSegLinetoAbsConstructor SVGPathSegLinetoAbs;
677         attribute SVGPathSegLinetoHorizontalAbsConstructor SVGPathSegLinetoHorizontalAbs;
678         attribute SVGPathSegLinetoHorizontalRelConstructor SVGPathSegLinetoHorizontalRel;
679         attribute SVGPathSegLinetoRelConstructor SVGPathSegLinetoRel;
680         attribute SVGPathSegLinetoVerticalAbsConstructor SVGPathSegLinetoVerticalAbs;
681         attribute SVGPathSegLinetoVerticalRelConstructor SVGPathSegLinetoVerticalRel;
682         attribute SVGPathSegListConstructor SVGPathSegList;
683         attribute SVGPathSegMovetoAbsConstructor SVGPathSegMovetoAbs;
684         attribute SVGPathSegMovetoRelConstructor SVGPathSegMovetoRel;
685         attribute SVGPatternElementConstructor SVGPatternElement;
686         attribute SVGPointConstructor SVGPoint;
687         attribute SVGPointListConstructor SVGPointList;
688         attribute SVGPolygonElementConstructor SVGPolygonElement;
689         attribute SVGPolylineElementConstructor SVGPolylineElement;
690         attribute SVGPreserveAspectRatioConstructor SVGPreserveAspectRatio;
691         attribute SVGRadialGradientElementConstructor SVGRadialGradientElement;
692         attribute SVGRectConstructor SVGRect;
693         attribute SVGRectElementConstructor SVGRectElement;
694         attribute SVGRenderingIntentConstructor SVGRenderingIntent;
695         attribute SVGScriptElementConstructor SVGScriptElement;
696         attribute SVGStopElementConstructor SVGStopElement;
697         attribute SVGStringListConstructor SVGStringList;
698         attribute SVGStyleElementConstructor SVGStyleElement;
699         attribute SVGSVGElementConstructor SVGSVGElement;
700         attribute SVGSwitchElementConstructor SVGSwitchElement;
701         attribute SVGSymbolElementConstructor SVGSymbolElement;
702         attribute SVGTextContentElementConstructor SVGTextContentElement;
703         attribute SVGTextElementConstructor SVGTextElement;
704         attribute SVGTextPathElementConstructor SVGTextPathElement;
705         attribute SVGTextPositioningElementConstructor SVGTextPositioningElement;
706         attribute SVGTitleElementConstructor SVGTitleElement;
707         attribute SVGTransformConstructor SVGTransform;
708         attribute SVGTransformListConstructor SVGTransformList;
709         attribute SVGTRefElementConstructor SVGTRefElement;
710         attribute SVGTSpanElementConstructor SVGTSpanElement;
711         attribute SVGUnitTypesConstructor SVGUnitTypes;
712         attribute SVGUseElementConstructor SVGUseElement;
713         attribute SVGViewElementConstructor SVGViewElement;
714         attribute SVGViewSpecConstructor SVGViewSpec;
715         attribute SVGZoomAndPanConstructor SVGZoomAndPan;
716
717         attribute SVGAnimateColorElementConstructor SVGAnimateColorElement;
718         attribute SVGAnimateElementConstructor SVGAnimateElement;
719         attribute SVGAnimateMotionElementConstructor SVGAnimateMotionElement;
720         attribute SVGAnimateTransformElementConstructor SVGAnimateTransformElement;
721         attribute SVGMPathElementConstructor SVGMPathElement;
722         attribute SVGSetElementConstructor SVGSetElement;
723
724 #if defined(ENABLE_SVG_FONTS) && ENABLE_SVG_FONTS
725         attribute SVGAltGlyphDefElementConstructor SVGAltGlyphDefElement;
726         attribute SVGAltGlyphElementConstructor SVGAltGlyphElement;
727         attribute SVGAltGlyphItemElementConstructor SVGAltGlyphItemElement;
728 //      attribute SVGDefinitionSrcElementConstructor SVGDefinitionSrcElement;
729         attribute SVGFontElementConstructor SVGFontElement;
730         attribute SVGFontFaceElementConstructor SVGFontFaceElement;
731         attribute SVGFontFaceFormatElementConstructor SVGFontFaceFormatElement;
732         attribute SVGFontFaceNameElementConstructor SVGFontFaceNameElement;
733         attribute SVGFontFaceSrcElementConstructor SVGFontFaceSrcElement;
734         attribute SVGFontFaceUriElementConstructor SVGFontFaceUriElement;
735         attribute SVGGlyphElementConstructor SVGGlyphElement;
736         attribute SVGGlyphRefElementConstructor SVGGlyphRefElement;
737         attribute SVGHKernElementConstructor SVGHKernElement;
738         attribute SVGMissingGlyphElementConstructor SVGMissingGlyphElement;
739         attribute SVGVKernElementConstructor SVGVKernElement;
740 #endif
741
742 #if defined(ENABLE_FILTERS) && ENABLE_FILTERS
743         attribute SVGComponentTransferFunctionElementConstructor SVGComponentTransferFunctionElement;
744         attribute SVGFEBlendElementConstructor SVGFEBlendElement;
745         attribute SVGFEColorMatrixElementConstructor SVGFEColorMatrixElement;
746         attribute SVGFEComponentTransferElementConstructor SVGFEComponentTransferElement;
747         attribute SVGFECompositeElementConstructor SVGFECompositeElement;
748         attribute SVGFEConvolveMatrixElementConstructor SVGFEConvolveMatrixElement;
749         attribute SVGFEDiffuseLightingElementConstructor SVGFEDiffuseLightingElement;
750         attribute SVGFEDisplacementMapElementConstructor SVGFEDisplacementMapElement;
751         attribute SVGFEDistantLightElementConstructor SVGFEDistantLightElement;
752         attribute SVGFEDropShadowElementConstructor SVGFEDropShadowElement;
753         attribute SVGFEFloodElementConstructor SVGFEFloodElement;
754         attribute SVGFEFuncAElementConstructor SVGFEFuncAElement;
755         attribute SVGFEFuncBElementConstructor SVGFEFuncBElement;
756         attribute SVGFEFuncGElementConstructor SVGFEFuncGElement;
757         attribute SVGFEFuncRElementConstructor SVGFEFuncRElement;
758         attribute SVGFEGaussianBlurElementConstructor SVGFEGaussianBlurElement;
759         attribute SVGFEImageElementConstructor SVGFEImageElement;
760         attribute SVGFEMergeElementConstructor SVGFEMergeElement;
761         attribute SVGFEMergeNodeElementConstructor SVGFEMergeNodeElement;
762         attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement;
763         attribute SVGFEOffsetElementConstructor SVGFEOffsetElement;
764         attribute SVGFEPointLightElementConstructor SVGFEPointLightElement;
765         attribute SVGFESpecularLightingElementConstructor SVGFESpecularLightingElement;
766         attribute SVGFESpotLightElementConstructor SVGFESpotLightElement;
767         attribute SVGFETileElementConstructor SVGFETileElement;
768         attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement;
769         attribute SVGFilterElementConstructor SVGFilterElement;
770 #endif
771 #endif
772
773         attribute DOMFormDataConstructor FormData;
774
775         attribute [Conditional=BLOB|FILE_SYSTEM] FileErrorConstructor FileError;
776         attribute [Conditional=BLOB] FileReaderConstructor FileReader;
777
778         attribute [Conditional=BLOB&LEGACY_WEBKIT_BLOB_BUILDER] WebKitBlobBuilderConstructor WebKitBlobBuilder;
779
780         attribute [Conditional=BLOB] DOMURLConstructor webkitURL;
781
782         attribute [Conditional=MUTATION_OBSERVERS] MutationObserverConstructor WebKitMutationObserver;
783
784 #endif // defined(LANGUAGE_JAVASCRIPT)
785
786 #if defined(V8_BINDING) && V8_BINDING
787         // window.toString() requires special handling in V8
788         [V8DoNotCheckSignature, DoNotCheckSecurity, Custom, NotEnumerable] DOMString toString();
789 #endif // defined(V8_BINDING)
790     };
791
792 }
793