Revert Worker-related APIs from DOMWindowWorker.idl back to DOMWindow.idl
[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] 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 [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_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
174         readonly attribute [V8EnabledAtRuntime] NotificationCenter webkitNotifications;
175 #endif
176
177 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
178         // This is the interface orientation in degrees. Some examples are:
179         //  0 is straight up; -90 is when the device is rotated 90 clockwise;
180         //  90 is when rotated counter clockwise.
181         readonly attribute long orientation;
182 #endif
183
184                  attribute [Replaceable] Console console;
185
186         // cross-document messaging
187 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
188         [DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in DOMString targetOrigin)
189             raises(DOMException);
190         [DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in DOMString targetOrigin, in Array messagePorts)
191             raises(DOMException);
192
193         [DoNotCheckSecurity, Custom] void webkitPostMessage(in SerializedScriptValue message, in DOMString targetOrigin)
194             raises(DOMException);
195         [DoNotCheckSecurity, Custom] void webkitPostMessage(in SerializedScriptValue message, in DOMString targetOrigin, in Array transferList)
196             raises(DOMException);
197 #else
198         // There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port.
199         [DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] MessagePort messagePort, in DOMString targetOrigin)
200             raises(DOMException);
201 #endif
202
203 #if defined(ENABLE_WEB_TIMING) && ENABLE_WEB_TIMING
204         attribute [Replaceable] Performance performance;
205 #endif
206
207         // Timers
208         [Custom] long setTimeout(in [Optional=DefaultIsUndefined] TimeoutHandler handler, 
209                                  in [Optional=DefaultIsUndefined] long timeout);
210         // [Custom] long setTimeout(in TimeoutHandler handler, in long timeout, arguments...);
211         // [Custom] long setTimeout(in DOMString code, in long timeout);
212         void clearTimeout(in [Optional=DefaultIsUndefined] long handle);
213         [Custom] long setInterval(in TimeoutHandler handler, in long timeout);
214         // [Custom] long setInterval(in TimeoutHandler handler, in long timeout, arguments...);
215         // [Custom] long setInterval(in DOMString code, in long timeout);
216         void clearInterval(in [Optional=DefaultIsUndefined] long handle);
217
218 #if defined(ENABLE_REQUEST_ANIMATION_FRAME)
219         // WebKit animation extensions, being standardized in the WebPerf WG
220         long webkitRequestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback, in [Optional=DefaultIsUndefined] Element element);
221         void webkitCancelAnimationFrame(in long id);
222         void webkitCancelRequestAnimationFrame(in long id); // This is a deprecated alias for webkitCancelAnimationFrame(). Remove this when removing vendor prefix.
223 #endif
224
225         // Base64
226         DOMString atob(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString string)
227             raises(DOMException);
228         DOMString btoa(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString string)
229             raises(DOMException);
230
231         // Events
232         attribute EventListener onabort;
233         attribute EventListener onbeforeunload;
234         attribute EventListener onblur;
235         attribute EventListener oncanplay;
236         attribute EventListener oncanplaythrough;
237         attribute EventListener onchange;
238         attribute EventListener onclick;
239         attribute EventListener oncontextmenu;
240         attribute EventListener ondblclick;
241         attribute EventListener ondrag;
242         attribute EventListener ondragend;
243         attribute EventListener ondragenter;
244         attribute EventListener ondragleave;
245         attribute EventListener ondragover;
246         attribute EventListener ondragstart;
247         attribute EventListener ondrop;
248         attribute EventListener ondurationchange;
249         attribute EventListener onemptied;
250         attribute EventListener onended;
251         attribute EventListener onerror;
252         attribute EventListener onfocus;
253         attribute EventListener onhashchange;
254         attribute EventListener oninput;
255         attribute EventListener oninvalid;
256         attribute EventListener onkeydown;
257         attribute EventListener onkeypress;
258         attribute EventListener onkeyup;
259         attribute EventListener onload;
260         attribute EventListener onloadeddata;
261         attribute EventListener onloadedmetadata;
262         attribute EventListener onloadstart;
263         attribute EventListener onmessage;
264         attribute EventListener onmousedown;
265         attribute EventListener onmousemove;
266         attribute EventListener onmouseout;
267         attribute EventListener onmouseover;
268         attribute EventListener onmouseup;
269         attribute EventListener onmousewheel;
270         attribute EventListener onoffline;
271         attribute EventListener ononline;
272         attribute EventListener onpagehide;
273         attribute EventListener onpageshow;
274         attribute EventListener onpause;
275         attribute EventListener onplay;
276         attribute EventListener onplaying;
277         attribute EventListener onpopstate;
278         attribute EventListener onprogress;
279         attribute EventListener onratechange;
280         attribute EventListener onresize;
281         attribute EventListener onscroll;
282         attribute EventListener onseeked;
283         attribute EventListener onseeking;
284         attribute EventListener onselect;
285         attribute EventListener onstalled;
286         attribute EventListener onstorage;
287         attribute EventListener onsubmit;
288         attribute EventListener onsuspend;
289         attribute EventListener ontimeupdate;
290         attribute EventListener onunload;
291         attribute EventListener onvolumechange;
292         attribute EventListener onwaiting;
293
294         // Not implemented yet.
295         // attribute EventListener onafterprint;
296         // attribute EventListener onbeforeprint;
297         // attribute EventListener onreadystatechange;
298         // attribute EventListener onredo;
299         // attribute EventListener onshow;
300         // attribute EventListener onundo;
301
302         // Webkit extensions
303         attribute EventListener onreset;
304         attribute EventListener onsearch;
305         attribute EventListener onwebkitanimationend;
306         attribute EventListener onwebkitanimationiteration;
307         attribute EventListener onwebkitanimationstart;
308         attribute EventListener onwebkittransitionend;
309 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
310         attribute EventListener onorientationchange;
311 #endif
312         attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchstart;
313         attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchmove;
314         attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchend;
315         attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchcancel;
316
317         attribute [Conditional=DEVICE_ORIENTATION,V8EnabledAtRuntime] EventListener ondevicemotion;
318         attribute [Conditional=DEVICE_ORIENTATION,V8EnabledAtRuntime] EventListener ondeviceorientation;
319
320         // EventTarget interface
321         [Custom] void addEventListener(in DOMString type,
322                                       in EventListener listener,
323                                       in [Optional] boolean useCapture);
324         [Custom] void removeEventListener(in DOMString type,
325                                           in EventListener listener,
326                                           in [Optional] boolean useCapture);
327         boolean dispatchEvent(in Event evt)
328             raises(EventException);
329
330         [V8Custom] void captureEvents(/*in long eventFlags*/);
331         [V8Custom] void releaseEvents(/*in long eventFlags*/);
332
333 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
334         // Global constructors
335         attribute StyleSheetConstructor StyleSheet;
336         attribute CSSStyleSheetConstructor CSSStyleSheet;
337
338         attribute CSSValueConstructor CSSValue;
339         attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
340         attribute CSSValueListConstructor CSSValueList;
341         attribute WebKitCSSTransformValueConstructor WebKitCSSTransformValue;
342
343 #if defined(ENABLE_CSS_FILTERS) && ENABLE_CSS_FILTERS
344         attribute WebKitCSSFilterValueConstructor WebKitCSSFilterValue;
345 #endif
346
347         attribute CSSRuleConstructor CSSRule;
348         attribute CSSCharsetRuleConstructor CSSCharsetRule;
349         attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
350         attribute CSSImportRuleConstructor CSSImportRule;
351         attribute CSSMediaRuleConstructor CSSMediaRule;
352         attribute CSSPageRuleConstructor CSSPageRule;
353         attribute CSSStyleRuleConstructor CSSStyleRule;
354         
355         attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
356         attribute MediaListConstructor MediaList;
357         attribute CounterConstructor Counter;
358         attribute CSSRuleListConstructor CSSRuleList;
359         attribute RectConstructor Rect;
360         attribute RGBColorConstructor RGBColor;
361         attribute StyleSheetListConstructor StyleSheetList;
362
363         // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
364         attribute DOMCoreExceptionConstructor DOMException;
365         attribute DOMStringListConstructor DOMStringList;
366 //        attribute NameListConstructor NameList;
367 //        attribute DOMImplementationListConstructor DOMImplementationList;
368 //        attribute DOMImplementationSourceConstructor DOMImplementationSource;
369         attribute DOMImplementationConstructor DOMImplementation;
370         attribute DOMSettableTokenListConstructor DOMSettableTokenList;
371         attribute DOMTokenListConstructor DOMTokenList;
372         attribute DocumentFragmentConstructor DocumentFragment;
373         attribute DocumentConstructor Document;
374         attribute NodeConstructor Node;
375         attribute NodeListConstructor NodeList;
376         attribute NamedNodeMapConstructor NamedNodeMap;
377         attribute CharacterDataConstructor CharacterData;
378         attribute AttrConstructor Attr;
379         attribute ElementConstructor Element;
380         attribute TextConstructor Text;
381         attribute CommentConstructor Comment;
382 //        attribute TypeInfoConstructor TypeInfo;
383 //        attribute UserDataHandlerConstructor UserDataHandler;
384 //        attribute DOMErrorConstructor DOMError;
385 //        attribute DOMErrorHandlerConstructor DOMErrorHandler
386 //        attribute DOMLocatorConstructor DOMLocator;
387 //        attribute DOMConfigurationConstructor DOMConfiguration;
388         attribute CDATASectionConstructor CDATASection;
389         attribute DocumentTypeConstructor DocumentType;
390         attribute NotationConstructor Notation;
391         attribute EntityConstructor Entity;
392         attribute EntityReferenceConstructor EntityReference;
393         attribute ProcessingInstructionConstructor ProcessingInstruction;
394         attribute [Conditional=SHADOW_DOM, V8EnabledAtRuntime=shadowDOM] ShadowRootConstructor WebKitShadowRoot;
395
396         attribute DOMSelectionConstructor Selection;
397         attribute DOMWindowConstructor Window;
398
399         attribute HTMLDocumentConstructor HTMLDocument;
400         attribute HTMLElementConstructor HTMLElement;
401         attribute HTMLAnchorElementConstructor HTMLAnchorElement;
402         attribute HTMLAppletElementConstructor HTMLAppletElement;
403         attribute HTMLAreaElementConstructor HTMLAreaElement;
404         attribute HTMLBRElementConstructor HTMLBRElement;
405         attribute HTMLBaseElementConstructor HTMLBaseElement;
406         attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
407         attribute HTMLBodyElementConstructor HTMLBodyElement;
408         attribute HTMLButtonElementConstructor HTMLButtonElement;
409         attribute HTMLCanvasElementConstructor HTMLCanvasElement;
410         attribute HTMLDListElementConstructor HTMLDListElement;
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=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] HTMLTrackElementConstructor HTMLTrackElement;
474         attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackConstructor TextTrack;
475         attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackCueConstructor TextTrackCue; // Usable with the new operator
476         attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackCueListConstructor TextTrackCueList;
477         attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackListConstructor TextTrackList;
478         attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TrackEventConstructor TrackEvent;
479
480         attribute [JSCustomGetter, Conditional=VIDEO, V8EnabledAtRuntime] HTMLAudioElementConstructorConstructor Audio; // Usable with the new operator
481         attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLAudioElementConstructor HTMLAudioElement;
482         attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLMediaElementConstructor HTMLMediaElement;
483         attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLVideoElementConstructor HTMLVideoElement;
484         attribute [Conditional=VIDEO, V8EnabledAtRuntime] MediaErrorConstructor MediaError;
485         attribute [Conditional=VIDEO, V8EnabledAtRuntime] TimeRangesConstructor TimeRanges;
486         attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLSourceElementConstructor HTMLSourceElement;
487         attribute [Conditional=VIDEO, V8EnabledAtRuntime] MediaControllerConstructor MediaController;
488
489         attribute CanvasPatternConstructor CanvasPattern;
490         attribute CanvasGradientConstructor CanvasGradient;
491         attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
492
493         attribute ImageDataConstructor ImageData;
494         attribute TextMetricsConstructor TextMetrics;
495
496         attribute DOMStringMapConstructor DOMStringMap;
497
498         attribute ArrayBufferConstructor ArrayBuffer; // Usable with new operator
499         attribute Int8ArrayConstructor Int8Array; // Usable with new operator
500         attribute Uint8ArrayConstructor Uint8Array; // Usable with new operator
501         attribute Uint8ClampedArrayConstructor Uint8ClampedArray; // Usable with new operator
502         attribute Int16ArrayConstructor Int16Array; // Usable with new operator
503         attribute Uint16ArrayConstructor Uint16Array; // Usable with new operator
504         attribute Int32ArrayConstructor Int32Array; // Usable with new operator
505         attribute Uint32ArrayConstructor Uint32Array; // Usable with new operator
506         attribute Float32ArrayConstructor Float32Array; // Usable with new operator
507         attribute Float64ArrayConstructor Float64Array; // Usable with new operator
508         attribute DataViewConstructor DataView; // Usable with new operator
509
510         // Event Constructors
511         attribute EventConstructor Event;
512         attribute BeforeLoadEventConstructor BeforeLoadEvent;
513         attribute CompositionEventConstructor CompositionEvent;
514         attribute CustomEventConstructor CustomEvent;
515         attribute ErrorEventConstructor ErrorEvent;
516         attribute HashChangeEventConstructor HashChangeEvent;
517         attribute KeyboardEventConstructor KeyboardEvent;
518         attribute MessageEventConstructor MessageEvent;
519         attribute MouseEventConstructor MouseEvent;
520         attribute MutationEventConstructor MutationEvent;
521         attribute OverflowEventConstructor OverflowEvent;
522         attribute PopStateEventConstructor PopStateEvent;
523         attribute PageTransitionEventConstructor PageTransitionEvent;
524         attribute ProgressEventConstructor ProgressEvent;
525         attribute TextEventConstructor TextEvent;
526         attribute UIEventConstructor UIEvent;
527         attribute WebKitAnimationEventConstructor WebKitAnimationEvent;
528         attribute WebKitTransitionEventConstructor WebKitTransitionEvent;
529         attribute WheelEventConstructor WheelEvent;
530         attribute XMLHttpRequestProgressEventConstructor XMLHttpRequestProgressEvent;
531         attribute [Conditional=DEVICE_ORIENTATION, V8EnabledAtRuntime] DeviceMotionEventConstructor DeviceMotionEvent;
532         attribute [Conditional=DEVICE_ORIENTATION, V8EnabledAtRuntime] DeviceOrientationEventConstructor DeviceOrientationEvent;
533         attribute [Conditional=TOUCH_EVENTS] TouchEventConstructor TouchEvent;
534         attribute StorageEventConstructor StorageEvent;
535         attribute [Conditional=INPUT_SPEECH] SpeechInputEventConstructor SpeechInputEvent;
536         attribute [Conditional=WEBGL] WebGLContextEventConstructor WebGLContextEvent;
537
538         attribute EventExceptionConstructor EventException;
539
540         attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
541         attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
542         attribute WebKitCSSRegionRuleConstructor WebKitCSSRegionRule;
543
544         attribute WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
545
546         attribute WebKitPointConstructor WebKitPoint; // Usable with new the operator
547
548         attribute ClipboardConstructor Clipboard;
549
550         attribute [Conditional=WORKERS] WorkerConstructor Worker; // Usable with the new operator
551         attribute [Conditional=SHARED_WORKERS, JSCustomGetter, V8EnabledAtRuntime] SharedWorkerConstructor SharedWorker; // Usable with the new operator
552
553         attribute FileConstructor File;
554         attribute FileListConstructor FileList;
555         attribute BlobConstructor Blob;
556
557         attribute NodeFilterConstructor NodeFilter;
558         attribute RangeConstructor Range;
559         attribute RangeExceptionConstructor RangeException;
560
561         attribute EventSourceConstructor EventSource; // Usable with new the operator
562
563         // Mozilla has a separate XMLDocument object for XML documents. 
564         // We just use Document for this.
565         attribute DocumentConstructor XMLDocument;
566         attribute DOMParserConstructor DOMParser;
567         attribute XMLSerializerConstructor XMLSerializer;
568         attribute XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
569         attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
570         attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
571         attribute [Conditional=XSLT] XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
572
573 #if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
574         attribute MessagePortConstructor MessagePort;
575         attribute MessageChannelConstructor MessageChannel; // Usable with the new operator
576 #endif
577
578         attribute DOMPluginConstructor Plugin;
579         attribute DOMPluginArrayConstructor PluginArray;
580
581         attribute DOMMimeTypeConstructor MimeType;
582         attribute DOMMimeTypeArrayConstructor MimeTypeArray;
583
584         attribute ClientRectConstructor ClientRect;
585         attribute ClientRectListConstructor ClientRectList;
586
587         attribute StorageConstructor Storage;
588
589 #if defined(ENABLE_ANIMATION_API) && ENABLE_ANIMATION_API
590         attribute WebKitAnimationConstructor WebKitAnimation;
591         attribute WebKitAnimationListConstructor WebKitAnimationList;
592 #endif
593
594         attribute XPathEvaluatorConstructor XPathEvaluator;
595         attribute XPathResultConstructor XPathResult;
596         attribute XPathExceptionConstructor XPathException;
597
598         attribute DOMFormDataConstructor FormData;
599
600         attribute [Conditional=BLOB|FILE_SYSTEM] FileErrorConstructor FileError;
601         attribute [Conditional=BLOB] FileReaderConstructor FileReader;
602
603         attribute [Conditional=BLOB] WebKitBlobBuilderConstructor WebKitBlobBuilder;
604
605         attribute [Conditional=BLOB] DOMURLConstructor webkitURL;
606
607 #if defined(ENABLE_QUOTA) && ENABLE_QUOTA
608         readonly attribute [V8EnabledAtRuntime=Quota] StorageInfo webkitStorageInfo;
609 #endif
610
611         attribute [Conditional=MUTATION_OBSERVERS] WebKitMutationObserverConstructor WebKitMutationObserver;
612
613 #endif // defined(LANGUAGE_JAVASCRIPT)
614
615 #if defined(V8_BINDING) && V8_BINDING
616         // window.toString() requires special handling in V8
617         [V8DoNotCheckSignature, DoNotCheckSecurity, Custom, NotEnumerable] DOMString toString();
618 #endif // defined(V8_BINDING)
619     };
620
621 }
622