7dfc7d0c36241929b04eb28ca52aabd9a7f8b1ea
[WebKit-https.git] / 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         CheckDomainSecurity,
30         CustomDefineGetter,
31         CustomDefineSetter,
32         CustomDeleteProperty,
33         CustomGetOwnPropertySlot,
34         CustomGetPropertyAttributes,
35         CustomGetPropertyNames,
36         CustomLookupGetter,
37         CustomLookupSetter,
38         CustomMarkFunction,
39         CustomNativeConverter,
40         CustomPutFunction,
41         ExtendsDOMGlobalObject,
42         EventTarget,
43         GenerateNativeConverter,
44         LegacyParent=JSDOMWindowBase
45     ] DOMWindow {
46         // DOM Level 0
47         readonly attribute Screen screen;
48         readonly attribute [DoNotCheckDomainSecurity, JSCCustomGetter] History history;
49         attribute [Replaceable] BarInfo locationbar;
50         attribute [Replaceable] BarInfo menubar;
51         attribute [Replaceable] BarInfo personalbar;
52         attribute [Replaceable] BarInfo scrollbars;
53         attribute [Replaceable] BarInfo statusbar;
54         attribute [Replaceable] BarInfo toolbar;
55         attribute [Replaceable] Navigator navigator;
56         attribute [Replaceable] Navigator clientInformation;
57         attribute [DoNotCheckDomainSecurity, JSCCustom, V8CustomSetter, V8DisallowShadowing] Location location;
58
59         attribute [Replaceable, CustomGetter, V8CustomSetter] Event event;
60
61         readonly attribute [Custom] Crypto crypto;
62
63         DOMSelection getSelection();
64
65         readonly attribute [CheckNodeSecurity] Element frameElement;
66
67         [DoNotCheckDomainSecurity] void focus();
68         [DoNotCheckDomainSecurity] void blur();
69         [DoNotCheckDomainSecurity] void close();
70
71         void print();
72         void stop();
73
74         [Custom] DOMWindow open(in DOMString url,
75                                 in DOMString name,
76                                 in [Optional] DOMString options);
77
78         [Custom] DOMObject showModalDialog(in DOMString url,
79                                            in [Optional] DOMObject dialogArgs,
80                                            in [Optional] DOMString featureArgs);
81
82         void alert(in DOMString message);
83         boolean confirm(in DOMString message);
84         [ConvertNullStringTo=Null] DOMString prompt(in DOMString message,
85                                                     in [ConvertUndefinedOrNullToNullString] DOMString defaultValue);
86
87         boolean find(in DOMString string,
88                      in boolean caseSensitive,
89                      in boolean backwards,
90                      in boolean wrap,
91                      in boolean wholeWord,
92                      in boolean searchInFrames,
93                      in boolean showDialog);
94
95         attribute [Replaceable] boolean offscreenBuffering;
96
97         attribute [Replaceable] long outerHeight;
98         attribute [Replaceable] long outerWidth;
99         attribute [Replaceable] long innerHeight;
100         attribute [Replaceable] long innerWidth;
101         attribute [Replaceable] long screenX;
102         attribute [Replaceable] long screenY;
103         attribute [Replaceable] long screenLeft;
104         attribute [Replaceable] long screenTop;
105         attribute [Replaceable] long scrollX;
106         attribute [Replaceable] long scrollY;
107         readonly attribute long pageXOffset;
108         readonly attribute long pageYOffset;
109
110         [RequiresAllArguments] void scrollBy(in long x, in long y);
111         [RequiresAllArguments] void scrollTo(in long x, in long y);
112         [RequiresAllArguments] void scroll(in long x, in long y);
113         [RequiresAllArguments] void moveBy(in float x, in float y); // FIXME: this should take longs not floats.
114         [RequiresAllArguments] void moveTo(in float x, in float y); // FIXME: this should take longs not floats.
115         [RequiresAllArguments] void resizeBy(in float x, in float y); // FIXME: this should take longs not floats.
116         [RequiresAllArguments] void resizeTo(in float width, in float height); // FIXME: this should take longs not floats.
117
118         readonly attribute [DoNotCheckDomainSecurity] boolean closed;
119
120         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] unsigned long length;
121
122         attribute DOMString name;
123
124         attribute DOMString status;
125         attribute DOMString defaultStatus;
126 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
127         // This attribute is an alias of defaultStatus and is necessary for legacy uses.
128         attribute DOMString defaultstatus;
129 #endif
130
131         // Self referential attributes
132         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow self;
133         readonly attribute [DoNotCheckDomainSecurity, V8DisallowShadowing] DOMWindow window;
134         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow frames;
135
136         attribute [Replaceable, DoNotCheckDomainSecurityOnGet, V8CustomSetter] DOMWindow opener;
137         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow parent;
138         attribute [Replaceable, DoNotCheckDomainSecurityOnGet, V8DisallowShadowing, V8ReadOnly] DOMWindow top;
139
140         // DOM Level 2 AbstractView Interface
141         readonly attribute Document document;
142
143         // CSSOM View Module
144         readonly attribute Media media;
145
146         // DOM Level 2 Style Interface
147         CSSStyleDeclaration getComputedStyle(in Element element,
148                                              in DOMString pseudoElement);
149
150         // WebKit extensions
151         CSSRuleList getMatchedCSSRules(in Element element,
152                                        in DOMString pseudoElement,
153                                        in [Optional] boolean authorOnly);
154         attribute [Replaceable] double devicePixelRatio;
155         
156         WebKitPoint webkitConvertPointFromPageToNode(in Node node, in WebKitPoint p);
157         WebKitPoint webkitConvertPointFromNodeToPage(in Node node, in WebKitPoint p);
158
159 #if defined(ENABLE_OFFLINE_WEB_APPLICATIONS) && ENABLE_OFFLINE_WEB_APPLICATIONS
160         readonly attribute DOMApplicationCache applicationCache;
161 #endif    
162 #if defined(ENABLE_DATABASE) && ENABLE_DATABASE
163         Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize)
164             raises(DOMException);
165 #endif
166 #if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
167         readonly attribute [EnabledAtRuntime] Storage sessionStorage;
168         readonly attribute [EnabledAtRuntime] Storage localStorage;
169 #endif
170 #if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
171         readonly attribute [EnabledAtRuntime] NotificationCenter webkitNotifications;
172 #endif
173
174 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
175         // This is the interface orientation in degrees. Some examples are:
176         //  0 is straight up; -90 is when the device is rotated 90 clockwise;
177         //  90 is when rotated counter clockwise.
178         readonly attribute long orientation;
179 #endif
180
181                  attribute [Replaceable] Console console;
182
183         // cross-document messaging
184 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
185         [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] Array messagePorts, in DOMString targetOrigin)
186             raises(DOMException);
187 #else
188         // There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port.
189         [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] MessagePort messagePort, in DOMString targetOrigin)
190             raises(DOMException);
191 #endif
192
193         // Timers
194         [Custom] long setTimeout(in TimeoutHandler handler, in long timeout);
195         // [Custom] long setTimeout(in TimeoutHandler handler, in long timeout, arguments...);
196         // [Custom] long setTimeout(in DOMString code, in long timeout);
197         void clearTimeout(in long handle);
198         [Custom] long setInterval(in TimeoutHandler handler, in long timeout);
199         // [Custom] long setInterval(in TimeoutHandler handler, in long timeout, arguments...);
200         // [Custom] long setInterval(in DOMString code, in long timeout);
201         void clearInterval(in long handle);
202
203         // Base64
204         [Custom] DOMString atob(in DOMString string)
205             raises(DOMException);
206         [Custom] DOMString btoa(in DOMString string)
207             raises(DOMException);
208
209         // Events
210         attribute EventListener onabort;
211         attribute EventListener onbeforeunload;
212         attribute EventListener onblur;
213         attribute EventListener oncanplay;
214         attribute EventListener oncanplaythrough;
215         attribute EventListener onchange;
216         attribute EventListener onclick;
217         attribute EventListener oncontextmenu;
218         attribute EventListener ondblclick;
219         attribute EventListener ondrag;
220         attribute EventListener ondragend;
221         attribute EventListener ondragenter;
222         attribute EventListener ondragleave;
223         attribute EventListener ondragover;
224         attribute EventListener ondragstart;
225         attribute EventListener ondrop;
226         attribute EventListener ondurationchange;
227         attribute EventListener onemptied;
228         attribute EventListener onended;
229         attribute EventListener onerror;
230         attribute EventListener onfocus;
231         attribute EventListener onhashchange;
232         attribute EventListener oninput;
233         attribute EventListener oninvalid;
234         attribute EventListener onkeydown;
235         attribute EventListener onkeypress;
236         attribute EventListener onkeyup;
237         attribute EventListener onload;
238         attribute EventListener onloadeddata;
239         attribute EventListener onloadedmetadata;
240         attribute EventListener onloadstart;
241         attribute EventListener onmessage;
242         attribute EventListener onmousedown;
243         attribute EventListener onmousemove;
244         attribute EventListener onmouseout;
245         attribute EventListener onmouseover;
246         attribute EventListener onmouseup;
247         attribute EventListener onmousewheel;
248         attribute EventListener onoffline;
249         attribute EventListener ononline;
250         attribute EventListener onpagehide;
251         attribute EventListener onpageshow;
252         attribute EventListener onpause;
253         attribute EventListener onplay;
254         attribute EventListener onplaying;
255         attribute EventListener onprogress;
256         attribute EventListener onratechange;
257         attribute EventListener onresize;
258         attribute EventListener onscroll;
259         attribute EventListener onseeked;
260         attribute EventListener onseeking;
261         attribute EventListener onselect;
262         attribute EventListener onstalled;
263         attribute EventListener onstorage;
264         attribute EventListener onsubmit;
265         attribute EventListener onsuspend;
266         attribute EventListener ontimeupdate;
267         attribute EventListener onunload;
268         attribute EventListener onvolumechange;
269         attribute EventListener onwaiting;
270
271         // Not implemented yet.
272         // attribute EventListener onafterprint;
273         // attribute EventListener onbeforeprint;
274         // attribute EventListener onformchange;
275         // attribute EventListener onforminput;
276         // attribute EventListener onpopstate;
277         // attribute EventListener onreadystatechange;
278         // attribute EventListener onredo;
279         // attribute EventListener onshow;
280         // attribute EventListener onundo;
281
282         // Webkit extensions
283         attribute EventListener onreset;
284         attribute EventListener onsearch;
285         attribute EventListener onwebkitanimationend;
286         attribute EventListener onwebkitanimationiteration;
287         attribute EventListener onwebkitanimationstart;
288         attribute EventListener onwebkittransitionend;
289 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
290         attribute EventListener onorientationchange;
291 #endif
292
293         // EventTarget interface
294         [Custom] void addEventListener(in DOMString type,
295                                       in EventListener listener,
296                                       in boolean useCapture);
297         [Custom] void removeEventListener(in DOMString type,
298                                           in EventListener listener,
299                                           in boolean useCapture);
300         boolean dispatchEvent(in Event evt)
301             raises(EventException);
302
303         [V8Custom=DOMWindowNOP] void captureEvents(/*in long eventFlags*/);
304         [V8Custom=DOMWindowNOP] void releaseEvents(/*in long eventFlags*/);
305
306 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
307         // Global constructors
308         attribute StyleSheetConstructor StyleSheet;
309         attribute CSSStyleSheetConstructor CSSStyleSheet;
310
311         attribute CSSValueConstructor CSSValue;
312         attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
313         attribute CSSValueListConstructor CSSValueList;
314         attribute WebKitCSSTransformValueConstructor WebKitCSSTransformValue;
315
316         attribute CSSRuleConstructor CSSRule;
317         attribute CSSCharsetRuleConstructor CSSCharsetRule;
318         attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
319         attribute CSSImportRuleConstructor CSSImportRule;
320         attribute CSSMediaRuleConstructor CSSMediaRule;
321         attribute CSSPageRuleConstructor CSSPageRule;
322         attribute CSSStyleRuleConstructor CSSStyleRule;
323         
324         attribute CSSVariablesRuleConstructor CSSVariablesRule;
325         attribute CSSVariablesDeclarationConstructor CSSVariablesDeclaration;
326
327         attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
328         attribute MediaListConstructor MediaList;
329         attribute CounterConstructor Counter;
330         attribute CSSRuleListConstructor CSSRuleList;
331         attribute RectConstructor Rect;
332         attribute RGBColorConstructor RGBColor;
333         attribute StyleSheetListConstructor StyleSheetList;
334
335         // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
336         attribute DOMCoreExceptionConstructor DOMException;
337 //        attribute DOMStringListConstructor DOMStringList;
338 //        attribute NameListConstructor NameList;
339 //        attribute DOMImplementationListConstructor DOMImplementationList;
340 //        attribute DOMImplementationSourceConstructor DOMImplementationSource;
341         attribute DOMImplementationConstructor DOMImplementation;
342         attribute DocumentFragmentConstructor DocumentFragment;
343         attribute DocumentConstructor Document;
344         attribute NodeConstructor Node;
345         attribute NodeListConstructor NodeList;
346         attribute NamedNodeMapConstructor NamedNodeMap;
347         attribute CharacterDataConstructor CharacterData;
348         attribute AttrConstructor Attr;
349         attribute ElementConstructor Element;
350         attribute TextConstructor Text;
351         attribute CommentConstructor Comment;
352 //        attribute TypeInfoConstructor TypeInfo;
353 //        attribute UserDataHandlerConstructor UserDataHandler;
354 //        attribute DOMErrorConstructor DOMError;
355 //        attribute DOMErrorHandlerConstructor DOMErrorHandler
356 //        attribute DOMLocatorConstructor DOMLocator;
357 //        attribute DOMConfigurationConstructor DOMConfiguration;
358         attribute CDATASectionConstructor CDATASection;
359         attribute DocumentTypeConstructor DocumentType;
360         attribute NotationConstructor Notation;
361         attribute EntityConstructor Entity;
362         attribute EntityReferenceConstructor EntityReference;
363         attribute ProcessingInstructionConstructor ProcessingInstruction;
364
365         attribute HTMLDocumentConstructor HTMLDocument;
366
367         attribute HTMLElementConstructor HTMLElement;
368         attribute HTMLAnchorElementConstructor HTMLAnchorElement;
369         attribute HTMLAppletElementConstructor HTMLAppletElement;
370         attribute HTMLAreaElementConstructor HTMLAreaElement;
371         attribute HTMLBRElementConstructor HTMLBRElement;
372         attribute HTMLBaseElementConstructor HTMLBaseElement;
373         attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
374         attribute HTMLBlockquoteElementConstructor HTMLBlockquoteElement;
375         attribute HTMLBodyElementConstructor HTMLBodyElement;
376         attribute HTMLButtonElementConstructor HTMLButtonElement;
377         attribute HTMLCanvasElementConstructor HTMLCanvasElement;
378         attribute [Conditional=DATAGRID] HTMLDataGridElementConstructor HTMLDataGridElement;
379         attribute [Conditional=DATAGRID] HTMLDataGridCellElementConstructor HTMLDataGridCellElement;
380         attribute [Conditional=DATAGRID] HTMLDataGridColElementConstructor HTMLDataGridColElement;
381         attribute HTMLDListElementConstructor HTMLDListElement;
382         attribute HTMLDirectoryElementConstructor HTMLDirectoryElement;
383         attribute HTMLDivElementConstructor HTMLDivElement;
384         attribute HTMLEmbedElementConstructor HTMLEmbedElement;
385         attribute HTMLFieldSetElementConstructor HTMLFieldSetElement;
386         attribute HTMLFontElementConstructor HTMLFontElement;
387         attribute HTMLFormElementConstructor HTMLFormElement;
388         attribute HTMLFrameElementConstructor HTMLFrameElement;
389         attribute HTMLFrameSetElementConstructor HTMLFrameSetElement;
390         attribute HTMLHRElementConstructor HTMLHRElement;
391         attribute HTMLHeadElementConstructor HTMLHeadElement;
392         attribute HTMLHeadingElementConstructor HTMLHeadingElement;
393         attribute HTMLHtmlElementConstructor HTMLHtmlElement;
394         attribute HTMLIFrameElementConstructor HTMLIFrameElement;
395         attribute HTMLImageElementConstructor HTMLImageElement;
396         attribute HTMLInputElementConstructor HTMLInputElement;
397         attribute HTMLIsIndexElementConstructor HTMLIsIndexElement;
398         attribute HTMLLIElementConstructor HTMLLIElement;
399         attribute HTMLLabelElementConstructor HTMLLabelElement;
400         attribute HTMLLegendElementConstructor HTMLLegendElement;
401         attribute HTMLLinkElementConstructor HTMLLinkElement;
402         attribute HTMLMapElementConstructor HTMLMapElement;
403         attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
404         attribute HTMLMenuElementConstructor HTMLMenuElement;
405         attribute HTMLMetaElementConstructor HTMLMetaElement;
406         attribute HTMLModElementConstructor HTMLModElement;
407         attribute HTMLOListElementConstructor HTMLOListElement;
408         attribute HTMLObjectElementConstructor HTMLObjectElement;
409         attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
410         attribute HTMLOptionElementConstructor HTMLOptionElement;
411         attribute HTMLParagraphElementConstructor HTMLParagraphElement;
412         attribute HTMLParamElementConstructor HTMLParamElement;
413         attribute HTMLPreElementConstructor HTMLPreElement;
414         attribute HTMLQuoteElementConstructor HTMLQuoteElement;
415         attribute HTMLScriptElementConstructor HTMLScriptElement;
416         attribute HTMLSelectElementConstructor HTMLSelectElement;
417         attribute HTMLStyleElementConstructor HTMLStyleElement;
418         attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement;
419         attribute HTMLTableCellElementConstructor HTMLTableCellElement;
420         attribute HTMLTableColElementConstructor HTMLTableColElement;
421         attribute HTMLTableElementConstructor HTMLTableElement;
422         attribute HTMLTableRowElementConstructor HTMLTableRowElement;
423         attribute HTMLTableSectionElementConstructor HTMLTableSectionElement;
424         attribute HTMLTextAreaElementConstructor HTMLTextAreaElement;
425         attribute HTMLTitleElementConstructor HTMLTitleElement;
426         attribute HTMLUListElementConstructor HTMLUListElement;
427
428         attribute HTMLCollectionConstructor HTMLCollection;
429
430         attribute [CustomGetter] HTMLImageElementConstructor Image; // Usable with new operator
431         attribute [CustomGetter] HTMLOptionElementConstructor Option; // Usable with new operator
432
433         attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
434         attribute [Conditional=3D_CANVAS] CanvasRenderingContext3DConstructor CanvasRenderingContext3D;
435         attribute TextMetricsConstructor TextMetrics;
436
437         attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasArrayBufferConstructor CanvasArrayBuffer; // Usable with new operator
438         attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasByteArrayConstructor CanvasByteArray; // Usable with new operator
439         attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasUnsignedByteArrayConstructor CanvasUnsignedByteArray; // Usable with new operator
440         attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasShortArrayConstructor CanvasShortArray; // Usable with new operator
441         attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasUnsignedShortArrayConstructor CanvasUnsignedShortArray; // Usable with new operator
442         attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasIntArrayConstructor CanvasIntArray; // Usable with new operator
443         attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasUnsignedIntArrayConstructor CanvasUnsignedIntArray; // Usable with new operator
444         attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasFloatArrayConstructor CanvasFloatArray; // Usable with new operator
445
446         attribute EventConstructor Event;
447         attribute BeforeLoadEventConstructor BeforeLoadEvent;
448         attribute KeyboardEventConstructor KeyboardEvent;
449         attribute MouseEventConstructor MouseEvent;
450         attribute MutationEventConstructor MutationEvent;
451         attribute OverflowEventConstructor OverflowEvent;
452         attribute PageTransitionEventConstructor PageTransitionEvent;
453         attribute ProgressEventConstructor ProgressEvent;
454         attribute TextEventConstructor TextEvent;
455         attribute UIEventConstructor UIEvent;
456         attribute WebKitAnimationEventConstructor WebKitAnimationEvent;
457         attribute WebKitTransitionEventConstructor WebKitTransitionEvent;
458         attribute WheelEventConstructor WheelEvent;
459         attribute MessageEventConstructor MessageEvent;
460         attribute EventExceptionConstructor EventException;
461
462         attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
463         attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
464
465         attribute [JSCCustomGetter] WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
466
467         attribute [JSCCustomGetter] WebKitPointConstructor WebKitPoint; // Usable with new the operator
468
469         attribute ClipboardConstructor Clipboard;
470
471         attribute FileConstructor File;
472         attribute FileListConstructor FileList;
473
474         attribute NodeFilterConstructor NodeFilter;
475         attribute RangeConstructor Range;
476         attribute RangeExceptionConstructor RangeException;
477
478 #if ENABLE_EVENTSOURCE
479         attribute [JSCCustomGetter] EventSourceConstructor EventSource; // Usable with new the operator
480 #endif
481
482         // Mozilla has a separate XMLDocument object for XML documents. 
483         // We just use Document for this.
484         attribute DocumentConstructor XMLDocument;
485
486         attribute DOMParserConstructor DOMParser;
487         attribute XMLSerializerConstructor XMLSerializer;
488
489         attribute [JSCCustomGetter] XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
490         attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
491         attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
492
493         attribute [JSCCustomGetter,Conditional=XSLT] XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
494
495 #if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
496         attribute MessagePortConstructor MessagePort;
497         attribute [JSCCustomGetter] MessageChannelConstructor MessageChannel; // Usable with the new operator
498 #endif
499
500 #if defined(ENABLE_WORKERS) && ENABLE_WORKERS
501         attribute [JSCCustomGetter] WorkerConstructor Worker; // Usable with the new operator
502 #endif
503
504 #if defined(ENABLE_SHARED_WORKERS) && ENABLE_SHARED_WORKERS
505         attribute [JSCCustomGetter, EnabledAtRuntime] SharedWorkerConstructor SharedWorker; // Usable with the new operator
506 #endif
507
508 #if defined(ENABLE_WEB_SOCKETS) && ENABLE_WEB_SOCKETS
509         attribute [JSCCustomGetter,EnabledAtRuntime] WebSocketConstructor WebSocket; // Usable with the new operator
510 #endif
511
512         attribute PluginConstructor Plugin;
513         attribute PluginArrayConstructor PluginArray;
514
515         attribute MimeTypeConstructor MimeType;
516         attribute MimeTypeArrayConstructor MimeTypeArray;
517
518         attribute ClientRectConstructor ClientRect;
519         attribute ClientRectListConstructor ClientRectList;
520
521 #if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
522         attribute StorageConstructor Storage;
523         attribute StorageEventConstructor StorageEvent;
524 #endif
525
526         attribute [CustomGetter, Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor Audio; // Usable with the new operator
527         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor HTMLAudioElement;
528         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLMediaElementConstructor HTMLMediaElement;
529         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLVideoElementConstructor HTMLVideoElement;
530         attribute [Conditional=VIDEO, EnabledAtRuntime] MediaErrorConstructor MediaError;
531
532 #if defined(ENABLE_XPATH) && ENABLE_XPATH
533         attribute XPathEvaluatorConstructor XPathEvaluator;
534         attribute XPathResultConstructor XPathResult;
535         attribute XPathExceptionConstructor XPathException;
536 #endif
537
538 #if defined(ENABLE_SVG) && ENABLE_SVG
539         attribute SVGAngleConstructor SVGAngle;
540         attribute SVGColorConstructor SVGColor;
541 //      attribute SVGCSSRuleConstructor SVGCSSRule;
542         attribute SVGExceptionConstructor SVGException;
543         attribute SVGGradientElementConstructor SVGGradientElement;
544         attribute SVGLengthConstructor SVGLength;
545         attribute SVGMarkerElementConstructor SVGMarkerElement;
546         attribute SVGPaintConstructor SVGPaint;
547         attribute SVGPathSegConstructor SVGPathSeg;
548         attribute SVGPreserveAspectRatioConstructor SVGPreserveAspectRatio;
549         attribute SVGRenderingIntentConstructor SVGRenderingIntent;
550         attribute SVGTextContentElementConstructor SVGTextContentElement;
551         attribute SVGTextPathElementConstructor SVGTextPathElement;
552         attribute SVGTransformConstructor SVGTransform;
553         attribute SVGUnitTypesConstructor SVGUnitTypes;
554 //      attribute SVGZoomAndPanConstructor SVGZoomAndPan;
555
556 #if defined(ENABLE_FILTERS) && ENABLE_FILTERS
557         attribute SVGComponentTransferFunctionElementConstructor SVGComponentTransferFunctionElement;
558         attribute SVGFEBlendElementConstructor SVGFEBlendElement;
559         attribute SVGFEColorMatrixElementConstructor SVGFEColorMatrixElement;
560         attribute SVGFECompositeElementConstructor SVGFECompositeElement;
561 //      attribute SVGFEConvolveMatrixElementConstructor SVGFEConvolveMatrixElement;
562         attribute SVGFEDisplacementMapElementConstructor SVGFEDisplacementMapElement;
563         attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement;
564         attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement;
565 #endif
566 #endif
567
568 #endif // defined(LANGUAGE_JAVASCRIPT)
569
570 #if defined(V8_BINDING) && V8_BINDING
571         // window.toString() requires special handling in V8
572         [V8DoNotCheckSignature, DoNotCheckDomainSecurity, Custom, DontEnum] DOMString toString();
573 #endif // defined(V8_BINDING)
574     };
575
576 }