5b6c093e58fd10d9e3bb8654fba9d12a055b4e49
[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         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 [Optional=CallWithDefaultValue] DOMString message);
84         boolean confirm(in [Optional=CallWithDefaultValue] DOMString message);
85         [ConvertNullStringTo=Null] DOMString prompt(in [Optional=CallWithDefaultValue] DOMString message,
86                                                     in [ConvertUndefinedOrNullToNullString,Optional=CallWithDefaultValue] DOMString defaultValue);
87
88         boolean find(in [Optional=CallWithDefaultValue] DOMString string,
89                      in [Optional=CallWithDefaultValue] boolean caseSensitive,
90                      in [Optional=CallWithDefaultValue] boolean backwards,
91                      in [Optional=CallWithDefaultValue] boolean wrap,
92                      in [Optional=CallWithDefaultValue] boolean wholeWord,
93                      in [Optional=CallWithDefaultValue] boolean searchInFrames,
94                      in [Optional=CallWithDefaultValue] 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 [Optional=CallWithDefaultValue] Element element,
152                                              in [ConvertUndefinedOrNullToNullString,Optional=CallWithDefaultValue] DOMString pseudoElement);
153
154         // WebKit extensions
155 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
156         CSSRuleList getMatchedCSSRules(in [Optional=CallWithDefaultValue] Element element,
157                                        in [Optional=CallWithDefaultValue] DOMString pseudoElement);
158 #endif
159
160         attribute [Replaceable] double devicePixelRatio;
161         
162         WebKitPoint webkitConvertPointFromPageToNode(in [Optional=CallWithDefaultValue] Node node, 
163                                                      in [Optional=CallWithDefaultValue] WebKitPoint p);
164         WebKitPoint webkitConvertPointFromNodeToPage(in [Optional=CallWithDefaultValue] Node node, 
165                                                      in [Optional=CallWithDefaultValue] WebKitPoint p);
166
167         readonly attribute [EnabledAtRuntime] DOMApplicationCache applicationCache;
168 #if defined(ENABLE_SQL_DATABASE) && ENABLE_SQL_DATABASE
169         [EnabledAtRuntime] 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
173         readonly attribute [EnabledAtRuntime] Storage sessionStorage
174             getter raises(DOMException);
175         readonly attribute [EnabledAtRuntime] Storage localStorage
176             getter raises(DOMException);
177
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         [DoNotCheckDomainSecurity, Custom] void webkitPostMessage(in SerializedScriptValue message, in [Optional] Array transferList, in DOMString targetOrigin)
218             raises(DOMException);
219 #else
220         // There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port.
221         [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] MessagePort messagePort, in DOMString targetOrigin)
222             raises(DOMException);
223 #endif
224
225 #if defined(ENABLE_WEB_TIMING) && ENABLE_WEB_TIMING
226         attribute [Replaceable] Performance performance;
227 #endif
228
229         // Timers
230         [Custom] long setTimeout(in [Optional=CallWithDefaultValue] TimeoutHandler handler, 
231                                  in [Optional=CallWithDefaultValue] long timeout);
232         // [Custom] long setTimeout(in TimeoutHandler handler, in long timeout, arguments...);
233         // [Custom] long setTimeout(in DOMString code, in long timeout);
234         void clearTimeout(in [Optional=CallWithDefaultValue] long handle);
235         [Custom] long setInterval(in TimeoutHandler handler, in long timeout);
236         // [Custom] long setInterval(in TimeoutHandler handler, in long timeout, arguments...);
237         // [Custom] long setInterval(in DOMString code, in long timeout);
238         void clearInterval(in [Optional=CallWithDefaultValue] long handle);
239
240 #if defined(ENABLE_REQUEST_ANIMATION_FRAME)
241         // WebKit animation extensions
242         long webkitRequestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback, in [Optional=CallWithDefaultValue] Element element);
243         void webkitCancelRequestAnimationFrame(in long id);
244 #endif
245
246         // Base64
247         DOMString atob(in [ConvertNullToNullString,Optional=CallWithDefaultValue] DOMString string)
248             raises(DOMException);
249         DOMString btoa(in [ConvertNullToNullString,Optional=CallWithDefaultValue] DOMString string)
250             raises(DOMException);
251
252         // Events
253         attribute EventListener onabort;
254         attribute EventListener onbeforeunload;
255         attribute EventListener onblur;
256         attribute EventListener oncanplay;
257         attribute EventListener oncanplaythrough;
258         attribute EventListener onchange;
259         attribute EventListener onclick;
260         attribute EventListener oncontextmenu;
261         attribute EventListener ondblclick;
262         attribute EventListener ondrag;
263         attribute EventListener ondragend;
264         attribute EventListener ondragenter;
265         attribute EventListener ondragleave;
266         attribute EventListener ondragover;
267         attribute EventListener ondragstart;
268         attribute EventListener ondrop;
269         attribute EventListener ondurationchange;
270         attribute EventListener onemptied;
271         attribute EventListener onended;
272         attribute EventListener onerror;
273         attribute EventListener onfocus;
274         attribute EventListener onhashchange;
275         attribute EventListener oninput;
276         attribute EventListener oninvalid;
277         attribute EventListener onkeydown;
278         attribute EventListener onkeypress;
279         attribute EventListener onkeyup;
280         attribute EventListener onload;
281         attribute EventListener onloadeddata;
282         attribute EventListener onloadedmetadata;
283         attribute EventListener onloadstart;
284         attribute EventListener onmessage;
285         attribute EventListener onmousedown;
286         attribute EventListener onmousemove;
287         attribute EventListener onmouseout;
288         attribute EventListener onmouseover;
289         attribute EventListener onmouseup;
290         attribute EventListener onmousewheel;
291         attribute EventListener onoffline;
292         attribute EventListener ononline;
293         attribute EventListener onpagehide;
294         attribute EventListener onpageshow;
295         attribute EventListener onpause;
296         attribute EventListener onplay;
297         attribute EventListener onplaying;
298         attribute EventListener onpopstate;
299         attribute EventListener onprogress;
300         attribute EventListener onratechange;
301         attribute EventListener onresize;
302         attribute EventListener onscroll;
303         attribute EventListener onseeked;
304         attribute EventListener onseeking;
305         attribute EventListener onselect;
306         attribute EventListener onstalled;
307         attribute EventListener onstorage;
308         attribute EventListener onsubmit;
309         attribute EventListener onsuspend;
310         attribute EventListener ontimeupdate;
311         attribute EventListener onunload;
312         attribute EventListener onvolumechange;
313         attribute EventListener onwaiting;
314
315         // Not implemented yet.
316         // attribute EventListener onafterprint;
317         // attribute EventListener onbeforeprint;
318         // attribute EventListener onreadystatechange;
319         // attribute EventListener onredo;
320         // attribute EventListener onshow;
321         // attribute EventListener onundo;
322
323         // Webkit extensions
324         attribute EventListener onreset;
325         attribute EventListener onsearch;
326         attribute EventListener onwebkitanimationend;
327         attribute EventListener onwebkitanimationiteration;
328         attribute EventListener onwebkitanimationstart;
329         attribute EventListener onwebkittransitionend;
330 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
331         attribute EventListener onorientationchange;
332 #endif
333         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchstart;
334         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchmove;
335         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchend;
336         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchcancel;
337
338         attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] EventListener ondevicemotion;
339         attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] EventListener ondeviceorientation;
340
341         attribute [Conditional=MEDIA_STREAM,EnabledAtRuntime] PeerConnectionConstructor webkitPeerConnection;
342
343         // EventTarget interface
344         [Custom] void addEventListener(in DOMString type,
345                                       in EventListener listener,
346                                       in [Optional] boolean useCapture);
347         [Custom] void removeEventListener(in DOMString type,
348                                           in EventListener listener,
349                                           in [Optional] boolean useCapture);
350         boolean dispatchEvent(in Event evt)
351             raises(EventException);
352
353         [V8Custom=DOMWindowNOP] void captureEvents(/*in long eventFlags*/);
354         [V8Custom=DOMWindowNOP] void releaseEvents(/*in long eventFlags*/);
355
356 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
357         // Global constructors
358         attribute StyleSheetConstructor StyleSheet;
359         attribute CSSStyleSheetConstructor CSSStyleSheet;
360
361         attribute CSSValueConstructor CSSValue;
362         attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
363         attribute CSSValueListConstructor CSSValueList;
364         attribute WebKitCSSTransformValueConstructor WebKitCSSTransformValue;
365
366 #if defined(ENABLE_CSS_FILTERS) && ENABLE_CSS_FILTERS
367         attribute WebKitCSSFilterValueConstructor WebKitCSSFilterValue;
368 #endif
369
370         attribute CSSRuleConstructor CSSRule;
371         attribute CSSCharsetRuleConstructor CSSCharsetRule;
372         attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
373         attribute CSSImportRuleConstructor CSSImportRule;
374         attribute CSSMediaRuleConstructor CSSMediaRule;
375         attribute CSSPageRuleConstructor CSSPageRule;
376         attribute CSSStyleRuleConstructor CSSStyleRule;
377         
378         attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
379         attribute MediaListConstructor MediaList;
380         attribute CounterConstructor Counter;
381         attribute CSSRuleListConstructor CSSRuleList;
382         attribute RectConstructor Rect;
383         attribute RGBColorConstructor RGBColor;
384         attribute StyleSheetListConstructor StyleSheetList;
385
386         // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
387         attribute DOMCoreExceptionConstructor DOMException;
388         attribute DOMStringListConstructor DOMStringList;
389 //        attribute NameListConstructor NameList;
390 //        attribute DOMImplementationListConstructor DOMImplementationList;
391 //        attribute DOMImplementationSourceConstructor DOMImplementationSource;
392         attribute DOMImplementationConstructor DOMImplementation;
393         attribute DOMSettableTokenListConstructor DOMSettableTokenList;
394         attribute DOMTokenListConstructor DOMTokenList;
395         attribute DocumentFragmentConstructor DocumentFragment;
396         attribute DocumentConstructor Document;
397         attribute NodeConstructor Node;
398         attribute NodeListConstructor NodeList;
399         attribute NamedNodeMapConstructor NamedNodeMap;
400         attribute CharacterDataConstructor CharacterData;
401         attribute AttrConstructor Attr;
402         attribute ElementConstructor Element;
403         attribute TextConstructor Text;
404         attribute CommentConstructor Comment;
405 //        attribute TypeInfoConstructor TypeInfo;
406 //        attribute UserDataHandlerConstructor UserDataHandler;
407 //        attribute DOMErrorConstructor DOMError;
408 //        attribute DOMErrorHandlerConstructor DOMErrorHandler
409 //        attribute DOMLocatorConstructor DOMLocator;
410 //        attribute DOMConfigurationConstructor DOMConfiguration;
411         attribute CDATASectionConstructor CDATASection;
412         attribute DocumentTypeConstructor DocumentType;
413         attribute NotationConstructor Notation;
414         attribute EntityConstructor Entity;
415         attribute EntityReferenceConstructor EntityReference;
416         attribute ProcessingInstructionConstructor ProcessingInstruction;
417
418         attribute HTMLDocumentConstructor HTMLDocument;
419
420         attribute HTMLElementConstructor HTMLElement;
421         attribute HTMLAnchorElementConstructor HTMLAnchorElement;
422         attribute HTMLAppletElementConstructor HTMLAppletElement;
423         attribute HTMLAreaElementConstructor HTMLAreaElement;
424         attribute HTMLBRElementConstructor HTMLBRElement;
425         attribute HTMLBaseElementConstructor HTMLBaseElement;
426         attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
427         attribute HTMLBodyElementConstructor HTMLBodyElement;
428         attribute HTMLButtonElementConstructor HTMLButtonElement;
429         attribute HTMLCanvasElementConstructor HTMLCanvasElement;
430         attribute HTMLDListElementConstructor HTMLDListElement;
431         attribute HTMLDirectoryElementConstructor HTMLDirectoryElement;
432         attribute HTMLDivElementConstructor HTMLDivElement;
433         attribute HTMLEmbedElementConstructor HTMLEmbedElement;
434         attribute HTMLFieldSetElementConstructor HTMLFieldSetElement;
435         attribute HTMLFontElementConstructor HTMLFontElement;
436         attribute HTMLFormElementConstructor HTMLFormElement;
437         attribute HTMLFrameElementConstructor HTMLFrameElement;
438         attribute HTMLFrameSetElementConstructor HTMLFrameSetElement;
439         attribute HTMLHRElementConstructor HTMLHRElement;
440         attribute HTMLHeadElementConstructor HTMLHeadElement;
441         attribute HTMLHeadingElementConstructor HTMLHeadingElement;
442         attribute HTMLHtmlElementConstructor HTMLHtmlElement;
443         attribute HTMLIFrameElementConstructor HTMLIFrameElement;
444         attribute HTMLImageElementConstructor HTMLImageElement;
445         attribute HTMLInputElementConstructor HTMLInputElement;
446         attribute HTMLIsIndexElementConstructor HTMLIsIndexElement;
447         attribute HTMLKeygenElementConstructor HTMLKeygenElement;
448         attribute HTMLLIElementConstructor HTMLLIElement;
449         attribute HTMLLabelElementConstructor HTMLLabelElement;
450         attribute HTMLLegendElementConstructor HTMLLegendElement;
451         attribute HTMLLinkElementConstructor HTMLLinkElement;
452         attribute HTMLMapElementConstructor HTMLMapElement;
453         attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
454         attribute HTMLMenuElementConstructor HTMLMenuElement;
455         attribute HTMLMetaElementConstructor HTMLMetaElement;
456 #if defined(ENABLE_METER_TAG) && ENABLE_METER_TAG
457         attribute HTMLMeterElementConstructor HTMLMeterElement;
458 #endif
459         attribute HTMLModElementConstructor HTMLModElement;
460         attribute HTMLOListElementConstructor HTMLOListElement;
461         attribute HTMLObjectElementConstructor HTMLObjectElement;
462         attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
463         attribute HTMLOptionElementConstructor HTMLOptionElement;
464         attribute HTMLOutputElementConstructor HTMLOutputElement;
465         attribute HTMLParagraphElementConstructor HTMLParagraphElement;
466         attribute HTMLParamElementConstructor HTMLParamElement;
467         attribute HTMLPreElementConstructor HTMLPreElement;
468 #if defined(ENABLE_PROGRESS_TAG) && ENABLE_PROGRESS_TAG
469         attribute HTMLProgressElementConstructor HTMLProgressElement;
470 #endif
471         attribute HTMLQuoteElementConstructor HTMLQuoteElement;
472         attribute HTMLScriptElementConstructor HTMLScriptElement;
473         attribute HTMLSelectElementConstructor HTMLSelectElement;
474         attribute HTMLSpanElementConstructor HTMLSpanElement;
475         attribute HTMLStyleElementConstructor HTMLStyleElement;
476         attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement;
477         attribute HTMLTableCellElementConstructor HTMLTableCellElement;
478         attribute HTMLTableColElementConstructor HTMLTableColElement;
479         attribute HTMLTableElementConstructor HTMLTableElement;
480         attribute HTMLTableRowElementConstructor HTMLTableRowElement;
481         attribute HTMLTableSectionElementConstructor HTMLTableSectionElement;
482         attribute HTMLTextAreaElementConstructor HTMLTextAreaElement;
483         attribute HTMLTitleElementConstructor HTMLTitleElement;
484         attribute HTMLUListElementConstructor HTMLUListElement;
485
486         attribute HTMLCollectionConstructor HTMLCollection;
487         attribute HTMLAllCollectionConstructor HTMLAllCollection;
488         attribute HTMLUnknownElementConstructor HTMLUnknownElement;
489
490         attribute [CustomGetter] HTMLImageElementConstructor Image; // Usable with new operator
491         attribute [CustomGetter] HTMLOptionElementConstructor Option; // Usable with new operator
492
493         attribute CanvasPatternConstructor CanvasPattern;
494         attribute CanvasGradientConstructor CanvasGradient;
495         attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
496         attribute ImageDataConstructor ImageData;
497         attribute [Conditional=WEBGL] WebGLActiveInfoConstructor WebGLActiveInfo;
498         attribute [Conditional=WEBGL] WebGLBufferConstructor WebGLBuffer;
499         attribute [Conditional=WEBGL] WebGLFramebufferConstructor WebGLFramebuffer;
500         attribute [Conditional=WEBGL] WebGLProgramConstructor WebGLProgram;
501         attribute [Conditional=WEBGL] WebGLRenderbufferConstructor WebGLRenderbuffer;
502         attribute [Conditional=WEBGL] WebGLRenderingContextConstructor WebGLRenderingContext;
503         attribute [Conditional=WEBGL] WebGLShaderConstructor WebGLShader;
504         attribute [Conditional=WEBGL] WebGLTextureConstructor WebGLTexture;
505         attribute [Conditional=WEBGL] WebGLUniformLocationConstructor WebGLUniformLocation;
506         attribute TextMetricsConstructor TextMetrics;
507
508         attribute DOMStringMapConstructor DOMStringMap;
509
510         attribute [JSCCustomGetter] ArrayBufferConstructor ArrayBuffer; // Usable with new operator
511         attribute [JSCCustomGetter] Int8ArrayConstructor Int8Array; // Usable with new operator
512         attribute [JSCCustomGetter] Uint8ArrayConstructor Uint8Array; // Usable with new operator
513         attribute [JSCCustomGetter] Int16ArrayConstructor Int16Array; // Usable with new operator
514         attribute [JSCCustomGetter] Uint16ArrayConstructor Uint16Array; // Usable with new operator
515         attribute [JSCCustomGetter] Int32ArrayConstructor Int32Array; // Usable with new operator
516         attribute [JSCCustomGetter] Uint32ArrayConstructor Uint32Array; // Usable with new operator
517         attribute [JSCCustomGetter] Float32ArrayConstructor Float32Array; // Usable with new operator
518         attribute [JSCCustomGetter] Float64ArrayConstructor Float64Array; // Usable with new operator
519         attribute [JSCCustomGetter] DataViewConstructor DataView; // Usable with new operator
520
521         attribute [JSCCustomGetter,Conditional=WEB_AUDIO,EnabledAtRuntime] AudioContextConstructor webkitAudioContext; // Usable with new operator
522         attribute [Conditional=WEB_AUDIO] AudioPannerNodeConstructor webkitAudioPannerNode; // Needed for panning model constants
523
524         // Event Constructors
525         attribute EventConstructor Event;
526         attribute BeforeLoadEventConstructor BeforeLoadEvent;
527         attribute CompositionEventConstructor CompositionEvent;
528         attribute CustomEventConstructor CustomEvent;
529         attribute ErrorEventConstructor ErrorEvent;
530         attribute HashChangeEventConstructor HashChangeEvent;
531         attribute KeyboardEventConstructor KeyboardEvent;
532         attribute MessageEventConstructor MessageEvent;
533         attribute MouseEventConstructor MouseEvent;
534         attribute MutationEventConstructor MutationEvent;
535         attribute OverflowEventConstructor OverflowEvent;
536         attribute PopStateEventConstructor PopStateEvent;
537         attribute PageTransitionEventConstructor PageTransitionEvent;
538         attribute ProgressEventConstructor ProgressEvent;
539         attribute TextEventConstructor TextEvent;
540         attribute UIEventConstructor UIEvent;
541         attribute WebKitAnimationEventConstructor WebKitAnimationEvent;
542         attribute WebKitTransitionEventConstructor WebKitTransitionEvent;
543         attribute WheelEventConstructor WheelEvent;
544         attribute XMLHttpRequestProgressEventConstructor XMLHttpRequestProgressEvent;
545         attribute [Conditional=SVG] SVGZoomEventConstructor SVGZoomEvent;
546         attribute [Conditional=DEVICE_ORIENTATION, EnabledAtRuntime] DeviceMotionEventConstructor DeviceMotionEvent;
547         attribute [Conditional=DEVICE_ORIENTATION, EnabledAtRuntime] DeviceOrientationEventConstructor DeviceOrientationEvent;
548         attribute [Conditional=TOUCH_EVENTS] TouchEventConstructor TouchEvent;
549         attribute [Conditional=WEB_SOCKETS] CloseEventConstructor CloseEvent;
550         attribute StorageEventConstructor StorageEvent;
551         attribute [Conditional=WEB_AUDIO] AudioProcessingEventConstructor AudioProcessingEvent;
552         attribute [Conditional=WEB_AUDIO] OfflineAudioCompletionEventConstructor OfflineAudioCompletionEvent;
553         attribute [Conditional=INPUT_SPEECH] SpeechInputEventConstructor SpeechInputEvent;
554         attribute [Conditional=MEDIA_STREAM] MediaStreamEventConstructor MediaStreamEvent;
555         attribute [Conditional=WEBGL] WebGLContextEventConstructor WebGLContextEvent;
556
557         attribute EventExceptionConstructor EventException;
558
559         attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
560         attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
561
562         attribute [JSCCustomGetter] WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
563
564         attribute [JSCCustomGetter] WebKitPointConstructor WebKitPoint; // Usable with new the operator
565
566         attribute ClipboardConstructor Clipboard;
567
568         attribute FileConstructor File;
569         attribute FileListConstructor FileList;
570         attribute BlobConstructor Blob;
571
572         attribute NodeFilterConstructor NodeFilter;
573         attribute RangeConstructor Range;
574         attribute RangeExceptionConstructor RangeException;
575
576         attribute [JSCCustomGetter] EventSourceConstructor EventSource; // Usable with new the operator
577
578         // Mozilla has a separate XMLDocument object for XML documents. 
579         // We just use Document for this.
580         attribute DocumentConstructor XMLDocument;
581
582         attribute DOMParserConstructor DOMParser;
583         attribute XMLSerializerConstructor XMLSerializer;
584
585         attribute [JSCCustomGetter] XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
586         attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
587         attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
588
589         attribute [JSCCustomGetter,Conditional=XSLT] XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
590
591 #if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
592         attribute MessagePortConstructor MessagePort;
593         attribute [JSCCustomGetter] MessageChannelConstructor MessageChannel; // Usable with the new operator
594 #endif
595
596 #if defined(ENABLE_WORKERS) && ENABLE_WORKERS
597         attribute [JSCCustomGetter] WorkerConstructor Worker; // Usable with the new operator
598 #endif
599
600 #if defined(ENABLE_SHARED_WORKERS) && ENABLE_SHARED_WORKERS
601         attribute [JSCCustomGetter, EnabledAtRuntime] SharedWorkerConstructor SharedWorker; // Usable with the new operator
602 #endif
603
604 #if defined(ENABLE_WEB_SOCKETS) && ENABLE_WEB_SOCKETS
605         attribute [JSCCustomGetter,EnabledAtRuntime] WebSocketConstructor WebSocket; // Usable with the new operator
606 #endif
607
608         attribute DOMPluginConstructor Plugin;
609         attribute DOMPluginArrayConstructor PluginArray;
610
611         attribute DOMMimeTypeConstructor MimeType;
612         attribute DOMMimeTypeArrayConstructor MimeTypeArray;
613
614         attribute ClientRectConstructor ClientRect;
615         attribute ClientRectListConstructor ClientRectList;
616
617         attribute StorageConstructor Storage;
618
619         attribute [CustomGetter, Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor Audio; // Usable with the new operator
620         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor HTMLAudioElement;
621         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLMediaElementConstructor HTMLMediaElement;
622         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLVideoElementConstructor HTMLVideoElement;
623         attribute [Conditional=VIDEO, EnabledAtRuntime] MediaErrorConstructor MediaError;
624         attribute [Conditional=VIDEO, EnabledAtRuntime] TimeRangesConstructor TimeRanges;
625         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLSourceElementConstructor HTMLSourceElement;
626
627 #if defined(ENABLE_ANIMATION_API) && ENABLE_ANIMATION_API
628         attribute WebKitAnimationConstructor WebKitAnimation;
629         attribute WebKitAnimationListConstructor WebKitAnimationList;
630 #endif
631
632 #if defined(ENABLE_XPATH) && ENABLE_XPATH
633         attribute XPathEvaluatorConstructor XPathEvaluator;
634         attribute XPathResultConstructor XPathResult;
635         attribute XPathExceptionConstructor XPathException;
636 #endif
637
638 #if defined(ENABLE_SVG) && ENABLE_SVG
639         // Expose all implemented SVG 1.1 interfaces, excluding the SVG MI interfaces:
640         // SVGAnimatedPathData, SVGAnimatedPoints, SVGExternalResourcesRequired,
641         // SVGFilterPrimitiveStandardAttributes, SVGFitToViewBox, SVGLangSpace, SVGLocatable
642         // SVGStylable, SVGTests, SVGTransformable, SVGURIReference, SVGZoomAndPan
643         attribute SVGAElementConstructor SVGAElement;
644         attribute SVGAngleConstructor SVGAngle;
645         attribute SVGAnimatedAngleConstructor SVGAnimatedAngle;
646         attribute SVGAnimatedBooleanConstructor SVGAnimatedBoolean;
647         attribute SVGAnimatedEnumerationConstructor SVGAnimatedEnumeration;
648         attribute SVGAnimatedIntegerConstructor SVGAnimatedInteger;
649         attribute SVGAnimatedLengthConstructor SVGAnimatedLength;
650         attribute SVGAnimatedLengthListConstructor SVGAnimatedLengthList;
651         attribute SVGAnimatedNumberConstructor SVGAnimatedNumber;
652         attribute SVGAnimatedNumberListConstructor SVGAnimatedNumberList;
653         attribute SVGAnimatedPreserveAspectRatioConstructor SVGAnimatedPreserveAspectRatio;
654         attribute SVGAnimatedRectConstructor SVGAnimatedRect;
655         attribute SVGAnimatedStringConstructor SVGAnimatedString;
656         attribute SVGAnimatedTransformListConstructor SVGAnimatedTransformList;
657         attribute SVGCircleElementConstructor SVGCircleElement;
658         attribute SVGClipPathElementConstructor SVGClipPathElement;
659         attribute SVGColorConstructor SVGColor;
660         attribute SVGCursorElementConstructor SVGCursorElement;
661 //      attribute SVGCSSRuleConstructor SVGCSSRule;
662         attribute SVGDefsElementConstructor SVGDefsElement;
663         attribute SVGDescElementConstructor SVGDescElement;
664         attribute SVGDocumentConstructor SVGDocument;
665         attribute SVGElementConstructor SVGElement;
666         attribute SVGElementInstanceConstructor SVGElementInstance;
667         attribute SVGElementInstanceListConstructor SVGElementInstanceList;
668         attribute SVGEllipseElementConstructor SVGEllipseElement;
669         attribute SVGForeignObjectElementConstructor SVGForeignObjectElement;
670         attribute SVGExceptionConstructor SVGException;
671         attribute SVGGElementConstructor SVGGElement;
672         attribute SVGGradientElementConstructor SVGGradientElement;
673         attribute SVGImageElementConstructor SVGImageElement;
674         attribute SVGLengthConstructor SVGLength;
675         attribute SVGLengthListConstructor SVGLengthList;
676         attribute SVGLinearGradientElementConstructor SVGLinearGradientElement;
677         attribute SVGLineElementConstructor SVGLineElement;
678         attribute SVGMarkerElementConstructor SVGMarkerElement;
679         attribute SVGMaskElementConstructor SVGMaskElement;
680         attribute SVGMatrixConstructor SVGMatrix;
681         attribute SVGMetadataElementConstructor SVGMetadataElement;
682         attribute SVGNumberConstructor SVGNumber;
683         attribute SVGNumberListConstructor SVGNumberList;
684         attribute SVGPaintConstructor SVGPaint;
685         attribute SVGPathElementConstructor SVGPathElement;
686         attribute SVGPathSegConstructor SVGPathSeg;
687         attribute SVGPathSegArcAbsConstructor SVGPathSegArcAbs;
688         attribute SVGPathSegArcRelConstructor SVGPathSegArcRel;
689         attribute SVGPathSegClosePathConstructor SVGPathSegClosePath;
690         attribute SVGPathSegCurvetoCubicAbsConstructor SVGPathSegCurvetoCubicAbs;
691         attribute SVGPathSegCurvetoCubicRelConstructor SVGPathSegCurvetoCubicRel;
692         attribute SVGPathSegCurvetoCubicSmoothAbsConstructor SVGPathSegCurvetoCubicSmoothAbs;
693         attribute SVGPathSegCurvetoCubicSmoothRelConstructor SVGPathSegCurvetoCubicSmoothRel;
694         attribute SVGPathSegCurvetoQuadraticAbsConstructor SVGPathSegCurvetoQuadraticAbs;
695         attribute SVGPathSegCurvetoQuadraticRelConstructor SVGPathSegCurvetoQuadraticRel;
696         attribute SVGPathSegCurvetoQuadraticSmoothAbsConstructor SVGPathSegCurvetoQuadraticSmoothAbs;
697         attribute SVGPathSegCurvetoQuadraticSmoothRelConstructor SVGPathSegCurvetoQuadraticSmoothRel;
698         attribute SVGPathSegLinetoAbsConstructor SVGPathSegLinetoAbs;
699         attribute SVGPathSegLinetoHorizontalAbsConstructor SVGPathSegLinetoHorizontalAbs;
700         attribute SVGPathSegLinetoHorizontalRelConstructor SVGPathSegLinetoHorizontalRel;
701         attribute SVGPathSegLinetoRelConstructor SVGPathSegLinetoRel;
702         attribute SVGPathSegLinetoVerticalAbsConstructor SVGPathSegLinetoVerticalAbs;
703         attribute SVGPathSegLinetoVerticalRelConstructor SVGPathSegLinetoVerticalRel;
704         attribute SVGPathSegListConstructor SVGPathSegList;
705         attribute SVGPathSegMovetoAbsConstructor SVGPathSegMovetoAbs;
706         attribute SVGPathSegMovetoRelConstructor SVGPathSegMovetoRel;
707         attribute SVGPatternElementConstructor SVGPatternElement;
708         attribute SVGPointConstructor SVGPoint;
709         attribute SVGPointListConstructor SVGPointList;
710         attribute SVGPolygonElementConstructor SVGPolygonElement;
711         attribute SVGPolylineElementConstructor SVGPolylineElement;
712         attribute SVGPreserveAspectRatioConstructor SVGPreserveAspectRatio;
713         attribute SVGRadialGradientElementConstructor SVGRadialGradientElement;
714         attribute SVGRectConstructor SVGRect;
715         attribute SVGRectElementConstructor SVGRectElement;
716         attribute SVGRenderingIntentConstructor SVGRenderingIntent;
717         attribute SVGScriptElementConstructor SVGScriptElement;
718         attribute SVGStopElementConstructor SVGStopElement;
719         attribute SVGStringListConstructor SVGStringList;
720         attribute SVGStyleElementConstructor SVGStyleElement;
721         attribute SVGSVGElementConstructor SVGSVGElement;
722         attribute SVGSwitchElementConstructor SVGSwitchElement;
723         attribute SVGSymbolElementConstructor SVGSymbolElement;
724         attribute SVGTextContentElementConstructor SVGTextContentElement;
725         attribute SVGTextElementConstructor SVGTextElement;
726         attribute SVGTextPathElementConstructor SVGTextPathElement;
727         attribute SVGTextPositioningElementConstructor SVGTextPositioningElement;
728         attribute SVGTitleElementConstructor SVGTitleElement;
729         attribute SVGTransformConstructor SVGTransform;
730         attribute SVGTransformListConstructor SVGTransformList;
731         attribute SVGTRefElementConstructor SVGTRefElement;
732         attribute SVGTSpanElementConstructor SVGTSpanElement;
733         attribute SVGUnitTypesConstructor SVGUnitTypes;
734         attribute SVGUseElementConstructor SVGUseElement;
735         attribute SVGViewElementConstructor SVGViewElement;
736 //      attribute SVGViewSpecConstructor SVGViewSpec;
737
738         attribute SVGAnimateColorElementConstructor SVGAnimateColorElement;
739         attribute SVGAnimateElementConstructor SVGAnimateElement;
740         attribute SVGAnimateMotionElementConstructor SVGAnimateMotionElement;
741         attribute SVGAnimateTransformElementConstructor SVGAnimateTransformElement;
742         attribute SVGMPathElementConstructor SVGMPathElement;
743         attribute SVGSetElementConstructor SVGSetElement;
744
745 #if defined(ENABLE_SVG_FONTS) && ENABLE_SVG_FONTS
746         attribute SVGAltGlyphDefElementConstructor SVGAltGlyphDefElement;
747         attribute SVGAltGlyphElementConstructor SVGAltGlyphElement;
748         attribute SVGAltGlyphItemElementConstructor SVGAltGlyphItemElement;
749 //      attribute SVGDefinitionSrcElementConstructor SVGDefinitionSrcElement;
750         attribute SVGFontElementConstructor SVGFontElement;
751         attribute SVGFontFaceElementConstructor SVGFontFaceElement;
752         attribute SVGFontFaceFormatElementConstructor SVGFontFaceFormatElement;
753         attribute SVGFontFaceNameElementConstructor SVGFontFaceNameElement;
754         attribute SVGFontFaceSrcElementConstructor SVGFontFaceSrcElement;
755         attribute SVGFontFaceUriElementConstructor SVGFontFaceUriElement;
756         attribute SVGGlyphElementConstructor SVGGlyphElement;
757         attribute SVGGlyphRefElementConstructor SVGGlyphRefElement;
758         attribute SVGHKernElementConstructor SVGHKernElement;
759         attribute SVGMissingGlyphElementConstructor SVGMissingGlyphElement;
760         attribute SVGVKernElementConstructor SVGVKernElement;
761 #endif
762
763 #if defined(ENABLE_FILTERS) && ENABLE_FILTERS
764         attribute SVGComponentTransferFunctionElementConstructor SVGComponentTransferFunctionElement;
765         attribute SVGFEBlendElementConstructor SVGFEBlendElement;
766         attribute SVGFEColorMatrixElementConstructor SVGFEColorMatrixElement;
767         attribute SVGFEComponentTransferElementConstructor SVGFEComponentTransferElement;
768         attribute SVGFECompositeElementConstructor SVGFECompositeElement;
769         attribute SVGFEConvolveMatrixElementConstructor SVGFEConvolveMatrixElement;
770         attribute SVGFEDiffuseLightingElementConstructor SVGFEDiffuseLightingElement;
771         attribute SVGFEDisplacementMapElementConstructor SVGFEDisplacementMapElement;
772         attribute SVGFEDistantLightElementConstructor SVGFEDistantLightElement;
773         attribute SVGFEDropShadowElementConstructor SVGFEDropShadowElement;
774         attribute SVGFEFloodElementConstructor SVGFEFloodElement;
775         attribute SVGFEFuncAElementConstructor SVGFEFuncAElement;
776         attribute SVGFEFuncBElementConstructor SVGFEFuncBElement;
777         attribute SVGFEFuncGElementConstructor SVGFEFuncGElement;
778         attribute SVGFEFuncRElementConstructor SVGFEFuncRElement;
779         attribute SVGFEGaussianBlurElementConstructor SVGFEGaussianBlurElement;
780         attribute SVGFEImageElementConstructor SVGFEImageElement;
781         attribute SVGFEMergeElementConstructor SVGFEMergeElement;
782         attribute SVGFEMergeNodeElementConstructor SVGFEMergeNodeElement;
783         attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement;
784         attribute SVGFEOffsetElementConstructor SVGFEOffsetElement;
785         attribute SVGFEPointLightElementConstructor SVGFEPointLightElement;
786         attribute SVGFESpecularLightingElementConstructor SVGFESpecularLightingElement;
787         attribute SVGFESpotLightElementConstructor SVGFESpotLightElement;
788         attribute SVGFETileElementConstructor SVGFETileElement;
789         attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement;
790         attribute SVGFilterElementConstructor SVGFilterElement;
791 #endif
792 #endif
793
794         attribute [Conditional=SQL_DATABASE] SQLExceptionConstructor SQLException;
795
796
797         attribute DOMFormDataConstructor FormData;
798
799         attribute [Conditional=BLOB|FILE_SYSTEM] FileErrorConstructor FileError;
800         attribute [Conditional=BLOB] FileReaderConstructor FileReader;
801
802         attribute [Conditional=BLOB] WebKitBlobBuilderConstructor WebKitBlobBuilder;
803
804         readonly attribute [Conditional=BLOB] DOMURL webkitURL;
805
806 #if defined(ENABLE_QUOTA) && ENABLE_QUOTA
807         readonly attribute [EnabledAtRuntime=Quota] StorageInfo webkitStorageInfo;
808 #endif
809
810         attribute [Conditional=MUTATION_OBSERVERS] WebKitMutationObserverConstructor WebKitMutationObserver;
811
812 #endif // defined(LANGUAGE_JAVASCRIPT)
813
814 #if defined(V8_BINDING) && V8_BINDING
815         // window.toString() requires special handling in V8
816         [V8DoNotCheckSignature, DoNotCheckDomainSecurity, Custom, DontEnum] DOMString toString();
817 #endif // defined(V8_BINDING)
818     };
819
820 }
821