2011-06-24 Nikolas Zimmermann <nzimmermann@rim.com>
[WebKit-https.git] / Source / WebCore / page / DOMWindow.idl
1 /*
2  * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 module window {
27
28     interface [
29         LegacyDefaultOptionalArguments,
30         CheckDomainSecurity,
31         CustomDefineGetter,
32         CustomDefineSetter,
33         CustomDeleteProperty,
34         CustomGetOwnPropertySlot,
35         CustomGetPropertyNames,
36         CustomLookupGetter,
37         CustomLookupSetter,
38         CustomMarkFunction,
39         CustomNativeConverter,
40         CustomPutFunction,
41         EventTarget,
42         ExtendsDOMGlobalObject,
43         GenerateNativeConverter,
44         ReplaceableConstructor,
45         LegacyParent=JSDOMWindowBase
46     ] DOMWindow {
47         // DOM Level 0
48         attribute [Replaceable] Screen screen;
49         attribute [Replaceable, DoNotCheckDomainSecurityOnGet, JSCCustomGetter] History history;
50         attribute [Replaceable] BarInfo locationbar;
51         attribute [Replaceable] BarInfo menubar;
52         attribute [Replaceable] BarInfo personalbar;
53         attribute [Replaceable] BarInfo scrollbars;
54         attribute [Replaceable] BarInfo statusbar;
55         attribute [Replaceable] BarInfo toolbar;
56         attribute [Replaceable] Navigator navigator;
57         attribute [Replaceable] Navigator clientInformation;
58         readonly attribute Crypto crypto;
59         attribute [DoNotCheckDomainSecurity, JSCCustom, V8CustomSetter, V8DisallowShadowing, CPPCustom] Location location;
60
61         attribute [Replaceable, CustomGetter, V8CustomSetter] Event event;
62
63
64         DOMSelection getSelection();
65
66         readonly attribute [CheckNodeSecurity] Element frameElement;
67
68         [DoNotCheckDomainSecurity] void focus();
69         [DoNotCheckDomainSecurity] void blur();
70         [DoNotCheckDomainSecurity, CallWith=ScriptExecutionContext] void close();
71
72         void print();
73         void stop();
74
75         [Custom] DOMWindow open(in DOMString url,
76                                 in DOMString name,
77                                 in [Optional] DOMString options);
78
79         [Custom] DOMObject showModalDialog(in DOMString url,
80                                            in [Optional] DOMObject dialogArgs,
81                                            in [Optional] DOMString featureArgs);
82
83         void alert(in DOMString message);
84         boolean confirm(in DOMString message);
85         [ConvertNullStringTo=Null] DOMString prompt(in DOMString message,
86                                                     in [ConvertUndefinedOrNullToNullString] DOMString defaultValue);
87
88         boolean find(in DOMString string,
89                      in boolean caseSensitive,
90                      in boolean backwards,
91                      in boolean wrap,
92                      in boolean wholeWord,
93                      in boolean searchInFrames,
94                      in boolean showDialog);
95
96         attribute [Replaceable] boolean offscreenBuffering;
97
98         attribute [Replaceable] long outerHeight;
99         attribute [Replaceable] long outerWidth;
100         attribute [Replaceable] long innerHeight;
101         attribute [Replaceable] long innerWidth;
102         attribute [Replaceable] long screenX;
103         attribute [Replaceable] long screenY;
104         attribute [Replaceable] long screenLeft;
105         attribute [Replaceable] long screenTop;
106         attribute [Replaceable] long scrollX;
107         attribute [Replaceable] long scrollY;
108         readonly attribute long pageXOffset;
109         readonly attribute long pageYOffset;
110
111         [RequiresAllArguments] void scrollBy(in long x, in long y);
112         [RequiresAllArguments] void scrollTo(in long x, in long y);
113         [RequiresAllArguments] void scroll(in long x, in long y);
114         [RequiresAllArguments] void moveBy(in float x, in float y); // FIXME: this should take longs not floats.
115         [RequiresAllArguments] void moveTo(in float x, in float y); // FIXME: this should take longs not floats.
116         [RequiresAllArguments] void resizeBy(in float x, in float y); // FIXME: this should take longs not floats.
117         [RequiresAllArguments] void resizeTo(in float width, in float height); // FIXME: this should take longs not floats.
118
119         readonly attribute [DoNotCheckDomainSecurity] boolean closed;
120
121         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] unsigned long length;
122
123         attribute DOMString name;
124
125         attribute DOMString status;
126         attribute DOMString defaultStatus;
127 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
128         // This attribute is an alias of defaultStatus and is necessary for legacy uses.
129         attribute DOMString defaultstatus;
130 #endif
131
132         // Self referential attributes
133         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow self;
134         readonly attribute [DoNotCheckDomainSecurity, V8DisallowShadowing] DOMWindow window;
135         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow frames;
136
137         attribute [Replaceable, DoNotCheckDomainSecurityOnGet, V8CustomSetter] DOMWindow opener;
138         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow parent;
139         attribute [Replaceable, DoNotCheckDomainSecurityOnGet, V8DisallowShadowing, V8ReadOnly] DOMWindow top;
140
141         // DOM Level 2 AbstractView Interface
142         readonly attribute Document document;
143
144         // CSSOM View Module
145         MediaQueryList matchMedia(in DOMString query);
146
147         // styleMedia has been removed from the CSSOM View specification.
148         readonly attribute StyleMedia styleMedia;
149
150         // DOM Level 2 Style Interface
151         CSSStyleDeclaration getComputedStyle(in Element element,
152                                              in [ConvertUndefinedOrNullToNullString] DOMString pseudoElement);
153
154         // WebKit extensions
155 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
156         CSSRuleList getMatchedCSSRules(in Element element,
157                                        in DOMString pseudoElement);
158 #endif
159
160         attribute [Replaceable] double devicePixelRatio;
161         
162         WebKitPoint webkitConvertPointFromPageToNode(in Node node, in WebKitPoint p);
163         WebKitPoint webkitConvertPointFromNodeToPage(in Node node, in WebKitPoint p);
164
165 #if defined(ENABLE_OFFLINE_WEB_APPLICATIONS) && ENABLE_OFFLINE_WEB_APPLICATIONS
166         readonly attribute [EnabledAtRuntime] DOMApplicationCache applicationCache;
167 #endif    
168 #if defined(ENABLE_DATABASE) && ENABLE_DATABASE
169         [EnabledAtRuntime, RequiresAllArguments=Raise] Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize, in [Callback, Optional] DatabaseCallback creationCallback)
170             raises(DOMException);
171 #endif
172 #if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
173         readonly attribute [EnabledAtRuntime] Storage sessionStorage
174             getter raises(DOMException);
175         readonly attribute [EnabledAtRuntime] Storage localStorage
176             getter raises(DOMException);
177 #endif
178 #if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
179         readonly attribute [EnabledAtRuntime] NotificationCenter webkitNotifications;
180 #endif
181 #if defined(ENABLE_INDEXED_DATABASE) && ENABLE_INDEXED_DATABASE
182         readonly attribute [EnabledAtRuntime] IDBFactory webkitIndexedDB;
183
184         attribute [EnabledAtRuntime] IDBCursorConstructor webkitIDBCursor;
185         attribute [EnabledAtRuntime] IDBDatabaseConstructor webkitIDBDatabase;
186         attribute [EnabledAtRuntime] IDBDatabaseErrorConstructor webkitIDBDatabaseError;
187         attribute [EnabledAtRuntime] IDBDatabaseExceptionConstructor webkitIDBDatabaseException;
188         attribute [EnabledAtRuntime] IDBFactoryConstructor webkitIDBFactory;
189         attribute [EnabledAtRuntime] IDBIndexConstructor webkitIDBIndex;
190         attribute [EnabledAtRuntime] IDBKeyRangeConstructor webkitIDBKeyRange;
191         attribute [EnabledAtRuntime] IDBObjectStoreConstructor webkitIDBObjectStore;
192         attribute [EnabledAtRuntime] IDBRequestConstructor webkitIDBRequest;
193         attribute [EnabledAtRuntime] IDBTransactionConstructor webkitIDBTransaction;
194 #endif
195 #if defined(ENABLE_FILE_SYSTEM) && ENABLE_FILE_SYSTEM
196         const unsigned short TEMPORARY = 0;
197         const unsigned short PERSISTENT = 1;
198         [EnabledAtRuntime=FileSystem] void webkitRequestFileSystem(in unsigned short type, in long long size, in [Callback, Optional] FileSystemCallback successCallback, in [Callback, Optional] ErrorCallback errorCallback);
199         [EnabledAtRuntime=FileSystem] void webkitResolveLocalFileSystemURL(in DOMString url, in [Callback, Optional] EntryCallback successCallback, in [Callback, Optional] ErrorCallback errorCallback);
200
201         attribute [EnabledAtRuntime=FileSystem] WebKitFlagsConstructor WebKitFlags;
202 #endif
203
204 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
205         // This is the interface orientation in degrees. Some examples are:
206         //  0 is straight up; -90 is when the device is rotated 90 clockwise;
207         //  90 is when rotated counter clockwise.
208         readonly attribute long orientation;
209 #endif
210
211                  attribute [Replaceable] Console console;
212
213         // cross-document messaging
214 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
215         [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] Array messagePorts, in DOMString targetOrigin)
216             raises(DOMException);
217 #else
218         // There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port.
219         [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] MessagePort messagePort, in DOMString targetOrigin)
220             raises(DOMException);
221 #endif
222
223 #if defined(ENABLE_WEB_TIMING) && ENABLE_WEB_TIMING
224         attribute [Replaceable] Performance performance;
225 #endif
226
227         // Timers
228         [Custom] long setTimeout(in TimeoutHandler handler, in long timeout);
229         // [Custom] long setTimeout(in TimeoutHandler handler, in long timeout, arguments...);
230         // [Custom] long setTimeout(in DOMString code, in long timeout);
231         void clearTimeout(in long handle);
232         [Custom] long setInterval(in TimeoutHandler handler, in long timeout);
233         // [Custom] long setInterval(in TimeoutHandler handler, in long timeout, arguments...);
234         // [Custom] long setInterval(in DOMString code, in long timeout);
235         void clearInterval(in long handle);
236
237 #if defined(ENABLE_REQUEST_ANIMATION_FRAME)
238         // WebKit animation extensions
239         long webkitRequestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback, in Element element);
240         void webkitCancelRequestAnimationFrame(in long id);
241 #endif
242
243         // Base64
244         DOMString atob(in [ConvertNullToNullString] DOMString string)
245             raises(DOMException);
246         DOMString btoa(in [ConvertNullToNullString] DOMString string)
247             raises(DOMException);
248
249         // Events
250         attribute EventListener onabort;
251         attribute EventListener onbeforeunload;
252         attribute EventListener onblur;
253         attribute EventListener oncanplay;
254         attribute EventListener oncanplaythrough;
255         attribute EventListener onchange;
256         attribute EventListener onclick;
257         attribute EventListener oncontextmenu;
258         attribute EventListener ondblclick;
259         attribute EventListener ondrag;
260         attribute EventListener ondragend;
261         attribute EventListener ondragenter;
262         attribute EventListener ondragleave;
263         attribute EventListener ondragover;
264         attribute EventListener ondragstart;
265         attribute EventListener ondrop;
266         attribute EventListener ondurationchange;
267         attribute EventListener onemptied;
268         attribute EventListener onended;
269         attribute EventListener onerror;
270         attribute EventListener onfocus;
271         attribute EventListener onhashchange;
272         attribute EventListener oninput;
273         attribute EventListener oninvalid;
274         attribute EventListener onkeydown;
275         attribute EventListener onkeypress;
276         attribute EventListener onkeyup;
277         attribute EventListener onload;
278         attribute EventListener onloadeddata;
279         attribute EventListener onloadedmetadata;
280         attribute EventListener onloadstart;
281         attribute EventListener onmessage;
282         attribute EventListener onmousedown;
283         attribute EventListener onmousemove;
284         attribute EventListener onmouseout;
285         attribute EventListener onmouseover;
286         attribute EventListener onmouseup;
287         attribute EventListener onmousewheel;
288         attribute EventListener onoffline;
289         attribute EventListener ononline;
290         attribute EventListener onpagehide;
291         attribute EventListener onpageshow;
292         attribute EventListener onpause;
293         attribute EventListener onplay;
294         attribute EventListener onplaying;
295         attribute EventListener onpopstate;
296         attribute EventListener onprogress;
297         attribute EventListener onratechange;
298         attribute EventListener onresize;
299         attribute EventListener onscroll;
300         attribute EventListener onseeked;
301         attribute EventListener onseeking;
302         attribute EventListener onselect;
303         attribute EventListener onstalled;
304         attribute EventListener onstorage;
305         attribute EventListener onsubmit;
306         attribute EventListener onsuspend;
307         attribute EventListener ontimeupdate;
308         attribute EventListener onunload;
309         attribute EventListener onvolumechange;
310         attribute EventListener onwaiting;
311
312         // Not implemented yet.
313         // attribute EventListener onafterprint;
314         // attribute EventListener onbeforeprint;
315         // attribute EventListener onreadystatechange;
316         // attribute EventListener onredo;
317         // attribute EventListener onshow;
318         // attribute EventListener onundo;
319
320         // Webkit extensions
321         attribute EventListener onreset;
322         attribute EventListener onsearch;
323         attribute EventListener onwebkitanimationend;
324         attribute EventListener onwebkitanimationiteration;
325         attribute EventListener onwebkitanimationstart;
326         attribute EventListener onwebkittransitionend;
327 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
328         attribute EventListener onorientationchange;
329 #endif
330         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchstart;
331         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchmove;
332         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchend;
333         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchcancel;
334
335         attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] DeviceMotionEventConstructor DeviceMotionEvent;
336         attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] EventListener ondevicemotion;
337         attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] DeviceOrientationEventConstructor DeviceOrientationEvent;
338         attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] EventListener ondeviceorientation;
339
340         // EventTarget interface
341         [Custom] void addEventListener(in DOMString type,
342                                       in EventListener listener,
343                                       in boolean useCapture);
344         [Custom] void removeEventListener(in DOMString type,
345                                           in EventListener listener,
346                                           in boolean useCapture);
347         boolean dispatchEvent(in Event evt)
348             raises(EventException);
349
350         [V8Custom=DOMWindowNOP] void captureEvents(/*in long eventFlags*/);
351         [V8Custom=DOMWindowNOP] void releaseEvents(/*in long eventFlags*/);
352
353 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
354         // Global constructors
355         attribute StyleSheetConstructor StyleSheet;
356         attribute CSSStyleSheetConstructor CSSStyleSheet;
357
358         attribute CSSValueConstructor CSSValue;
359         attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
360         attribute CSSValueListConstructor CSSValueList;
361         attribute WebKitCSSTransformValueConstructor WebKitCSSTransformValue;
362
363         attribute CSSRuleConstructor CSSRule;
364         attribute CSSCharsetRuleConstructor CSSCharsetRule;
365         attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
366         attribute CSSImportRuleConstructor CSSImportRule;
367         attribute CSSMediaRuleConstructor CSSMediaRule;
368         attribute CSSPageRuleConstructor CSSPageRule;
369         attribute CSSStyleRuleConstructor CSSStyleRule;
370         
371         attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
372         attribute MediaListConstructor MediaList;
373         attribute CounterConstructor Counter;
374         attribute CSSRuleListConstructor CSSRuleList;
375         attribute RectConstructor Rect;
376         attribute RGBColorConstructor RGBColor;
377         attribute StyleSheetListConstructor StyleSheetList;
378
379         // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
380         attribute DOMCoreExceptionConstructor DOMException;
381         attribute DOMStringListConstructor DOMStringList;
382 //        attribute NameListConstructor NameList;
383 //        attribute DOMImplementationListConstructor DOMImplementationList;
384 //        attribute DOMImplementationSourceConstructor DOMImplementationSource;
385         attribute DOMImplementationConstructor DOMImplementation;
386         attribute DOMSettableTokenListConstructor DOMSettableTokenList;
387         attribute DOMTokenListConstructor DOMTokenList;
388         attribute DocumentFragmentConstructor DocumentFragment;
389         attribute DocumentConstructor Document;
390         attribute NodeConstructor Node;
391         attribute NodeListConstructor NodeList;
392         attribute NamedNodeMapConstructor NamedNodeMap;
393         attribute CharacterDataConstructor CharacterData;
394         attribute AttrConstructor Attr;
395         attribute ElementConstructor Element;
396         attribute TextConstructor Text;
397         attribute CommentConstructor Comment;
398 //        attribute TypeInfoConstructor TypeInfo;
399 //        attribute UserDataHandlerConstructor UserDataHandler;
400 //        attribute DOMErrorConstructor DOMError;
401 //        attribute DOMErrorHandlerConstructor DOMErrorHandler
402 //        attribute DOMLocatorConstructor DOMLocator;
403 //        attribute DOMConfigurationConstructor DOMConfiguration;
404         attribute CDATASectionConstructor CDATASection;
405         attribute DocumentTypeConstructor DocumentType;
406         attribute NotationConstructor Notation;
407         attribute EntityConstructor Entity;
408         attribute EntityReferenceConstructor EntityReference;
409         attribute ProcessingInstructionConstructor ProcessingInstruction;
410
411         attribute HTMLDocumentConstructor HTMLDocument;
412
413         attribute HTMLElementConstructor HTMLElement;
414         attribute HTMLAnchorElementConstructor HTMLAnchorElement;
415         attribute HTMLAppletElementConstructor HTMLAppletElement;
416         attribute HTMLAreaElementConstructor HTMLAreaElement;
417         attribute HTMLBRElementConstructor HTMLBRElement;
418         attribute HTMLBaseElementConstructor HTMLBaseElement;
419         attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
420         attribute HTMLBlockquoteElementConstructor HTMLBlockquoteElement;
421         attribute HTMLBodyElementConstructor HTMLBodyElement;
422         attribute HTMLButtonElementConstructor HTMLButtonElement;
423         attribute HTMLCanvasElementConstructor HTMLCanvasElement;
424         attribute HTMLDListElementConstructor HTMLDListElement;
425         attribute HTMLDirectoryElementConstructor HTMLDirectoryElement;
426         attribute HTMLDivElementConstructor HTMLDivElement;
427         attribute HTMLEmbedElementConstructor HTMLEmbedElement;
428         attribute HTMLFieldSetElementConstructor HTMLFieldSetElement;
429         attribute HTMLFontElementConstructor HTMLFontElement;
430         attribute HTMLFormElementConstructor HTMLFormElement;
431         attribute HTMLFrameElementConstructor HTMLFrameElement;
432         attribute HTMLFrameSetElementConstructor HTMLFrameSetElement;
433         attribute HTMLHRElementConstructor HTMLHRElement;
434         attribute HTMLHeadElementConstructor HTMLHeadElement;
435         attribute HTMLHeadingElementConstructor HTMLHeadingElement;
436         attribute HTMLHtmlElementConstructor HTMLHtmlElement;
437         attribute HTMLIFrameElementConstructor HTMLIFrameElement;
438         attribute HTMLImageElementConstructor HTMLImageElement;
439         attribute HTMLInputElementConstructor HTMLInputElement;
440         attribute HTMLIsIndexElementConstructor HTMLIsIndexElement;
441         attribute HTMLKeygenElementConstructor HTMLKeygenElement;
442         attribute HTMLLIElementConstructor HTMLLIElement;
443         attribute HTMLLabelElementConstructor HTMLLabelElement;
444         attribute HTMLLegendElementConstructor HTMLLegendElement;
445         attribute HTMLLinkElementConstructor HTMLLinkElement;
446         attribute HTMLMapElementConstructor HTMLMapElement;
447         attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
448         attribute HTMLMenuElementConstructor HTMLMenuElement;
449         attribute HTMLMetaElementConstructor HTMLMetaElement;
450 #if defined(ENABLE_METER_TAG) && ENABLE_METER_TAG
451         attribute HTMLMeterElementConstructor HTMLMeterElement;
452 #endif
453         attribute HTMLModElementConstructor HTMLModElement;
454         attribute HTMLOListElementConstructor HTMLOListElement;
455         attribute HTMLObjectElementConstructor HTMLObjectElement;
456         attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
457         attribute HTMLOptionElementConstructor HTMLOptionElement;
458         attribute HTMLOutputElementConstructor HTMLOutputElement;
459         attribute HTMLParagraphElementConstructor HTMLParagraphElement;
460         attribute HTMLParamElementConstructor HTMLParamElement;
461         attribute HTMLPreElementConstructor HTMLPreElement;
462 #if defined(ENABLE_PROGRESS_TAG) && ENABLE_PROGRESS_TAG
463         attribute HTMLProgressElementConstructor HTMLProgressElement;
464 #endif
465         attribute HTMLQuoteElementConstructor HTMLQuoteElement;
466         attribute HTMLScriptElementConstructor HTMLScriptElement;
467         attribute HTMLSelectElementConstructor HTMLSelectElement;
468         attribute HTMLStyleElementConstructor HTMLStyleElement;
469         attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement;
470         attribute HTMLTableCellElementConstructor HTMLTableCellElement;
471         attribute HTMLTableColElementConstructor HTMLTableColElement;
472         attribute HTMLTableElementConstructor HTMLTableElement;
473         attribute HTMLTableRowElementConstructor HTMLTableRowElement;
474         attribute HTMLTableSectionElementConstructor HTMLTableSectionElement;
475         attribute HTMLTextAreaElementConstructor HTMLTextAreaElement;
476         attribute HTMLTitleElementConstructor HTMLTitleElement;
477         attribute HTMLUListElementConstructor HTMLUListElement;
478
479         attribute HTMLCollectionConstructor HTMLCollection;
480         attribute HTMLAllCollectionConstructor HTMLAllCollection;
481
482         attribute [CustomGetter] HTMLImageElementConstructor Image; // Usable with new operator
483         attribute [CustomGetter] HTMLOptionElementConstructor Option; // Usable with new operator
484
485         attribute CanvasPatternConstructor CanvasPattern;
486         attribute CanvasGradientConstructor CanvasGradient;
487         attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
488         attribute ImageDataConstructor ImageData;
489         attribute [Conditional=WEBGL] WebGLActiveInfoConstructor WebGLActiveInfo;
490         attribute [Conditional=WEBGL] WebGLBufferConstructor WebGLBuffer;
491         attribute [Conditional=WEBGL] WebGLFramebufferConstructor WebGLFramebuffer;
492         attribute [Conditional=WEBGL] WebGLProgramConstructor WebGLProgram;
493         attribute [Conditional=WEBGL] WebGLRenderbufferConstructor WebGLRenderbuffer;
494         attribute [Conditional=WEBGL] WebGLRenderingContextConstructor WebGLRenderingContext;
495         attribute [Conditional=WEBGL] WebGLShaderConstructor WebGLShader;
496         attribute [Conditional=WEBGL] WebGLTextureConstructor WebGLTexture;
497         attribute [Conditional=WEBGL] WebGLUniformLocationConstructor WebGLUniformLocation;
498         attribute TextMetricsConstructor TextMetrics;
499
500         attribute DOMStringMapConstructor DOMStringMap;
501
502         attribute [JSCCustomGetter] ArrayBufferConstructor ArrayBuffer; // Usable with new operator
503         attribute [JSCCustomGetter] Int8ArrayConstructor Int8Array; // Usable with new operator
504         attribute [JSCCustomGetter] Uint8ArrayConstructor Uint8Array; // Usable with new operator
505         attribute [JSCCustomGetter] Int16ArrayConstructor Int16Array; // Usable with new operator
506         attribute [JSCCustomGetter] Uint16ArrayConstructor Uint16Array; // Usable with new operator
507         attribute [JSCCustomGetter] Int32ArrayConstructor Int32Array; // Usable with new operator
508         attribute [JSCCustomGetter] Uint32ArrayConstructor Uint32Array; // Usable with new operator
509         attribute [JSCCustomGetter] Float32ArrayConstructor Float32Array; // Usable with new operator
510         attribute [JSCCustomGetter] Float64ArrayConstructor Float64Array; // Usable with new operator
511         attribute [JSCCustomGetter] DataViewConstructor DataView; // Usable with new operator
512
513         attribute [JSCCustomGetter,Conditional=WEB_AUDIO,EnabledAtRuntime] AudioContextConstructor webkitAudioContext; // Usable with new operator
514         attribute [Conditional=WEB_AUDIO] AudioPannerNodeConstructor webkitAudioPannerNode; // Needed for panning model constants
515
516         attribute EventConstructor Event;
517         attribute BeforeLoadEventConstructor BeforeLoadEvent;
518         attribute HashChangeEventConstructor HashChangeEvent;
519         attribute KeyboardEventConstructor KeyboardEvent;
520         attribute MouseEventConstructor MouseEvent;
521         attribute MutationEventConstructor MutationEvent;
522         attribute OverflowEventConstructor OverflowEvent;
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 MessageEventConstructor MessageEvent;
531         attribute EventExceptionConstructor EventException;
532
533         attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
534         attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
535
536         attribute [JSCCustomGetter] WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
537
538         attribute [JSCCustomGetter] WebKitPointConstructor WebKitPoint; // Usable with new the operator
539
540         attribute ClipboardConstructor Clipboard;
541
542         attribute FileConstructor File;
543         attribute FileListConstructor FileList;
544         attribute BlobConstructor Blob;
545
546         attribute NodeFilterConstructor NodeFilter;
547         attribute RangeConstructor Range;
548         attribute RangeExceptionConstructor RangeException;
549
550 #if ENABLE_EVENTSOURCE
551         attribute [JSCCustomGetter] EventSourceConstructor EventSource; // Usable with new the operator
552 #endif
553
554         // Mozilla has a separate XMLDocument object for XML documents. 
555         // We just use Document for this.
556         attribute DocumentConstructor XMLDocument;
557
558         attribute DOMParserConstructor DOMParser;
559         attribute XMLSerializerConstructor XMLSerializer;
560
561         attribute [JSCCustomGetter] XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
562         attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
563         attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
564
565         attribute [JSCCustomGetter,Conditional=XSLT] XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
566
567 #if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
568         attribute MessagePortConstructor MessagePort;
569         attribute [JSCCustomGetter] MessageChannelConstructor MessageChannel; // Usable with the new operator
570 #endif
571
572 #if defined(ENABLE_WORKERS) && ENABLE_WORKERS
573         attribute [JSCCustomGetter] WorkerConstructor Worker; // Usable with the new operator
574 #endif
575
576 #if defined(ENABLE_SHARED_WORKERS) && ENABLE_SHARED_WORKERS
577         attribute [JSCCustomGetter, EnabledAtRuntime] SharedWorkerConstructor SharedWorker; // Usable with the new operator
578 #endif
579
580 #if defined(ENABLE_WEB_SOCKETS) && ENABLE_WEB_SOCKETS
581         attribute [JSCCustomGetter,EnabledAtRuntime] WebSocketConstructor WebSocket; // Usable with the new operator
582         attribute CloseEventConstructor CloseEvent;
583 #endif
584
585         attribute DOMPluginConstructor Plugin;
586         attribute DOMPluginArrayConstructor PluginArray;
587
588         attribute DOMMimeTypeConstructor MimeType;
589         attribute DOMMimeTypeArrayConstructor MimeTypeArray;
590
591         attribute ClientRectConstructor ClientRect;
592         attribute ClientRectListConstructor ClientRectList;
593
594 #if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
595         attribute StorageConstructor Storage;
596         attribute StorageEventConstructor StorageEvent;
597 #endif
598
599         attribute [CustomGetter, Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor Audio; // Usable with the new operator
600         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor HTMLAudioElement;
601         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLMediaElementConstructor HTMLMediaElement;
602         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLVideoElementConstructor HTMLVideoElement;
603         attribute [Conditional=VIDEO, EnabledAtRuntime] MediaErrorConstructor MediaError;
604         attribute [Conditional=VIDEO, EnabledAtRuntime] TimeRangesConstructor TimeRanges;
605
606 #if defined(ENABLE_ANIMATION_API) && ENABLE_ANIMATION_API
607         attribute WebKitAnimationConstructor WebKitAnimation;
608         attribute WebKitAnimationListConstructor WebKitAnimationList;
609 #endif
610
611 #if defined(ENABLE_XPATH) && ENABLE_XPATH
612         attribute XPathEvaluatorConstructor XPathEvaluator;
613         attribute XPathResultConstructor XPathResult;
614         attribute XPathExceptionConstructor XPathException;
615 #endif
616
617 #if defined(ENABLE_SVG) && ENABLE_SVG
618         // Expose all implemented SVG 1.1 interfaces, excluding the SVG MI interfaces:
619         // SVGAnimatedPathData, SVGAnimatedPoints, SVGExternalResourcesRequired,
620         // SVGFilterPrimitiveStandardAttributes, SVGFitToViewBox, SVGLangSpace, SVGLocatable
621         // SVGStylable, SVGTests, SVGTransformable, SVGURIReference, SVGZoomAndPan
622         attribute SVGAElementConstructor SVGAElement;
623         attribute SVGAngleConstructor SVGAngle;
624         attribute SVGAnimatedAngleConstructor SVGAnimatedAngle;
625         attribute SVGAnimatedBooleanConstructor SVGAnimatedBoolean;
626         attribute SVGAnimatedEnumerationConstructor SVGAnimatedEnumeration;
627         attribute SVGAnimatedIntegerConstructor SVGAnimatedInteger;
628         attribute SVGAnimatedLengthConstructor SVGAnimatedLength;
629         attribute SVGAnimatedLengthListConstructor SVGAnimatedLengthList;
630         attribute SVGAnimatedNumberConstructor SVGAnimatedNumber;
631         attribute SVGAnimatedNumberListConstructor SVGAnimatedNumberList;
632         attribute SVGAnimatedPreserveAspectRatioConstructor SVGAnimatedPreserveAspectRatio;
633         attribute SVGAnimatedRectConstructor SVGAnimatedRect;
634         attribute SVGAnimatedStringConstructor SVGAnimatedString;
635         attribute SVGAnimatedTransformListConstructor SVGAnimatedTransformList;
636         attribute SVGCircleElementConstructor SVGCircleElement;
637         attribute SVGClipPathElementConstructor SVGClipPathElement;
638         attribute SVGColorConstructor SVGColor;
639         attribute SVGCursorElementConstructor SVGCursorElement;
640 //      attribute SVGCSSRuleConstructor SVGCSSRule;
641         attribute SVGDefsElementConstructor SVGDefsElement;
642         attribute SVGDescElementConstructor SVGDescElement;
643         attribute SVGDocumentConstructor SVGDocument;
644         attribute SVGElementConstructor SVGElement;
645         attribute SVGElementInstanceConstructor SVGElementInstance;
646         attribute SVGElementInstanceListConstructor SVGElementInstanceList;
647         attribute SVGEllipseElementConstructor SVGEllipseElement;
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 SVGZoomEventConstructor SVGZoomEvent;
716
717 #if defined(ENABLE_SVG_ANIMATION) && ENABLE_SVG_ANIMATION
718         attribute SVGAnimateColorElementConstructor SVGAnimateColorElement;
719         attribute SVGAnimateElementConstructor SVGAnimateElement;
720         attribute SVGAnimateMotionElementConstructor SVGAnimateMotionElement;
721         attribute SVGAnimateTransformElementConstructor SVGAnimateTransformElement;
722         attribute SVGMPathElementConstructor SVGMPathElement;
723         attribute SVGSetElementConstructor SVGSetElement;
724 #endif
725
726 #if defined(ENABLE_SVG_FONTS) && ENABLE_SVG_FONTS
727 //      attribute SVGAltGlyphDefElementConstructor SVGAltGlyphDefElement;
728         attribute SVGAltGlyphElementConstructor SVGAltGlyphElement;
729 //      attribute SVGAltGlyphItemElementConstructor SVGAltGlyphItemElement;
730 //      attribute SVGDefinitionSrcElementConstructor SVGDefinitionSrcElement;
731         attribute SVGFontElementConstructor SVGFontElement;
732         attribute SVGFontFaceElementConstructor SVGFontFaceElement;
733         attribute SVGFontFaceFormatElementConstructor SVGFontFaceFormatElement;
734         attribute SVGFontFaceNameElementConstructor SVGFontFaceNameElement;
735         attribute SVGFontFaceSrcElementConstructor SVGFontFaceSrcElement;
736         attribute SVGFontFaceUriElementConstructor SVGFontFaceUriElement;
737         attribute SVGGlyphElementConstructor SVGGlyphElement;
738 //      attribute SVGGlyphRefElementConstructor SVGGlyphRefElement;
739         attribute SVGHKernElementConstructor SVGHKernElement;
740         attribute SVGMissingGlyphElementConstructor SVGMissingGlyphElement;
741         attribute SVGVKernElementConstructor SVGVKernElement;
742 #endif
743
744 #if defined(ENABLE_SVG_FOREIGN_OBJECT) && ENABLE_SVG_FOREIGN_OBJECT
745         attribute SVGForeignObjectElementConstructor SVGForeignObjectElement;
746 #endif
747
748 #if defined(ENABLE_FILTERS) && ENABLE_FILTERS
749         attribute SVGComponentTransferFunctionElementConstructor SVGComponentTransferFunctionElement;
750         attribute SVGFEBlendElementConstructor SVGFEBlendElement;
751         attribute SVGFEColorMatrixElementConstructor SVGFEColorMatrixElement;
752         attribute SVGFEComponentTransferElementConstructor SVGFEComponentTransferElement;
753         attribute SVGFECompositeElementConstructor SVGFECompositeElement;
754         attribute SVGFEConvolveMatrixElementConstructor SVGFEConvolveMatrixElement;
755         attribute SVGFEDiffuseLightingElementConstructor SVGFEDiffuseLightingElement;
756         attribute SVGFEDisplacementMapElementConstructor SVGFEDisplacementMapElement;
757         attribute SVGFEDistantLightElementConstructor SVGFEDistantLightElement;
758         attribute SVGFEDropShadowElementConstructor SVGFEDropShadowElement;
759         attribute SVGFEFloodElementConstructor SVGFEFloodElement;
760         attribute SVGFEFuncAElementConstructor SVGFEFuncAElement;
761         attribute SVGFEFuncBElementConstructor SVGFEFuncBElement;
762         attribute SVGFEFuncGElementConstructor SVGFEFuncGElement;
763         attribute SVGFEFuncRElementConstructor SVGFEFuncRElement;
764         attribute SVGFEGaussianBlurElementConstructor SVGFEGaussianBlurElement;
765         attribute SVGFEImageElementConstructor SVGFEImageElement;
766         attribute SVGFEMergeElementConstructor SVGFEMergeElement;
767         attribute SVGFEMergeNodeElementConstructor SVGFEMergeNodeElement;
768         attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement;
769         attribute SVGFEOffsetElementConstructor SVGFEOffsetElement;
770         attribute SVGFEPointLightElementConstructor SVGFEPointLightElement;
771         attribute SVGFESpecularLightingElementConstructor SVGFESpecularLightingElement;
772         attribute SVGFESpotLightElementConstructor SVGFESpotLightElement;
773         attribute SVGFETileElementConstructor SVGFETileElement;
774         attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement;
775         attribute SVGFilterElementConstructor SVGFilterElement;
776 #endif
777 #endif
778
779         attribute [Conditional=DATABASE] SQLExceptionConstructor SQLException;
780
781         attribute [Conditional=TOUCH_EVENTS] TouchEventConstructor TouchEvent;
782
783         attribute DOMFormDataConstructor FormData;
784
785         attribute [Conditional=BLOB|FILE_SYSTEM] FileErrorConstructor FileError;
786         attribute [Conditional=BLOB] FileReaderConstructor FileReader;
787
788         attribute [Conditional=BLOB] WebKitBlobBuilderConstructor WebKitBlobBuilder;
789
790         readonly attribute [Conditional=BLOB] DOMURL webkitURL;
791
792 #if defined(ENABLE_QUOTA) && ENABLE_QUOTA
793         readonly attribute [EnabledAtRuntime=Quota] StorageInfo webkitStorageInfo;
794 #endif
795
796 #endif // defined(LANGUAGE_JAVASCRIPT)
797
798 #if defined(V8_BINDING) && V8_BINDING
799         // window.toString() requires special handling in V8
800         [V8DoNotCheckSignature, DoNotCheckDomainSecurity, Custom, DontEnum] DOMString toString();
801 #endif // defined(V8_BINDING)
802     };
803
804 }
805