2 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
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.
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.
33 CustomGetOwnPropertySlot,
34 CustomGetPropertyNames,
38 CustomNativeConverter,
41 ExtendsDOMGlobalObject,
42 GenerateNativeConverter,
43 ReplaceableConstructor,
44 LegacyParent=JSDOMWindowBase
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;
60 attribute [Replaceable, CustomGetter, V8CustomSetter] Event event;
63 DOMSelection getSelection();
65 readonly attribute [CheckNodeSecurity] Element frameElement;
67 [DoNotCheckDomainSecurity] void focus();
68 [DoNotCheckDomainSecurity] void blur();
69 [DoNotCheckDomainSecurity, CallWith=ScriptExecutionContext] void close();
74 [Custom] DOMWindow open(in DOMString url,
76 in [Optional] DOMString options);
78 [Custom] DOMObject showModalDialog(in DOMString url,
79 in [Optional] DOMObject dialogArgs,
80 in [Optional] DOMString featureArgs);
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);
87 boolean find(in DOMString string,
88 in boolean caseSensitive,
92 in boolean searchInFrames,
93 in boolean showDialog);
95 attribute [Replaceable] boolean offscreenBuffering;
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;
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.
118 readonly attribute [DoNotCheckDomainSecurity] boolean closed;
120 attribute [Replaceable, DoNotCheckDomainSecurityOnGet] unsigned long length;
122 attribute DOMString name;
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;
131 // Self referential attributes
132 attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow self;
133 readonly attribute [DoNotCheckDomainSecurity, V8DisallowShadowing] DOMWindow window;
134 attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow frames;
136 attribute [Replaceable, DoNotCheckDomainSecurityOnGet, V8CustomSetter] DOMWindow opener;
137 attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow parent;
138 attribute [Replaceable, DoNotCheckDomainSecurityOnGet, V8DisallowShadowing, V8ReadOnly] DOMWindow top;
140 // DOM Level 2 AbstractView Interface
141 readonly attribute Document document;
144 MediaQueryList matchMedia(in DOMString query);
146 // styleMedia has been removed from the CSSOM View specification.
147 readonly attribute StyleMedia styleMedia;
149 // DOM Level 2 Style Interface
150 CSSStyleDeclaration getComputedStyle(in Element element,
151 in [ConvertUndefinedOrNullToNullString] DOMString pseudoElement);
154 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
155 CSSRuleList getMatchedCSSRules(in Element element,
156 in DOMString pseudoElement);
159 attribute [Replaceable] double devicePixelRatio;
161 WebKitPoint webkitConvertPointFromPageToNode(in Node node, in WebKitPoint p);
162 WebKitPoint webkitConvertPointFromNodeToPage(in Node node, in WebKitPoint p);
164 #if defined(ENABLE_OFFLINE_WEB_APPLICATIONS) && ENABLE_OFFLINE_WEB_APPLICATIONS
165 readonly attribute [EnabledAtRuntime] DOMApplicationCache applicationCache;
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);
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);
177 #if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
178 readonly attribute [EnabledAtRuntime] NotificationCenter webkitNotifications;
180 #if defined(ENABLE_INDEXED_DATABASE) && ENABLE_INDEXED_DATABASE
181 readonly attribute [EnabledAtRuntime] IDBFactory webkitIndexedDB;
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;
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);
202 attribute [EnabledAtRuntime=FileSystem] FlagsConstructor Flags;
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;
212 attribute [Replaceable] Console console;
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);
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);
224 #if defined(ENABLE_WEB_TIMING) && ENABLE_WEB_TIMING
225 attribute [Replaceable] Performance performance;
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);
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);
245 DOMString atob(in [ConvertNullToNullString] DOMString string)
246 raises(DOMException);
247 DOMString btoa(in [ConvertNullToNullString] DOMString string)
248 raises(DOMException);
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;
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;
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;
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;
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;
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);
354 [V8Custom=DOMWindowNOP] void captureEvents(/*in long eventFlags*/);
355 [V8Custom=DOMWindowNOP] void releaseEvents(/*in long eventFlags*/);
357 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
358 // Global constructors
359 attribute StyleSheetConstructor StyleSheet;
360 attribute CSSStyleSheetConstructor CSSStyleSheet;
362 attribute CSSValueConstructor CSSValue;
363 attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
364 attribute CSSValueListConstructor CSSValueList;
365 attribute WebKitCSSTransformValueConstructor WebKitCSSTransformValue;
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;
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;
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;
415 attribute HTMLDocumentConstructor HTMLDocument;
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;
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;
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;
486 attribute HTMLCollectionConstructor HTMLCollection;
487 attribute HTMLAllCollectionConstructor HTMLAllCollection;
489 attribute [CustomGetter] HTMLImageElementConstructor Image; // Usable with new operator
490 attribute [CustomGetter] HTMLOptionElementConstructor Option; // Usable with new operator
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;
507 attribute DOMStringMapConstructor DOMStringMap;
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
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
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;
539 attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
540 attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
542 attribute [JSCCustomGetter] WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
544 attribute [JSCCustomGetter] WebKitPointConstructor WebKitPoint; // Usable with new the operator
546 attribute ClipboardConstructor Clipboard;
548 attribute FileConstructor File;
549 attribute FileListConstructor FileList;
550 attribute BlobConstructor Blob;
552 attribute NodeFilterConstructor NodeFilter;
553 attribute RangeConstructor Range;
554 attribute RangeExceptionConstructor RangeException;
556 #if ENABLE_EVENTSOURCE
557 attribute [JSCCustomGetter] EventSourceConstructor EventSource; // Usable with new the operator
560 // Mozilla has a separate XMLDocument object for XML documents.
561 // We just use Document for this.
562 attribute DocumentConstructor XMLDocument;
564 attribute DOMParserConstructor DOMParser;
565 attribute XMLSerializerConstructor XMLSerializer;
567 attribute [JSCCustomGetter] XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
568 attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
569 attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
571 attribute [JSCCustomGetter,Conditional=XSLT] XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
573 #if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
574 attribute MessagePortConstructor MessagePort;
575 attribute [JSCCustomGetter] MessageChannelConstructor MessageChannel; // Usable with the new operator
578 #if defined(ENABLE_WORKERS) && ENABLE_WORKERS
579 attribute [JSCCustomGetter] WorkerConstructor Worker; // Usable with the new operator
582 #if defined(ENABLE_SHARED_WORKERS) && ENABLE_SHARED_WORKERS
583 attribute [JSCCustomGetter, EnabledAtRuntime] SharedWorkerConstructor SharedWorker; // Usable with the new operator
586 #if defined(ENABLE_WEB_SOCKETS) && ENABLE_WEB_SOCKETS
587 attribute [JSCCustomGetter,EnabledAtRuntime] WebSocketConstructor WebSocket; // Usable with the new operator
590 attribute DOMPluginConstructor Plugin;
591 attribute DOMPluginArrayConstructor PluginArray;
593 attribute DOMMimeTypeConstructor MimeType;
594 attribute DOMMimeTypeArrayConstructor MimeTypeArray;
596 attribute ClientRectConstructor ClientRect;
597 attribute ClientRectListConstructor ClientRectList;
599 #if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
600 attribute StorageConstructor Storage;
601 attribute StorageEventConstructor StorageEvent;
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;
611 #if defined(ENABLE_XPATH) && ENABLE_XPATH
612 attribute XPathEvaluatorConstructor XPathEvaluator;
613 attribute XPathResultConstructor XPathResult;
614 attribute XPathExceptionConstructor XPathException;
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;
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;
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;
744 #if defined(ENABLE_SVG_FOREIGN_OBJECT) && ENABLE_SVG_FOREIGN_OBJECT
745 attribute SVGForeignObjectElementConstructor SVGForeignObjectElement;
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;
778 attribute [Conditional=DATABASE] SQLExceptionConstructor SQLException;
780 attribute [Conditional=TOUCH_EVENTS] TouchEventConstructor TouchEvent;
782 attribute DOMFormDataConstructor FormData;
784 attribute [Conditional=BLOB|FILE_SYSTEM] FileErrorConstructor FileError;
785 attribute [Conditional=BLOB] FileReaderConstructor FileReader;
787 attribute [Conditional=BLOB] BlobBuilderConstructor BlobBuilder;
789 readonly attribute [Conditional=BLOB] DOMURL webkitURL;
791 #endif // defined(LANGUAGE_JAVASCRIPT)
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)