2 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3 * Copyright (C) 2011 Google Inc. All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
14 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
18 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 JSCustomDefineOwnProperty,
33 CustomGetOwnPropertySlot,
34 CustomEnumerateProperty,
36 JSCustomToNativeObject,
39 ExtendsDOMGlobalObject,
40 JSGenerateToNativeObject,
41 ReplaceableConstructor,
42 JSLegacyParent=JSDOMWindowBase,
47 attribute [Replaceable] Screen screen;
48 attribute [Replaceable, DoNotCheckSecurityOnGetter] 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 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
59 attribute [DoNotCheckSecurity, CustomSetter, V8Unforgeable] Location location;
61 attribute [Replaceable, CustomGetter, V8CustomSetter] Event event;
63 DOMSelection getSelection();
65 readonly attribute [CheckSecurityForNode] Element frameElement;
67 [DoNotCheckSecurity] void focus();
68 [DoNotCheckSecurity] void blur();
69 [DoNotCheckSecurity, 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=DefaultIsUndefined] DOMString message);
83 boolean confirm(in [Optional=DefaultIsUndefined] DOMString message);
84 [TreatReturnedNullStringAs=Null] DOMString prompt(in [Optional=DefaultIsUndefined] DOMString message,
85 in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString defaultValue);
87 boolean find(in [Optional=DefaultIsUndefined] DOMString string,
88 in [Optional=DefaultIsUndefined] boolean caseSensitive,
89 in [Optional=DefaultIsUndefined] boolean backwards,
90 in [Optional=DefaultIsUndefined] boolean wrap,
91 in [Optional=DefaultIsUndefined] boolean wholeWord,
92 in [Optional=DefaultIsUndefined] boolean searchInFrames,
93 in [Optional=DefaultIsUndefined] 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 void scrollBy(in [Optional=DefaultIsUndefined] long x, in [Optional=DefaultIsUndefined] long y);
111 void scrollTo(in [Optional=DefaultIsUndefined] long x, in [Optional=DefaultIsUndefined] long y);
112 void scroll(in [Optional=DefaultIsUndefined] long x, in [Optional=DefaultIsUndefined] long y);
113 void moveBy(in [Optional=DefaultIsUndefined] float x, in [Optional=DefaultIsUndefined] float y); // FIXME: this should take longs not floats.
114 void moveTo(in [Optional=DefaultIsUndefined] float x, in [Optional=DefaultIsUndefined] float y); // FIXME: this should take longs not floats.
115 void resizeBy(in [Optional=DefaultIsUndefined] float x, in [Optional=DefaultIsUndefined] float y); // FIXME: this should take longs not floats.
116 void resizeTo(in [Optional=DefaultIsUndefined] float width, in [Optional=DefaultIsUndefined] float height); // FIXME: this should take longs not floats.
118 readonly attribute [DoNotCheckSecurity] boolean closed;
120 attribute [Replaceable, DoNotCheckSecurityOnGetter] 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, DoNotCheckSecurityOnGetter] DOMWindow self;
133 readonly attribute [DoNotCheckSecurity, V8Unforgeable] DOMWindow window;
134 attribute [Replaceable, DoNotCheckSecurityOnGetter] DOMWindow frames;
136 attribute [Replaceable, DoNotCheckSecurityOnGetter, V8CustomSetter] DOMWindow opener;
137 attribute [Replaceable, DoNotCheckSecurityOnGetter] DOMWindow parent;
138 attribute [Replaceable, DoNotCheckSecurityOnGetter, V8Unforgeable, 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=DefaultIsUndefined] Element element,
151 in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString pseudoElement);
154 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
155 CSSRuleList getMatchedCSSRules(in [Optional=DefaultIsUndefined] Element element,
156 in [Optional=DefaultIsUndefined] DOMString pseudoElement);
159 attribute [Replaceable] double devicePixelRatio;
161 WebKitPoint webkitConvertPointFromPageToNode(in [Optional=DefaultIsUndefined] Node node,
162 in [Optional=DefaultIsUndefined] WebKitPoint p);
163 WebKitPoint webkitConvertPointFromNodeToPage(in [Optional=DefaultIsUndefined] Node node,
164 in [Optional=DefaultIsUndefined] WebKitPoint p);
166 readonly attribute [V8EnabledAtRuntime] DOMApplicationCache applicationCache;
168 readonly attribute [V8EnabledAtRuntime] Storage sessionStorage
169 getter raises(DOMException);
170 readonly attribute [V8EnabledAtRuntime] Storage localStorage
171 getter raises(DOMException);
173 #if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
174 readonly attribute [V8EnabledAtRuntime] NotificationCenter webkitNotifications;
177 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
178 // This is the interface orientation in degrees. Some examples are:
179 // 0 is straight up; -90 is when the device is rotated 90 clockwise;
180 // 90 is when rotated counter clockwise.
181 readonly attribute long orientation;
184 attribute [Replaceable] Console console;
186 // cross-document messaging
187 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
188 [DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in DOMString targetOrigin)
189 raises(DOMException);
190 [DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in DOMString targetOrigin, in Array messagePorts)
191 raises(DOMException);
193 [DoNotCheckSecurity, Custom] void webkitPostMessage(in SerializedScriptValue message, in DOMString targetOrigin)
194 raises(DOMException);
195 [DoNotCheckSecurity, Custom] void webkitPostMessage(in SerializedScriptValue message, in DOMString targetOrigin, in Array transferList)
196 raises(DOMException);
198 // There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port.
199 [DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] MessagePort messagePort, in DOMString targetOrigin)
200 raises(DOMException);
203 #if defined(ENABLE_WEB_TIMING) && ENABLE_WEB_TIMING
204 attribute [Replaceable] Performance performance;
208 [Custom] long setTimeout(in [Optional=DefaultIsUndefined] TimeoutHandler handler,
209 in [Optional=DefaultIsUndefined] long timeout);
210 // [Custom] long setTimeout(in TimeoutHandler handler, in long timeout, arguments...);
211 // [Custom] long setTimeout(in DOMString code, in long timeout);
212 void clearTimeout(in [Optional=DefaultIsUndefined] long handle);
213 [Custom] long setInterval(in TimeoutHandler handler, in long timeout);
214 // [Custom] long setInterval(in TimeoutHandler handler, in long timeout, arguments...);
215 // [Custom] long setInterval(in DOMString code, in long timeout);
216 void clearInterval(in [Optional=DefaultIsUndefined] long handle);
218 #if defined(ENABLE_REQUEST_ANIMATION_FRAME)
219 // WebKit animation extensions, being standardized in the WebPerf WG
220 long webkitRequestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback, in [Optional=DefaultIsUndefined] Element element);
221 void webkitCancelAnimationFrame(in long id);
222 void webkitCancelRequestAnimationFrame(in long id); // This is a deprecated alias for webkitCancelAnimationFrame(). Remove this when removing vendor prefix.
226 DOMString atob(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString string)
227 raises(DOMException);
228 DOMString btoa(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString string)
229 raises(DOMException);
232 attribute EventListener onabort;
233 attribute EventListener onbeforeunload;
234 attribute EventListener onblur;
235 attribute EventListener oncanplay;
236 attribute EventListener oncanplaythrough;
237 attribute EventListener onchange;
238 attribute EventListener onclick;
239 attribute EventListener oncontextmenu;
240 attribute EventListener ondblclick;
241 attribute EventListener ondrag;
242 attribute EventListener ondragend;
243 attribute EventListener ondragenter;
244 attribute EventListener ondragleave;
245 attribute EventListener ondragover;
246 attribute EventListener ondragstart;
247 attribute EventListener ondrop;
248 attribute EventListener ondurationchange;
249 attribute EventListener onemptied;
250 attribute EventListener onended;
251 attribute EventListener onerror;
252 attribute EventListener onfocus;
253 attribute EventListener onhashchange;
254 attribute EventListener oninput;
255 attribute EventListener oninvalid;
256 attribute EventListener onkeydown;
257 attribute EventListener onkeypress;
258 attribute EventListener onkeyup;
259 attribute EventListener onload;
260 attribute EventListener onloadeddata;
261 attribute EventListener onloadedmetadata;
262 attribute EventListener onloadstart;
263 attribute EventListener onmessage;
264 attribute EventListener onmousedown;
265 attribute EventListener onmousemove;
266 attribute EventListener onmouseout;
267 attribute EventListener onmouseover;
268 attribute EventListener onmouseup;
269 attribute EventListener onmousewheel;
270 attribute EventListener onoffline;
271 attribute EventListener ononline;
272 attribute EventListener onpagehide;
273 attribute EventListener onpageshow;
274 attribute EventListener onpause;
275 attribute EventListener onplay;
276 attribute EventListener onplaying;
277 attribute EventListener onpopstate;
278 attribute EventListener onprogress;
279 attribute EventListener onratechange;
280 attribute EventListener onresize;
281 attribute EventListener onscroll;
282 attribute EventListener onseeked;
283 attribute EventListener onseeking;
284 attribute EventListener onselect;
285 attribute EventListener onstalled;
286 attribute EventListener onstorage;
287 attribute EventListener onsubmit;
288 attribute EventListener onsuspend;
289 attribute EventListener ontimeupdate;
290 attribute EventListener onunload;
291 attribute EventListener onvolumechange;
292 attribute EventListener onwaiting;
294 // Not implemented yet.
295 // attribute EventListener onafterprint;
296 // attribute EventListener onbeforeprint;
297 // attribute EventListener onreadystatechange;
298 // attribute EventListener onredo;
299 // attribute EventListener onshow;
300 // attribute EventListener onundo;
303 attribute EventListener onreset;
304 attribute EventListener onsearch;
305 attribute EventListener onwebkitanimationend;
306 attribute EventListener onwebkitanimationiteration;
307 attribute EventListener onwebkitanimationstart;
308 attribute EventListener onwebkittransitionend;
309 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
310 attribute EventListener onorientationchange;
312 attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchstart;
313 attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchmove;
314 attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchend;
315 attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchcancel;
317 attribute [Conditional=DEVICE_ORIENTATION,V8EnabledAtRuntime] EventListener ondevicemotion;
318 attribute [Conditional=DEVICE_ORIENTATION,V8EnabledAtRuntime] EventListener ondeviceorientation;
320 // EventTarget interface
321 [Custom] void addEventListener(in DOMString type,
322 in EventListener listener,
323 in [Optional] boolean useCapture);
324 [Custom] void removeEventListener(in DOMString type,
325 in EventListener listener,
326 in [Optional] boolean useCapture);
327 boolean dispatchEvent(in Event evt)
328 raises(EventException);
330 [V8Custom] void captureEvents(/*in long eventFlags*/);
331 [V8Custom] void releaseEvents(/*in long eventFlags*/);
333 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
334 // Global constructors
335 attribute StyleSheetConstructor StyleSheet;
336 attribute CSSStyleSheetConstructor CSSStyleSheet;
338 attribute CSSValueConstructor CSSValue;
339 attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
340 attribute CSSValueListConstructor CSSValueList;
341 attribute WebKitCSSTransformValueConstructor WebKitCSSTransformValue;
343 #if defined(ENABLE_CSS_FILTERS) && ENABLE_CSS_FILTERS
344 attribute WebKitCSSFilterValueConstructor WebKitCSSFilterValue;
347 attribute CSSRuleConstructor CSSRule;
348 attribute CSSCharsetRuleConstructor CSSCharsetRule;
349 attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
350 attribute CSSImportRuleConstructor CSSImportRule;
351 attribute CSSMediaRuleConstructor CSSMediaRule;
352 attribute CSSPageRuleConstructor CSSPageRule;
353 attribute CSSStyleRuleConstructor CSSStyleRule;
355 attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
356 attribute MediaListConstructor MediaList;
357 attribute CounterConstructor Counter;
358 attribute CSSRuleListConstructor CSSRuleList;
359 attribute RectConstructor Rect;
360 attribute RGBColorConstructor RGBColor;
361 attribute StyleSheetListConstructor StyleSheetList;
363 // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
364 attribute DOMCoreExceptionConstructor DOMException;
365 attribute DOMStringListConstructor DOMStringList;
366 // attribute NameListConstructor NameList;
367 // attribute DOMImplementationListConstructor DOMImplementationList;
368 // attribute DOMImplementationSourceConstructor DOMImplementationSource;
369 attribute DOMImplementationConstructor DOMImplementation;
370 attribute DOMSettableTokenListConstructor DOMSettableTokenList;
371 attribute DOMTokenListConstructor DOMTokenList;
372 attribute DocumentFragmentConstructor DocumentFragment;
373 attribute DocumentConstructor Document;
374 attribute NodeConstructor Node;
375 attribute NodeListConstructor NodeList;
376 attribute NamedNodeMapConstructor NamedNodeMap;
377 attribute CharacterDataConstructor CharacterData;
378 attribute AttrConstructor Attr;
379 attribute ElementConstructor Element;
380 attribute TextConstructor Text;
381 attribute CommentConstructor Comment;
382 // attribute TypeInfoConstructor TypeInfo;
383 // attribute UserDataHandlerConstructor UserDataHandler;
384 // attribute DOMErrorConstructor DOMError;
385 // attribute DOMErrorHandlerConstructor DOMErrorHandler
386 // attribute DOMLocatorConstructor DOMLocator;
387 // attribute DOMConfigurationConstructor DOMConfiguration;
388 attribute CDATASectionConstructor CDATASection;
389 attribute DocumentTypeConstructor DocumentType;
390 attribute NotationConstructor Notation;
391 attribute EntityConstructor Entity;
392 attribute EntityReferenceConstructor EntityReference;
393 attribute ProcessingInstructionConstructor ProcessingInstruction;
394 attribute [Conditional=SHADOW_DOM, V8EnabledAtRuntime=shadowDOM] ShadowRootConstructor WebKitShadowRoot;
396 attribute DOMSelectionConstructor Selection;
397 attribute DOMWindowConstructor Window;
399 attribute HTMLDocumentConstructor HTMLDocument;
400 attribute HTMLElementConstructor HTMLElement;
401 attribute HTMLAnchorElementConstructor HTMLAnchorElement;
402 attribute HTMLAppletElementConstructor HTMLAppletElement;
403 attribute HTMLAreaElementConstructor HTMLAreaElement;
404 attribute HTMLBRElementConstructor HTMLBRElement;
405 attribute HTMLBaseElementConstructor HTMLBaseElement;
406 attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
407 attribute HTMLBodyElementConstructor HTMLBodyElement;
408 attribute HTMLButtonElementConstructor HTMLButtonElement;
409 attribute HTMLCanvasElementConstructor HTMLCanvasElement;
410 attribute HTMLDListElementConstructor HTMLDListElement;
411 attribute HTMLDirectoryElementConstructor HTMLDirectoryElement;
412 attribute HTMLDivElementConstructor HTMLDivElement;
413 attribute HTMLEmbedElementConstructor HTMLEmbedElement;
414 attribute HTMLFieldSetElementConstructor HTMLFieldSetElement;
415 attribute HTMLFontElementConstructor HTMLFontElement;
416 attribute HTMLFormElementConstructor HTMLFormElement;
417 attribute HTMLFrameElementConstructor HTMLFrameElement;
418 attribute HTMLFrameSetElementConstructor HTMLFrameSetElement;
419 attribute HTMLHRElementConstructor HTMLHRElement;
420 attribute HTMLHeadElementConstructor HTMLHeadElement;
421 attribute HTMLHeadingElementConstructor HTMLHeadingElement;
422 attribute HTMLHtmlElementConstructor HTMLHtmlElement;
423 attribute HTMLIFrameElementConstructor HTMLIFrameElement;
424 attribute HTMLImageElementConstructor HTMLImageElement;
425 attribute HTMLInputElementConstructor HTMLInputElement;
426 attribute HTMLKeygenElementConstructor HTMLKeygenElement;
427 attribute HTMLLIElementConstructor HTMLLIElement;
428 attribute HTMLLabelElementConstructor HTMLLabelElement;
429 attribute HTMLLegendElementConstructor HTMLLegendElement;
430 attribute HTMLLinkElementConstructor HTMLLinkElement;
431 attribute HTMLMapElementConstructor HTMLMapElement;
432 attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
433 attribute HTMLMenuElementConstructor HTMLMenuElement;
434 attribute HTMLMetaElementConstructor HTMLMetaElement;
435 #if defined(ENABLE_METER_TAG) && ENABLE_METER_TAG
436 attribute HTMLMeterElementConstructor HTMLMeterElement;
438 attribute HTMLModElementConstructor HTMLModElement;
439 attribute HTMLOListElementConstructor HTMLOListElement;
440 attribute HTMLObjectElementConstructor HTMLObjectElement;
441 attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
442 attribute HTMLOptionElementConstructor HTMLOptionElement;
443 attribute HTMLOutputElementConstructor HTMLOutputElement;
444 attribute HTMLParagraphElementConstructor HTMLParagraphElement;
445 attribute HTMLParamElementConstructor HTMLParamElement;
446 attribute HTMLPreElementConstructor HTMLPreElement;
447 #if defined(ENABLE_PROGRESS_TAG) && ENABLE_PROGRESS_TAG
448 attribute HTMLProgressElementConstructor HTMLProgressElement;
450 attribute HTMLQuoteElementConstructor HTMLQuoteElement;
451 attribute HTMLScriptElementConstructor HTMLScriptElement;
452 attribute HTMLSelectElementConstructor HTMLSelectElement;
453 attribute HTMLSpanElementConstructor HTMLSpanElement;
454 attribute HTMLStyleElementConstructor HTMLStyleElement;
455 attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement;
456 attribute HTMLTableCellElementConstructor HTMLTableCellElement;
457 attribute HTMLTableColElementConstructor HTMLTableColElement;
458 attribute HTMLTableElementConstructor HTMLTableElement;
459 attribute HTMLTableRowElementConstructor HTMLTableRowElement;
460 attribute HTMLTableSectionElementConstructor HTMLTableSectionElement;
461 attribute HTMLTextAreaElementConstructor HTMLTextAreaElement;
462 attribute HTMLTitleElementConstructor HTMLTitleElement;
463 attribute HTMLUListElementConstructor HTMLUListElement;
465 attribute HTMLCollectionConstructor HTMLCollection;
466 attribute HTMLAllCollectionConstructor HTMLAllCollection;
467 attribute [Conditional=MICRODATA] HTMLPropertiesCollectionConstructor HTMLPropertiesCollection;
468 attribute HTMLUnknownElementConstructor HTMLUnknownElement;
470 attribute [JSCustomGetter, CustomConstructor] HTMLImageElementConstructorConstructor Image; // Usable with new operator
471 attribute [JSCustomGetter] HTMLOptionElementConstructorConstructor Option; // Usable with new operator
473 attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] HTMLTrackElementConstructor HTMLTrackElement;
474 attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackConstructor TextTrack;
475 attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackCueConstructor TextTrackCue; // Usable with the new operator
476 attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackCueListConstructor TextTrackCueList;
477 attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackListConstructor TextTrackList;
478 attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TrackEventConstructor TrackEvent;
480 attribute [JSCustomGetter, Conditional=VIDEO, V8EnabledAtRuntime] HTMLAudioElementConstructorConstructor Audio; // Usable with the new operator
481 attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLAudioElementConstructor HTMLAudioElement;
482 attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLMediaElementConstructor HTMLMediaElement;
483 attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLVideoElementConstructor HTMLVideoElement;
484 attribute [Conditional=VIDEO, V8EnabledAtRuntime] MediaErrorConstructor MediaError;
485 attribute [Conditional=VIDEO, V8EnabledAtRuntime] TimeRangesConstructor TimeRanges;
486 attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLSourceElementConstructor HTMLSourceElement;
487 attribute [Conditional=VIDEO, V8EnabledAtRuntime] MediaControllerConstructor MediaController;
489 attribute CanvasPatternConstructor CanvasPattern;
490 attribute CanvasGradientConstructor CanvasGradient;
491 attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
493 attribute ImageDataConstructor ImageData;
494 attribute TextMetricsConstructor TextMetrics;
496 attribute DOMStringMapConstructor DOMStringMap;
498 attribute ArrayBufferConstructor ArrayBuffer; // Usable with new operator
499 attribute Int8ArrayConstructor Int8Array; // Usable with new operator
500 attribute Uint8ArrayConstructor Uint8Array; // Usable with new operator
501 attribute Uint8ClampedArrayConstructor Uint8ClampedArray; // Usable with new operator
502 attribute Int16ArrayConstructor Int16Array; // Usable with new operator
503 attribute Uint16ArrayConstructor Uint16Array; // Usable with new operator
504 attribute Int32ArrayConstructor Int32Array; // Usable with new operator
505 attribute Uint32ArrayConstructor Uint32Array; // Usable with new operator
506 attribute Float32ArrayConstructor Float32Array; // Usable with new operator
507 attribute Float64ArrayConstructor Float64Array; // Usable with new operator
508 attribute DataViewConstructor DataView; // Usable with new operator
510 // Event Constructors
511 attribute EventConstructor Event;
512 attribute BeforeLoadEventConstructor BeforeLoadEvent;
513 attribute CompositionEventConstructor CompositionEvent;
514 attribute CustomEventConstructor CustomEvent;
515 attribute ErrorEventConstructor ErrorEvent;
516 attribute HashChangeEventConstructor HashChangeEvent;
517 attribute KeyboardEventConstructor KeyboardEvent;
518 attribute MessageEventConstructor MessageEvent;
519 attribute MouseEventConstructor MouseEvent;
520 attribute MutationEventConstructor MutationEvent;
521 attribute OverflowEventConstructor OverflowEvent;
522 attribute PopStateEventConstructor PopStateEvent;
523 attribute PageTransitionEventConstructor PageTransitionEvent;
524 attribute ProgressEventConstructor ProgressEvent;
525 attribute TextEventConstructor TextEvent;
526 attribute UIEventConstructor UIEvent;
527 attribute WebKitAnimationEventConstructor WebKitAnimationEvent;
528 attribute WebKitTransitionEventConstructor WebKitTransitionEvent;
529 attribute WheelEventConstructor WheelEvent;
530 attribute XMLHttpRequestProgressEventConstructor XMLHttpRequestProgressEvent;
531 attribute [Conditional=DEVICE_ORIENTATION, V8EnabledAtRuntime] DeviceMotionEventConstructor DeviceMotionEvent;
532 attribute [Conditional=DEVICE_ORIENTATION, V8EnabledAtRuntime] DeviceOrientationEventConstructor DeviceOrientationEvent;
533 attribute [Conditional=TOUCH_EVENTS] TouchEventConstructor TouchEvent;
534 attribute StorageEventConstructor StorageEvent;
535 attribute [Conditional=INPUT_SPEECH] SpeechInputEventConstructor SpeechInputEvent;
536 attribute [Conditional=WEBGL] WebGLContextEventConstructor WebGLContextEvent;
538 attribute EventExceptionConstructor EventException;
540 attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
541 attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
542 attribute WebKitCSSRegionRuleConstructor WebKitCSSRegionRule;
544 attribute WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
546 attribute WebKitPointConstructor WebKitPoint; // Usable with new the operator
548 attribute ClipboardConstructor Clipboard;
550 attribute [Conditional=WORKERS] WorkerConstructor Worker; // Usable with the new operator
551 attribute [Conditional=SHARED_WORKERS, JSCustomGetter, V8EnabledAtRuntime] SharedWorkerConstructor SharedWorker; // Usable with the new operator
553 attribute FileConstructor File;
554 attribute FileListConstructor FileList;
555 attribute BlobConstructor Blob;
557 attribute NodeFilterConstructor NodeFilter;
558 attribute RangeConstructor Range;
559 attribute RangeExceptionConstructor RangeException;
561 attribute EventSourceConstructor EventSource; // Usable with new the operator
563 // Mozilla has a separate XMLDocument object for XML documents.
564 // We just use Document for this.
565 attribute DocumentConstructor XMLDocument;
566 attribute DOMParserConstructor DOMParser;
567 attribute XMLSerializerConstructor XMLSerializer;
568 attribute XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
569 attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
570 attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
571 attribute [Conditional=XSLT] XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
573 #if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
574 attribute MessagePortConstructor MessagePort;
575 attribute MessageChannelConstructor MessageChannel; // Usable with the new operator
578 attribute DOMPluginConstructor Plugin;
579 attribute DOMPluginArrayConstructor PluginArray;
581 attribute DOMMimeTypeConstructor MimeType;
582 attribute DOMMimeTypeArrayConstructor MimeTypeArray;
584 attribute ClientRectConstructor ClientRect;
585 attribute ClientRectListConstructor ClientRectList;
587 attribute StorageConstructor Storage;
589 #if defined(ENABLE_ANIMATION_API) && ENABLE_ANIMATION_API
590 attribute WebKitAnimationConstructor WebKitAnimation;
591 attribute WebKitAnimationListConstructor WebKitAnimationList;
594 attribute XPathEvaluatorConstructor XPathEvaluator;
595 attribute XPathResultConstructor XPathResult;
596 attribute XPathExceptionConstructor XPathException;
598 attribute DOMFormDataConstructor FormData;
600 attribute [Conditional=BLOB|FILE_SYSTEM] FileErrorConstructor FileError;
601 attribute [Conditional=BLOB] FileReaderConstructor FileReader;
603 attribute [Conditional=BLOB] WebKitBlobBuilderConstructor WebKitBlobBuilder;
605 attribute [Conditional=BLOB] DOMURLConstructor webkitURL;
607 #if defined(ENABLE_QUOTA) && ENABLE_QUOTA
608 readonly attribute [V8EnabledAtRuntime=Quota] StorageInfo webkitStorageInfo;
611 attribute [Conditional=MUTATION_OBSERVERS] WebKitMutationObserverConstructor WebKitMutationObserver;
613 #endif // defined(LANGUAGE_JAVASCRIPT)
615 #if defined(V8_BINDING) && V8_BINDING
616 // window.toString() requires special handling in V8
617 [V8DoNotCheckSignature, DoNotCheckSecurity, Custom, NotEnumerable] DOMString toString();
618 #endif // defined(V8_BINDING)