OSDN Git Service

Merge WebKit at r78450: Initial merge by git.
[android-x86/external-webkit.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         CheckDomainSecurity,
30         CustomDefineGetter,
31         CustomDefineSetter,
32         CustomDeleteProperty,
33         CustomGetOwnPropertySlot,
34         CustomGetPropertyNames,
35         CustomLookupGetter,
36         CustomLookupSetter,
37         CustomMarkFunction,
38         CustomNativeConverter,
39         CustomPutFunction,
40         EventTarget,
41         ExtendsDOMGlobalObject,
42         GenerateNativeConverter,
43         ReplaceableConstructor,
44         LegacyParent=JSDOMWindowBase
45     ] DOMWindow {
46         // DOM Level 0
47         attribute [Replaceable] 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         readonly attribute Crypto crypto;
58         attribute [DoNotCheckDomainSecurity, JSCCustom, V8CustomSetter, V8DisallowShadowing, CPPCustom] Location location;
59
60         attribute [Replaceable, CustomGetter, V8CustomSetter] Event event;
61
62
63         DOMSelection getSelection();
64
65         readonly attribute [CheckNodeSecurity] Element frameElement;
66
67         [DoNotCheckDomainSecurity] void focus();
68         [DoNotCheckDomainSecurity] void blur();
69         [DoNotCheckDomainSecurity, CallWith=ScriptExecutionContext] void close();
70
71         void print();
72         void stop();
73
74         [Custom] DOMWindow open(in DOMString url,
75                                 in DOMString name,
76                                 in [Optional] DOMString options);
77
78         [Custom] DOMObject showModalDialog(in DOMString url,
79                                            in [Optional] DOMObject dialogArgs,
80                                            in [Optional] DOMString featureArgs);
81
82         void alert(in 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         MediaQueryList matchMedia(in DOMString query);
145
146         // styleMedia has been removed from the CSSOM View specification.
147         readonly attribute StyleMedia styleMedia;
148
149         // DOM Level 2 Style Interface
150         CSSStyleDeclaration getComputedStyle(in Element element,
151                                              in [ConvertUndefinedOrNullToNullString] DOMString pseudoElement);
152
153         // WebKit extensions
154 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
155         CSSRuleList getMatchedCSSRules(in Element element,
156                                        in DOMString pseudoElement);
157 #endif
158
159         attribute [Replaceable] double devicePixelRatio;
160         
161         WebKitPoint webkitConvertPointFromPageToNode(in Node node, in WebKitPoint p);
162         WebKitPoint webkitConvertPointFromNodeToPage(in Node node, in WebKitPoint p);
163
164 #if defined(ENABLE_OFFLINE_WEB_APPLICATIONS) && ENABLE_OFFLINE_WEB_APPLICATIONS
165         readonly attribute [EnabledAtRuntime] DOMApplicationCache applicationCache;
166 #endif    
167 #if defined(ENABLE_DATABASE) && ENABLE_DATABASE
168         [EnabledAtRuntime, RequiresAllArguments=Raise] Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize, in [Callback, Optional] DatabaseCallback creationCallback)
169             raises(DOMException);
170 #endif
171 #if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
172         readonly attribute [EnabledAtRuntime] Storage sessionStorage
173             getter raises(DOMException);
174         readonly attribute [EnabledAtRuntime] Storage localStorage
175             getter raises(DOMException);
176 #endif
177 #if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
178         readonly attribute [EnabledAtRuntime] NotificationCenter webkitNotifications;
179 #endif
180 #if defined(ENABLE_INDEXED_DATABASE) && ENABLE_INDEXED_DATABASE
181         readonly attribute [EnabledAtRuntime] IDBFactory webkitIndexedDB;
182
183         attribute [EnabledAtRuntime] IDBCursorConstructor webkitIDBCursor;
184         attribute [EnabledAtRuntime] IDBDatabaseConstructor webkitIDBDatabase;
185         attribute [EnabledAtRuntime] IDBDatabaseErrorConstructor webkitIDBDatabaseError;
186         attribute [EnabledAtRuntime] IDBDatabaseExceptionConstructor webkitIDBDatabaseException;
187         attribute [EnabledAtRuntime] IDBErrorEventConstructor webkitIDBErrorEvent;
188         attribute [EnabledAtRuntime] IDBEventConstructor webkitIDBEvent;
189         attribute [EnabledAtRuntime] IDBFactoryConstructor webkitIDBFactory;
190         attribute [EnabledAtRuntime] IDBIndexConstructor webkitIDBIndex;
191         attribute [EnabledAtRuntime] IDBKeyRangeConstructor webkitIDBKeyRange;
192         attribute [EnabledAtRuntime] IDBObjectStoreConstructor webkitIDBObjectStore;
193         attribute [EnabledAtRuntime] IDBRequestConstructor webkitIDBRequest;
194         attribute [EnabledAtRuntime] IDBSuccessEventConstructor webkitIDBSuccessEvent;
195         attribute [EnabledAtRuntime] IDBTransactionConstructor webkitIDBTransaction;
196 #endif
197 #if defined(ENABLE_FILE_SYSTEM) && ENABLE_FILE_SYSTEM
198         const unsigned short TEMPORARY = 0;
199         const unsigned short PERSISTENT = 1;
200         [EnabledAtRuntime=FileSystem] void requestFileSystem(in unsigned short type, in long long size, in [Callback, Optional] FileSystemCallback successCallback, in [Callback, Optional] ErrorCallback errorCallback);
201
202         attribute [EnabledAtRuntime=FileSystem] FlagsConstructor Flags;
203 #endif
204
205 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
206         // This is the interface orientation in degrees. Some examples are:
207         //  0 is straight up; -90 is when the device is rotated 90 clockwise;
208         //  90 is when rotated counter clockwise.
209         readonly attribute long orientation;
210 #endif
211
212                  attribute [Replaceable] Console console;
213
214         // cross-document messaging
215 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
216         [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] Array messagePorts, in DOMString targetOrigin)
217             raises(DOMException);
218 #else
219         // There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port.
220         [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] MessagePort messagePort, in DOMString targetOrigin)
221             raises(DOMException);
222 #endif
223
224 #if defined(ENABLE_WEB_TIMING) && ENABLE_WEB_TIMING
225         attribute [Replaceable] Performance performance;
226 #endif
227
228         // Timers
229         [Custom] long setTimeout(in TimeoutHandler handler, in long timeout);
230         // [Custom] long setTimeout(in TimeoutHandler handler, in long timeout, arguments...);
231         // [Custom] long setTimeout(in DOMString code, in long timeout);
232         void clearTimeout(in long handle);
233         [Custom] long setInterval(in TimeoutHandler handler, in long timeout);
234         // [Custom] long setInterval(in TimeoutHandler handler, in long timeout, arguments...);
235         // [Custom] long setInterval(in DOMString code, in long timeout);
236         void clearInterval(in long handle);
237
238 #if defined(ENABLE_REQUEST_ANIMATION_FRAME)
239         // WebKit animation extensions
240         long webkitRequestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback, in Element element);
241         void webkitCancelRequestAnimationFrame(in long id);
242 #endif
243
244         // Base64
245         DOMString atob(in [ConvertNullToNullString] DOMString string)
246             raises(DOMException);
247         DOMString btoa(in [ConvertNullToNullString] DOMString string)
248             raises(DOMException);
249
250         // Events
251
252         attribute EventListener onabort;
253         attribute EventListener onbeforeunload;
254         attribute EventListener onblur;
255         attribute EventListener oncanplay;
256         attribute EventListener oncanplaythrough;
257         attribute EventListener onchange;
258         attribute EventListener onclick;
259         attribute EventListener oncontextmenu;
260         attribute EventListener ondblclick;
261         attribute EventListener ondrag;
262         attribute EventListener ondragend;
263         attribute EventListener ondragenter;
264         attribute EventListener ondragleave;
265         attribute EventListener ondragover;
266         attribute EventListener ondragstart;
267         attribute EventListener ondrop;
268         attribute EventListener ondurationchange;
269         attribute EventListener onemptied;
270         attribute EventListener onended;
271         attribute EventListener onerror;
272         attribute EventListener onfocus;
273         attribute EventListener onformchange;
274         attribute EventListener onforminput;
275         attribute EventListener onhashchange;
276         attribute EventListener oninput;
277         attribute EventListener oninvalid;
278         attribute EventListener onkeydown;
279         attribute EventListener onkeypress;
280         attribute EventListener onkeyup;
281         attribute EventListener onload;
282         attribute EventListener onloadeddata;
283         attribute EventListener onloadedmetadata;
284         attribute EventListener onloadstart;
285         attribute EventListener onmessage;
286         attribute EventListener onmousedown;
287         attribute EventListener onmousemove;
288         attribute EventListener onmouseout;
289         attribute EventListener onmouseover;
290         attribute EventListener onmouseup;
291         attribute EventListener onmousewheel;
292         attribute EventListener onoffline;
293         attribute EventListener ononline;
294         attribute EventListener onpagehide;
295         attribute EventListener onpageshow;
296         attribute EventListener onpause;
297         attribute EventListener onplay;
298         attribute EventListener onplaying;
299         attribute EventListener onpopstate;
300         attribute EventListener onprogress;
301         attribute EventListener onratechange;
302         attribute EventListener onresize;
303         attribute EventListener onscroll;
304         attribute EventListener onseeked;
305         attribute EventListener onseeking;
306         attribute EventListener onselect;
307         attribute EventListener onstalled;
308         attribute EventListener onstorage;
309         attribute EventListener onsubmit;
310         attribute EventListener onsuspend;
311         attribute EventListener ontimeupdate;
312         attribute EventListener onunload;
313         attribute EventListener onvolumechange;
314         attribute EventListener onwaiting;
315
316         // Not implemented yet.
317         // attribute EventListener onafterprint;
318         // attribute EventListener onbeforeprint;
319         // attribute EventListener onreadystatechange;
320         // attribute EventListener onredo;
321         // attribute EventListener onshow;
322         // attribute EventListener onundo;
323
324         // Webkit extensions
325         attribute EventListener onreset;
326         attribute EventListener onsearch;
327         attribute EventListener onwebkitanimationend;
328         attribute EventListener onwebkitanimationiteration;
329         attribute EventListener onwebkitanimationstart;
330         attribute EventListener onwebkittransitionend;
331 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
332         attribute EventListener onorientationchange;
333 #endif
334         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchstart;
335         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchmove;
336         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchend;
337         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchcancel;
338
339         attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] DeviceMotionEventConstructor DeviceMotionEvent;
340         attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] EventListener ondevicemotion;
341         attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] DeviceOrientationEventConstructor DeviceOrientationEvent;
342         attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] EventListener ondeviceorientation;
343
344         // EventTarget interface
345         [Custom] void addEventListener(in DOMString type,
346                                       in EventListener listener,
347                                       in boolean useCapture);
348         [Custom] void removeEventListener(in DOMString type,
349                                           in EventListener listener,
350                                           in boolean useCapture);
351         boolean dispatchEvent(in Event evt)
352             raises(EventException);
353
354         [V8Custom=DOMWindowNOP] void captureEvents(/*in long eventFlags*/);
355         [V8Custom=DOMWindowNOP] void releaseEvents(/*in long eventFlags*/);
356
357 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
358         // Global constructors
359         attribute StyleSheetConstructor StyleSheet;
360         attribute CSSStyleSheetConstructor CSSStyleSheet;
361
362         attribute CSSValueConstructor CSSValue;
363         attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
364         attribute CSSValueListConstructor CSSValueList;
365         attribute WebKitCSSTransformValueConstructor WebKitCSSTransformValue;
366
367         attribute CSSRuleConstructor CSSRule;
368         attribute CSSCharsetRuleConstructor CSSCharsetRule;
369         attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
370         attribute CSSImportRuleConstructor CSSImportRule;
371         attribute CSSMediaRuleConstructor CSSMediaRule;
372         attribute CSSPageRuleConstructor CSSPageRule;
373         attribute CSSStyleRuleConstructor CSSStyleRule;
374         
375         attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
376         attribute MediaListConstructor MediaList;
377         attribute CounterConstructor Counter;
378         attribute CSSRuleListConstructor CSSRuleList;
379         attribute RectConstructor Rect;
380         attribute RGBColorConstructor RGBColor;
381         attribute StyleSheetListConstructor StyleSheetList;
382
383         // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
384         attribute DOMCoreExceptionConstructor DOMException;
385         attribute DOMStringListConstructor DOMStringList;
386 //        attribute NameListConstructor NameList;
387 //        attribute DOMImplementationListConstructor DOMImplementationList;
388 //        attribute DOMImplementationSourceConstructor DOMImplementationSource;
389         attribute DOMImplementationConstructor DOMImplementation;
390         attribute DOMSettableTokenListConstructor DOMSettableTokenList;
391         attribute DOMTokenListConstructor DOMTokenList;
392         attribute DocumentFragmentConstructor DocumentFragment;
393         attribute DocumentConstructor Document;
394         attribute NodeConstructor Node;
395         attribute NodeListConstructor NodeList;
396         attribute NamedNodeMapConstructor NamedNodeMap;
397         attribute CharacterDataConstructor CharacterData;
398         attribute AttrConstructor Attr;
399         attribute ElementConstructor Element;
400         attribute TextConstructor Text;
401         attribute CommentConstructor Comment;
402 //        attribute TypeInfoConstructor TypeInfo;
403 //        attribute UserDataHandlerConstructor UserDataHandler;
404 //        attribute DOMErrorConstructor DOMError;
405 //        attribute DOMErrorHandlerConstructor DOMErrorHandler
406 //        attribute DOMLocatorConstructor DOMLocator;
407 //        attribute DOMConfigurationConstructor DOMConfiguration;
408         attribute CDATASectionConstructor CDATASection;
409         attribute DocumentTypeConstructor DocumentType;
410         attribute NotationConstructor Notation;
411         attribute EntityConstructor Entity;
412         attribute EntityReferenceConstructor EntityReference;
413         attribute ProcessingInstructionConstructor ProcessingInstruction;
414
415         attribute HTMLDocumentConstructor HTMLDocument;
416
417         attribute HTMLElementConstructor HTMLElement;
418         attribute HTMLAnchorElementConstructor HTMLAnchorElement;
419         attribute HTMLAppletElementConstructor HTMLAppletElement;
420         attribute HTMLAreaElementConstructor HTMLAreaElement;
421         attribute HTMLBRElementConstructor HTMLBRElement;
422         attribute HTMLBaseElementConstructor HTMLBaseElement;
423         attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
424         attribute HTMLBlockquoteElementConstructor HTMLBlockquoteElement;
425         attribute HTMLBodyElementConstructor HTMLBodyElement;
426         attribute HTMLButtonElementConstructor HTMLButtonElement;
427         attribute HTMLCanvasElementConstructor HTMLCanvasElement;
428         attribute [Conditional=DATAGRID] HTMLDataGridElementConstructor HTMLDataGridElement;
429         attribute [Conditional=DATAGRID] HTMLDataGridCellElementConstructor HTMLDataGridCellElement;
430         attribute [Conditional=DATAGRID] HTMLDataGridColElementConstructor HTMLDataGridColElement;
431         attribute HTMLDListElementConstructor HTMLDListElement;
432         attribute HTMLDirectoryElementConstructor HTMLDirectoryElement;
433         attribute HTMLDivElementConstructor HTMLDivElement;
434         attribute HTMLEmbedElementConstructor HTMLEmbedElement;
435         attribute HTMLFieldSetElementConstructor HTMLFieldSetElement;
436         attribute HTMLFontElementConstructor HTMLFontElement;
437         attribute HTMLFormElementConstructor HTMLFormElement;
438         attribute HTMLFrameElementConstructor HTMLFrameElement;
439         attribute HTMLFrameSetElementConstructor HTMLFrameSetElement;
440         attribute HTMLHRElementConstructor HTMLHRElement;
441         attribute HTMLHeadElementConstructor HTMLHeadElement;
442         attribute HTMLHeadingElementConstructor HTMLHeadingElement;
443         attribute HTMLHtmlElementConstructor HTMLHtmlElement;
444         attribute HTMLIFrameElementConstructor HTMLIFrameElement;
445         attribute HTMLImageElementConstructor HTMLImageElement;
446         attribute HTMLInputElementConstructor HTMLInputElement;
447         attribute HTMLIsIndexElementConstructor HTMLIsIndexElement;
448         attribute HTMLKeygenElementConstructor HTMLKeygenElement;
449         attribute HTMLLIElementConstructor HTMLLIElement;
450         attribute HTMLLabelElementConstructor HTMLLabelElement;
451         attribute HTMLLegendElementConstructor HTMLLegendElement;
452         attribute HTMLLinkElementConstructor HTMLLinkElement;
453         attribute HTMLMapElementConstructor HTMLMapElement;
454         attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
455         attribute HTMLMenuElementConstructor HTMLMenuElement;
456         attribute HTMLMetaElementConstructor HTMLMetaElement;
457 #if defined(ENABLE_METER_TAG) && ENABLE_METER_TAG
458         attribute HTMLMeterElementConstructor HTMLMeterElement;
459 #endif
460         attribute HTMLModElementConstructor HTMLModElement;
461         attribute HTMLOListElementConstructor HTMLOListElement;
462         attribute HTMLObjectElementConstructor HTMLObjectElement;
463         attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
464         attribute HTMLOptionElementConstructor HTMLOptionElement;
465         attribute HTMLOutputElementConstructor HTMLOutputElement;
466         attribute HTMLParagraphElementConstructor HTMLParagraphElement;
467         attribute HTMLParamElementConstructor HTMLParamElement;
468         attribute HTMLPreElementConstructor HTMLPreElement;
469 #if defined(ENABLE_PROGRESS_TAG) && ENABLE_PROGRESS_TAG
470         attribute HTMLProgressElementConstructor HTMLProgressElement;
471 #endif
472         attribute HTMLQuoteElementConstructor HTMLQuoteElement;
473         attribute HTMLScriptElementConstructor HTMLScriptElement;
474         attribute HTMLSelectElementConstructor HTMLSelectElement;
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
489         attribute [CustomGetter] HTMLImageElementConstructor Image; // Usable with new operator
490         attribute [CustomGetter] HTMLOptionElementConstructor Option; // Usable with new operator
491
492         attribute CanvasPatternConstructor CanvasPattern;
493         attribute CanvasGradientConstructor CanvasGradient;
494         attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
495         attribute ImageDataConstructor ImageData;
496         attribute [Conditional=WEBGL,EnabledAtRuntime] WebGLActiveInfoConstructor WebGLActiveInfo;
497         attribute [Conditional=WEBGL,EnabledAtRuntime] WebGLBufferConstructor WebGLBuffer;
498         attribute [Conditional=WEBGL,EnabledAtRuntime] WebGLFramebufferConstructor WebGLFramebuffer;
499         attribute [Conditional=WEBGL,EnabledAtRuntime] WebGLProgramConstructor WebGLProgram;
500         attribute [Conditional=WEBGL,EnabledAtRuntime] WebGLRenderbufferConstructor WebGLRenderbuffer;
501         attribute [Conditional=WEBGL,EnabledAtRuntime] WebGLRenderingContextConstructor WebGLRenderingContext;
502         attribute [Conditional=WEBGL,EnabledAtRuntime] WebGLShaderConstructor WebGLShader;
503         attribute [Conditional=WEBGL,EnabledAtRuntime] WebGLTextureConstructor WebGLTexture;
504         attribute [Conditional=WEBGL,EnabledAtRuntime] WebGLUniformLocationConstructor WebGLUniformLocation;
505         attribute TextMetricsConstructor TextMetrics;
506
507         attribute DOMStringMapConstructor DOMStringMap;
508
509         attribute [JSCCustomGetter] ArrayBufferConstructor ArrayBuffer; // Usable with new operator
510         attribute [JSCCustomGetter] Int8ArrayConstructor Int8Array; // Usable with new operator
511         attribute [JSCCustomGetter] Uint8ArrayConstructor Uint8Array; // Usable with new operator
512         attribute [JSCCustomGetter] Int16ArrayConstructor Int16Array; // Usable with new operator
513         attribute [JSCCustomGetter] Uint16ArrayConstructor Uint16Array; // Usable with new operator
514         attribute [JSCCustomGetter] Int32ArrayConstructor Int32Array; // Usable with new operator
515         attribute [JSCCustomGetter] Uint32ArrayConstructor Uint32Array; // Usable with new operator
516         attribute [JSCCustomGetter] Float32ArrayConstructor Float32Array; // Usable with new operator
517         attribute [JSCCustomGetter] DataViewConstructor DataView; // Usable with new operator
518
519         attribute [JSCCustomGetter,Conditional=WEB_AUDIO,EnabledAtRuntime] AudioContextConstructor webkitAudioContext; // Usable with new operator
520         attribute [Conditional=WEB_AUDIO] AudioPannerNodeConstructor webkitAudioPannerNode; // Needed for panning model constants
521
522         attribute EventConstructor Event;
523         attribute BeforeLoadEventConstructor BeforeLoadEvent;
524         attribute HashChangeEventConstructor HashChangeEvent;
525         attribute KeyboardEventConstructor KeyboardEvent;
526         attribute MouseEventConstructor MouseEvent;
527         attribute MutationEventConstructor MutationEvent;
528         attribute OverflowEventConstructor OverflowEvent;
529         attribute PageTransitionEventConstructor PageTransitionEvent;
530         attribute ProgressEventConstructor ProgressEvent;
531         attribute TextEventConstructor TextEvent;
532         attribute UIEventConstructor UIEvent;
533         attribute WebKitAnimationEventConstructor WebKitAnimationEvent;
534         attribute WebKitTransitionEventConstructor WebKitTransitionEvent;
535         attribute WheelEventConstructor WheelEvent;
536         attribute MessageEventConstructor MessageEvent;
537         attribute EventExceptionConstructor EventException;
538
539         attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
540         attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
541
542         attribute [JSCCustomGetter] WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
543
544         attribute [JSCCustomGetter] WebKitPointConstructor WebKitPoint; // Usable with new the operator
545
546         attribute ClipboardConstructor Clipboard;
547
548         attribute FileConstructor File;
549         attribute FileListConstructor FileList;
550         attribute BlobConstructor Blob;
551
552         attribute NodeFilterConstructor NodeFilter;
553         attribute RangeConstructor Range;
554         attribute RangeExceptionConstructor RangeException;
555
556 #if ENABLE_EVENTSOURCE
557         attribute [JSCCustomGetter] EventSourceConstructor EventSource; // Usable with new the operator
558 #endif
559
560         // Mozilla has a separate XMLDocument object for XML documents. 
561         // We just use Document for this.
562         attribute DocumentConstructor XMLDocument;
563
564         attribute DOMParserConstructor DOMParser;
565         attribute XMLSerializerConstructor XMLSerializer;
566
567         attribute [JSCCustomGetter] XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
568         attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
569         attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
570
571         attribute [JSCCustomGetter,Conditional=XSLT] XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
572
573 #if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
574         attribute MessagePortConstructor MessagePort;
575         attribute [JSCCustomGetter] MessageChannelConstructor MessageChannel; // Usable with the new operator
576 #endif
577
578 #if defined(ENABLE_WORKERS) && ENABLE_WORKERS
579         attribute [JSCCustomGetter] WorkerConstructor Worker; // Usable with the new operator
580 #endif
581
582 #if defined(ENABLE_SHARED_WORKERS) && ENABLE_SHARED_WORKERS
583         attribute [JSCCustomGetter, EnabledAtRuntime] SharedWorkerConstructor SharedWorker; // Usable with the new operator
584 #endif
585
586 #if defined(ENABLE_WEB_SOCKETS) && ENABLE_WEB_SOCKETS
587         attribute [JSCCustomGetter,EnabledAtRuntime] WebSocketConstructor WebSocket; // Usable with the new operator
588 #endif
589
590         attribute DOMPluginConstructor Plugin;
591         attribute DOMPluginArrayConstructor PluginArray;
592
593         attribute DOMMimeTypeConstructor MimeType;
594         attribute DOMMimeTypeArrayConstructor MimeTypeArray;
595
596         attribute ClientRectConstructor ClientRect;
597         attribute ClientRectListConstructor ClientRectList;
598
599 #if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
600         attribute StorageConstructor Storage;
601         attribute StorageEventConstructor StorageEvent;
602 #endif
603
604         attribute [CustomGetter, Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor Audio; // Usable with the new operator
605         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor HTMLAudioElement;
606         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLMediaElementConstructor HTMLMediaElement;
607         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLVideoElementConstructor HTMLVideoElement;
608         attribute [Conditional=VIDEO, EnabledAtRuntime] MediaErrorConstructor MediaError;
609         attribute [Conditional=VIDEO, EnabledAtRuntime] TimeRangesConstructor TimeRanges;
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 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 SVGFEFloodElementConstructor SVGFEFloodElement;
759         attribute SVGFEFuncAElementConstructor SVGFEFuncAElement;
760         attribute SVGFEFuncBElementConstructor SVGFEFuncBElement;
761         attribute SVGFEFuncGElementConstructor SVGFEFuncGElement;
762         attribute SVGFEFuncRElementConstructor SVGFEFuncRElement;
763         attribute SVGFEGaussianBlurElementConstructor SVGFEGaussianBlurElement;
764         attribute SVGFEImageElementConstructor SVGFEImageElement;
765         attribute SVGFEMergeElementConstructor SVGFEMergeElement;
766         attribute SVGFEMergeNodeElementConstructor SVGFEMergeNodeElement;
767         attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement;
768         attribute SVGFEOffsetElementConstructor SVGFEOffsetElement;
769         attribute SVGFEPointLightElementConstructor SVGFEPointLightElement;
770         attribute SVGFESpecularLightingElementConstructor SVGFESpecularLightingElement;
771         attribute SVGFESpotLightElementConstructor SVGFESpotLightElement;
772         attribute SVGFETileElementConstructor SVGFETileElement;
773         attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement;
774         attribute SVGFilterElementConstructor SVGFilterElement;
775 #endif
776 #endif
777
778         attribute [Conditional=DATABASE] SQLExceptionConstructor SQLException;
779
780         attribute [Conditional=TOUCH_EVENTS] TouchEventConstructor TouchEvent;
781
782         attribute DOMFormDataConstructor FormData;
783
784         attribute [Conditional=BLOB|FILE_SYSTEM] FileErrorConstructor FileError;
785         attribute [Conditional=BLOB] FileReaderConstructor FileReader;
786
787         attribute [Conditional=BLOB] BlobBuilderConstructor BlobBuilder;
788
789         readonly attribute [Conditional=BLOB] DOMURL webkitURL;
790
791 #endif // defined(LANGUAGE_JAVASCRIPT)
792
793 #if defined(V8_BINDING) && V8_BINDING
794         // window.toString() requires special handling in V8
795         [V8DoNotCheckSignature, DoNotCheckDomainSecurity, Custom, DontEnum] DOMString toString();
796 #endif // defined(V8_BINDING)
797     };
798
799 }
800