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