blob: d06afe0cc7274206856e487e175a9fdc1867e367 [file] [log] [blame]
/*
* Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
* Copyright (C) 2011 Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
[
CheckSecurity,
JSCustomDefineOwnProperty,
CustomDeleteProperty,
CustomGetOwnPropertySlot,
CustomEnumerateProperty,
JSCustomMarkFunction,
JSCustomToNativeObject,
CustomPutFunction,
EventTarget,
ExtendsDOMGlobalObject,
JSGenerateToNativeObject,
ReplaceableConstructor,
JSLegacyParent=JSDOMWindowBase,
V8CustomToJSObject,
V8NoWrapperCache,
V8CustomIndexedGetter,
InterfaceName=Window
] interface DOMWindow {
// DOM Level 0
[Replaceable] readonly attribute Screen screen;
[Replaceable, DoNotCheckSecurityOnGetter] readonly attribute History history;
[Replaceable] readonly attribute BarInfo locationbar;
[Replaceable] readonly attribute BarInfo menubar;
[Replaceable] readonly attribute BarInfo personalbar;
[Replaceable] readonly attribute BarInfo scrollbars;
[Replaceable] readonly attribute BarInfo statusbar;
[Replaceable] readonly attribute BarInfo toolbar;
[Replaceable] readonly attribute Navigator navigator;
[Replaceable] readonly attribute Navigator clientInformation;
readonly attribute Crypto crypto;
#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
attribute [DoNotCheckSecurity, CustomSetter, V8Unforgeable] Location location;
#endif
[Replaceable, CustomGetter, V8CustomSetter] readonly attribute Event event;
DOMSelection getSelection();
readonly attribute [CheckSecurityForNode] Element frameElement;
[DoNotCheckSecurity, CallWith=ScriptExecutionContext] void focus();
[DoNotCheckSecurity] void blur();
[DoNotCheckSecurity, CallWith=ScriptExecutionContext] void close();
void print();
void stop();
[Custom] DOMWindow open(in DOMString url,
in DOMString name,
in [Optional] DOMString options);
[Custom] any showModalDialog(in DOMString url,
in [Optional] any dialogArgs,
in [Optional] DOMString featureArgs);
void alert(in [Optional=DefaultIsUndefined] DOMString message);
boolean confirm(in [Optional=DefaultIsUndefined] DOMString message);
[TreatReturnedNullStringAs=Null] DOMString prompt(in [Optional=DefaultIsUndefined] DOMString message,
in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString defaultValue);
boolean find(in [Optional=DefaultIsUndefined] DOMString string,
in [Optional=DefaultIsUndefined] boolean caseSensitive,
in [Optional=DefaultIsUndefined] boolean backwards,
in [Optional=DefaultIsUndefined] boolean wrap,
in [Optional=DefaultIsUndefined] boolean wholeWord,
in [Optional=DefaultIsUndefined] boolean searchInFrames,
in [Optional=DefaultIsUndefined] boolean showDialog);
[Replaceable] readonly attribute boolean offscreenBuffering;
[Replaceable] readonly attribute long outerHeight;
[Replaceable] readonly attribute long outerWidth;
[Replaceable] readonly attribute long innerHeight;
[Replaceable] readonly attribute long innerWidth;
[Replaceable] readonly attribute long screenX;
[Replaceable] readonly attribute long screenY;
[Replaceable] readonly attribute long screenLeft;
[Replaceable] readonly attribute long screenTop;
[Replaceable] readonly attribute long scrollX;
[Replaceable] readonly attribute long scrollY;
readonly attribute long pageXOffset;
readonly attribute long pageYOffset;
void scrollBy(in [Optional=DefaultIsUndefined] long x, in [Optional=DefaultIsUndefined] long y);
void scrollTo(in [Optional=DefaultIsUndefined] long x, in [Optional=DefaultIsUndefined] long y);
void scroll(in [Optional=DefaultIsUndefined] long x, in [Optional=DefaultIsUndefined] long y);
void moveBy(in [Optional=DefaultIsUndefined] float x, in [Optional=DefaultIsUndefined] float y); // FIXME: this should take longs not floats.
void moveTo(in [Optional=DefaultIsUndefined] float x, in [Optional=DefaultIsUndefined] float y); // FIXME: this should take longs not floats.
void resizeBy(in [Optional=DefaultIsUndefined] float x, in [Optional=DefaultIsUndefined] float y); // FIXME: this should take longs not floats.
void resizeTo(in [Optional=DefaultIsUndefined] float width, in [Optional=DefaultIsUndefined] float height); // FIXME: this should take longs not floats.
readonly attribute [DoNotCheckSecurity] boolean closed;
[Replaceable, DoNotCheckSecurityOnGetter] readonly attribute unsigned long length;
attribute DOMString name;
attribute DOMString status;
attribute DOMString defaultStatus;
#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
// This attribute is an alias of defaultStatus and is necessary for legacy uses.
attribute DOMString defaultstatus;
#endif
// Self referential attributes
[Replaceable, DoNotCheckSecurityOnGetter] readonly attribute DOMWindow self;
[DoNotCheckSecurity, V8Unforgeable] readonly attribute DOMWindow window;
[Replaceable, DoNotCheckSecurityOnGetter] readonly attribute DOMWindow frames;
[Replaceable, DoNotCheckSecurityOnGetter, V8CustomSetter] readonly attribute DOMWindow opener;
[Replaceable, DoNotCheckSecurityOnGetter] readonly attribute DOMWindow parent;
[DoNotCheckSecurityOnGetter, V8Unforgeable] readonly attribute DOMWindow top;
// DOM Level 2 AbstractView Interface
readonly attribute Document document;
// CSSOM View Module
MediaQueryList matchMedia(in DOMString query);
// styleMedia has been removed from the CSSOM View specification.
readonly attribute StyleMedia styleMedia;
// DOM Level 2 Style Interface
[V8PerWorldBindings] CSSStyleDeclaration getComputedStyle(in [Optional=DefaultIsUndefined] Element element,
in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString pseudoElement);
// WebKit extensions
#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
CSSRuleList getMatchedCSSRules(in [Optional=DefaultIsUndefined] Element element,
in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString pseudoElement);
#endif
[Replaceable] readonly attribute double devicePixelRatio;
WebKitPoint webkitConvertPointFromPageToNode(in [Optional=DefaultIsUndefined] Node node,
in [Optional=DefaultIsUndefined] WebKitPoint p);
WebKitPoint webkitConvertPointFromNodeToPage(in [Optional=DefaultIsUndefined] Node node,
in [Optional=DefaultIsUndefined] WebKitPoint p);
readonly attribute [V8EnabledAtRuntime] DOMApplicationCache applicationCache;
readonly attribute [V8EnabledAtRuntime] Storage sessionStorage
getter raises(DOMException);
readonly attribute [V8EnabledAtRuntime] Storage localStorage
getter raises(DOMException);
#if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
// This is the interface orientation in degrees. Some examples are:
// 0 is straight up; -90 is when the device is rotated 90 clockwise;
// 90 is when rotated counter clockwise.
readonly attribute long orientation;
#endif
[Replaceable] readonly attribute Console console;
// cross-document messaging
#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
[DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in DOMString targetOrigin, in [Optional] Array messagePorts)
raises(DOMException);
#else
// There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port.
[DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] MessagePort messagePort, in DOMString targetOrigin)
raises(DOMException);
#endif
#if defined(ENABLE_WEB_TIMING) && ENABLE_WEB_TIMING
[Replaceable] readonly attribute Performance performance;
#endif
// Timers
[Custom] long setTimeout(in any handler, in [Optional=DefaultIsUndefined] long timeout);
void clearTimeout(in [Optional=DefaultIsUndefined] long handle);
[Custom] long setInterval(in any handler, in [Optional=DefaultIsUndefined] long timeout);
void clearInterval(in [Optional=DefaultIsUndefined] long handle);
#if defined(ENABLE_REQUEST_ANIMATION_FRAME) && ENABLE_REQUEST_ANIMATION_FRAME
[V8MeasureAs=UnprefixedRequestAnimationFrame] long requestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback);
void cancelAnimationFrame(in long id);
[V8MeasureAs=PrefixedRequestAnimationFrame] long webkitRequestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback);
[ImplementedAs=cancelAnimationFrame] void webkitCancelAnimationFrame(in long id);
[ImplementedAs=cancelAnimationFrame] void webkitCancelRequestAnimationFrame(in long id); // This is a deprecated alias for webkitCancelAnimationFrame(). Remove this when removing vendor prefix.
#endif
// Base64
DOMString atob(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString string)
raises(DOMException);
DOMString btoa(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString string)
raises(DOMException);
attribute [Replaceable,Conditional=CSS3_CONDITIONAL_RULES] DOMWindowCSS CSS;
// Events
attribute EventListener onabort;
attribute EventListener onbeforeunload;
attribute EventListener onblur;
attribute EventListener oncanplay;
attribute EventListener oncanplaythrough;
attribute EventListener onchange;
attribute EventListener onclick;
attribute EventListener oncontextmenu;
attribute EventListener ondblclick;
attribute EventListener ondrag;
attribute EventListener ondragend;
attribute EventListener ondragenter;
attribute EventListener ondragleave;
attribute EventListener ondragover;
attribute EventListener ondragstart;
attribute EventListener ondrop;
attribute EventListener ondurationchange;
attribute EventListener onemptied;
attribute EventListener onended;
attribute EventListener onerror;
attribute EventListener onfocus;
attribute EventListener onhashchange;
attribute EventListener oninput;
attribute EventListener oninvalid;
attribute EventListener onkeydown;
attribute EventListener onkeypress;
attribute EventListener onkeyup;
attribute EventListener onload;
attribute EventListener onloadeddata;
attribute EventListener onloadedmetadata;
attribute EventListener onloadstart;
attribute EventListener onmessage;
attribute EventListener onmousedown;
attribute EventListener onmousemove;
attribute EventListener onmouseout;
attribute EventListener onmouseover;
attribute EventListener onmouseup;
attribute EventListener onmousewheel;
attribute EventListener onoffline;
attribute EventListener ononline;
attribute EventListener onpagehide;
attribute EventListener onpageshow;
attribute EventListener onpause;
attribute EventListener onplay;
attribute EventListener onplaying;
attribute EventListener onpopstate;
attribute EventListener onprogress;
attribute EventListener onratechange;
attribute EventListener onresize;
attribute EventListener onscroll;
attribute EventListener onseeked;
attribute EventListener onseeking;
attribute EventListener onselect;
attribute EventListener onstalled;
attribute EventListener onstorage;
attribute EventListener onsubmit;
attribute EventListener onsuspend;
attribute EventListener ontimeupdate;
attribute EventListener onunload;
attribute EventListener onvolumechange;
attribute EventListener onwaiting;
// Not implemented yet.
// attribute EventListener onafterprint;
// attribute EventListener onbeforeprint;
// attribute EventListener onreadystatechange;
// attribute EventListener onredo;
// attribute EventListener onshow;
// attribute EventListener onundo;
// Webkit extensions
attribute EventListener onreset;
attribute EventListener onsearch;
attribute EventListener onwebkitanimationend;
attribute EventListener onwebkitanimationiteration;
attribute EventListener onwebkitanimationstart;
attribute EventListener onwebkittransitionend;
attribute EventListener ontransitionend;
#if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
attribute EventListener onorientationchange;
#endif
attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime=touch] EventListener ontouchstart;
attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime=touch] EventListener ontouchmove;
attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime=touch] EventListener ontouchend;
attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime=touch] EventListener ontouchcancel;
attribute [Conditional=DEVICE_ORIENTATION,V8EnabledAtRuntime] EventListener ondevicemotion;
attribute [Conditional=DEVICE_ORIENTATION,V8EnabledAtRuntime] EventListener ondeviceorientation;
attribute [Conditional=PROXIMITY_EVENTS] EventListener onwebkitdeviceproximity;
// EventTarget interface
[Custom] void addEventListener(in DOMString type,
in EventListener listener,
in [Optional] boolean useCapture);
[Custom] void removeEventListener(in DOMString type,
in EventListener listener,
in [Optional] boolean useCapture);
boolean dispatchEvent(in Event evt)
raises(EventException);
[V8Custom] void captureEvents(/*in long eventFlags*/);
[V8Custom] void releaseEvents(/*in long eventFlags*/);
#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
// Global constructors
attribute StyleSheetConstructor StyleSheet;
attribute CSSStyleSheetConstructor CSSStyleSheet;
attribute CSSValueConstructor CSSValue;
attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
attribute CSSValueListConstructor CSSValueList;
attribute WebKitCSSTransformValueConstructor WebKitCSSTransformValue;
#if defined(ENABLE_CSS_SHADERS) && ENABLE_CSS_SHADERS
attribute WebKitCSSFilterRuleConstructor WebKitCSSFilterRule;
attribute WebKitCSSMixFunctionValueConstructor WebKitCSSMixFunctionValue;
#endif
#if defined(ENABLE_CSS_FILTERS) && ENABLE_CSS_FILTERS
attribute WebKitCSSFilterValueConstructor WebKitCSSFilterValue;
#endif
#if defined(ENABLE_CSS_DEVICE_ADAPTATION) && ENABLE_CSS_DEVICE_ADAPTATION
attribute WebKitCSSViewportRuleConstructor WebKitCSSViewportRule;
#endif
attribute CSSRuleConstructor CSSRule;
attribute CSSCharsetRuleConstructor CSSCharsetRule;
attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
#if defined(ENABLE_SHADOW_DOM) && ENABLE_SHADOW_DOM
attribute CSSHostRuleConstructor CSSHostRule;
#endif
attribute CSSImportRuleConstructor CSSImportRule;
attribute CSSMediaRuleConstructor CSSMediaRule;
attribute CSSPageRuleConstructor CSSPageRule;
attribute CSSStyleRuleConstructor CSSStyleRule;
attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
attribute MediaListConstructor MediaList;
attribute CounterConstructor Counter;
attribute CSSRuleListConstructor CSSRuleList;
attribute RectConstructor Rect;
attribute RGBColorConstructor RGBColor;
attribute StyleSheetListConstructor StyleSheetList;
// FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
attribute DOMCoreExceptionConstructor DOMException;
attribute DOMStringListConstructor DOMStringList;
// attribute NameListConstructor NameList;
// attribute DOMImplementationListConstructor DOMImplementationList;
// attribute DOMImplementationSourceConstructor DOMImplementationSource;
attribute DOMImplementationConstructor DOMImplementation;
attribute DOMSettableTokenListConstructor DOMSettableTokenList;
attribute DOMTokenListConstructor DOMTokenList;
attribute DocumentFragmentConstructor DocumentFragment;
attribute DocumentConstructor Document;
attribute NodeConstructor Node;
attribute NodeListConstructor NodeList;
[Conditional=MICRODATA] attribute PropertyNodeListConstructor PropertyNodeList;
attribute NamedNodeMapConstructor NamedNodeMap;
attribute CharacterDataConstructor CharacterData;
attribute AttrConstructor Attr;
attribute ElementConstructor Element;
attribute TextConstructor Text;
attribute CommentConstructor Comment;
// attribute TypeInfoConstructor TypeInfo;
// attribute UserDataHandlerConstructor UserDataHandler;
// attribute DOMErrorConstructor DOMError;
// attribute DOMErrorHandlerConstructor DOMErrorHandler
// attribute DOMLocatorConstructor DOMLocator;
// attribute DOMConfigurationConstructor DOMConfiguration;
attribute CDATASectionConstructor CDATASection;
attribute DocumentTypeConstructor DocumentType;
attribute NotationConstructor Notation;
attribute EntityConstructor Entity;
attribute EntityReferenceConstructor EntityReference;
[Conditional=CANVAS_PATH, V8EnabledAtRuntime=canvasPath] attribute DOMPathConstructor Path;
attribute ProcessingInstructionConstructor ProcessingInstruction;
[Conditional=SHADOW_DOM, V8EnabledAtRuntime=shadowDOM] attribute ShadowRootConstructor WebKitShadowRoot;
[Conditional=SHADOW_DOM, V8EnabledAtRuntime=shadowDOM] attribute HTMLContentElementConstructor HTMLContentElement;
[Conditional=SHADOW_DOM, V8EnabledAtRuntime=shadowDOM] attribute HTMLShadowElementConstructor HTMLShadowElement;
attribute DOMSelectionConstructor Selection;
attribute DOMWindowConstructor Window;
attribute HTMLDocumentConstructor HTMLDocument;
attribute HTMLElementConstructor HTMLElement;
attribute HTMLAnchorElementConstructor HTMLAnchorElement;
attribute HTMLAppletElementConstructor HTMLAppletElement;
attribute HTMLAreaElementConstructor HTMLAreaElement;
attribute HTMLBRElementConstructor HTMLBRElement;
attribute HTMLBaseElementConstructor HTMLBaseElement;
attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
attribute HTMLBodyElementConstructor HTMLBodyElement;
attribute HTMLButtonElementConstructor HTMLButtonElement;
attribute HTMLCanvasElementConstructor HTMLCanvasElement;
attribute HTMLDListElementConstructor HTMLDListElement;
[Conditional=DATALIST_ELEMENT] attribute HTMLDataListElementConstructor HTMLDataListElement;
[Conditional=DIALOG_ELEMENT, V8EnabledPerContext=dialogElement] attribute HTMLDialogElementConstructor HTMLDialogElement;
attribute HTMLDirectoryElementConstructor HTMLDirectoryElement;
attribute HTMLDivElementConstructor HTMLDivElement;
attribute HTMLEmbedElementConstructor HTMLEmbedElement;
attribute HTMLFieldSetElementConstructor HTMLFieldSetElement;
attribute HTMLFontElementConstructor HTMLFontElement;
attribute HTMLFormElementConstructor HTMLFormElement;
attribute HTMLFrameElementConstructor HTMLFrameElement;
attribute HTMLFrameSetElementConstructor HTMLFrameSetElement;
attribute HTMLHRElementConstructor HTMLHRElement;
attribute HTMLHeadElementConstructor HTMLHeadElement;
attribute HTMLHeadingElementConstructor HTMLHeadingElement;
attribute HTMLHtmlElementConstructor HTMLHtmlElement;
attribute HTMLIFrameElementConstructor HTMLIFrameElement;
attribute HTMLImageElementConstructor HTMLImageElement;
attribute HTMLInputElementConstructor HTMLInputElement;
attribute HTMLKeygenElementConstructor HTMLKeygenElement;
attribute HTMLLIElementConstructor HTMLLIElement;
attribute HTMLLabelElementConstructor HTMLLabelElement;
attribute HTMLLegendElementConstructor HTMLLegendElement;
attribute HTMLLinkElementConstructor HTMLLinkElement;
attribute HTMLMapElementConstructor HTMLMapElement;
attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
attribute HTMLMenuElementConstructor HTMLMenuElement;
attribute HTMLMetaElementConstructor HTMLMetaElement;
#if defined(ENABLE_METER_ELEMENT) && ENABLE_METER_ELEMENT
attribute HTMLMeterElementConstructor HTMLMeterElement;
#endif
attribute HTMLModElementConstructor HTMLModElement;
attribute HTMLOListElementConstructor HTMLOListElement;
attribute HTMLObjectElementConstructor HTMLObjectElement;
attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
attribute HTMLOptionElementConstructor HTMLOptionElement;
attribute HTMLOutputElementConstructor HTMLOutputElement;
attribute HTMLParagraphElementConstructor HTMLParagraphElement;
attribute HTMLParamElementConstructor HTMLParamElement;
attribute HTMLPreElementConstructor HTMLPreElement;
#if defined(ENABLE_PROGRESS_ELEMENT) && ENABLE_PROGRESS_ELEMENT
attribute HTMLProgressElementConstructor HTMLProgressElement;
#endif
attribute HTMLQuoteElementConstructor HTMLQuoteElement;
attribute HTMLScriptElementConstructor HTMLScriptElement;
attribute HTMLSelectElementConstructor HTMLSelectElement;
attribute HTMLSpanElementConstructor HTMLSpanElement;
attribute HTMLStyleElementConstructor HTMLStyleElement;
attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement;
attribute HTMLTableCellElementConstructor HTMLTableCellElement;
attribute HTMLTableColElementConstructor HTMLTableColElement;
attribute HTMLTableElementConstructor HTMLTableElement;
attribute HTMLTableRowElementConstructor HTMLTableRowElement;
attribute HTMLTableSectionElementConstructor HTMLTableSectionElement;
attribute [Conditional=TEMPLATE_ELEMENT] HTMLTemplateElementConstructor HTMLTemplateElement;
attribute HTMLTextAreaElementConstructor HTMLTextAreaElement;
attribute HTMLTitleElementConstructor HTMLTitleElement;
attribute HTMLUListElementConstructor HTMLUListElement;
attribute HTMLCollectionConstructor HTMLCollection;
attribute HTMLAllCollectionConstructor HTMLAllCollection;
attribute HTMLFormControlsCollectionConstructor HTMLFormControlsCollection;
attribute HTMLOptionsCollectionConstructor HTMLOptionsCollection;
[Conditional=MICRODATA] attribute HTMLPropertiesCollectionConstructor HTMLPropertiesCollection;
attribute HTMLUnknownElementConstructor HTMLUnknownElement;
[JSCustomGetter, CustomConstructor] attribute HTMLImageElementConstructorConstructor Image; // Usable with new operator
[JSCustomGetter] attribute HTMLOptionElementConstructorConstructor Option; // Usable with new operator
[Conditional=ENCRYPTED_MEDIA, V8EnabledAtRuntime=encryptedMedia] attribute MediaKeyEventConstructor MediaKeyEvent;
attribute [Conditional=ENCRYPTED_MEDIA_V2, V8EnabledAtRuntime=encryptedMedia] MediaKeysConstructor MediaKeys;
attribute [Conditional=ENCRYPTED_MEDIA_V2|ENCRYPTED_MEDIA, V8EnabledAtRuntime=encryptedMedia] MediaKeyErrorConstructor MediaKeyError;
attribute [Conditional=ENCRYPTED_MEDIA_V2, V8EnabledAtRuntime=encryptedMedia] MediaKeyMessageEventConstructor MediaKeyMessageEvent;
attribute [Conditional=ENCRYPTED_MEDIA_V2, V8EnabledAtRuntime=encryptedMedia] MediaKeyNeededEventConstructor MediaKeyNeededEvent;
[Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] attribute HTMLTrackElementConstructor HTMLTrackElement;
[Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] attribute TextTrackConstructor TextTrack;
[Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] attribute TextTrackCueConstructor TextTrackCue; // Usable with the new operator
[Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] attribute TextTrackCueListConstructor TextTrackCueList;
[Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] attribute TextTrackListConstructor TextTrackList;
[Conditional=VIDEO_TRACK & WEBVTT_REGIONS, V8EnabledAtRuntime=webkitVideoTrack] attribute TextTrackRegionConstructor TextTrackRegion; // Usable with the new operator
[Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] attribute TrackEventConstructor TrackEvent;
[JSCustomGetter, Conditional=VIDEO, V8EnabledAtRuntime] attribute HTMLAudioElementConstructorConstructor Audio; // Usable with the new operator
[Conditional=VIDEO, V8EnabledAtRuntime] attribute HTMLAudioElementConstructor HTMLAudioElement;
[Conditional=VIDEO, V8EnabledAtRuntime] attribute HTMLMediaElementConstructor HTMLMediaElement;
[Conditional=VIDEO, V8EnabledAtRuntime] attribute HTMLVideoElementConstructor HTMLVideoElement;
[Conditional=VIDEO, V8EnabledAtRuntime] attribute MediaErrorConstructor MediaError;
[Conditional=VIDEO, V8EnabledAtRuntime] attribute TimeRangesConstructor TimeRanges;
[Conditional=VIDEO, V8EnabledAtRuntime] attribute HTMLSourceElementConstructor HTMLSourceElement;
[Conditional=VIDEO, V8EnabledAtRuntime] attribute MediaControllerConstructor MediaController;
attribute CanvasPatternConstructor CanvasPattern;
attribute CanvasGradientConstructor CanvasGradient;
attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
attribute ImageDataConstructor ImageData;
attribute TextMetricsConstructor TextMetrics;
[Conditional=WEBGL] attribute WebGLActiveInfoConstructor WebGLActiveInfo;
[Conditional=WEBGL] attribute WebGLBufferConstructor WebGLBuffer;
[Conditional=WEBGL] attribute WebGLFramebufferConstructor WebGLFramebuffer;
[Conditional=WEBGL] attribute WebGLProgramConstructor WebGLProgram;
[Conditional=WEBGL] attribute WebGLRenderbufferConstructor WebGLRenderbuffer;
[Conditional=WEBGL] attribute WebGLRenderingContextConstructor WebGLRenderingContext;
[Conditional=WEBGL] attribute WebGLShaderConstructor WebGLShader;
[Conditional=WEBGL] attribute WebGLShaderPrecisionFormatConstructor WebGLShaderPrecisionFormat;
[Conditional=WEBGL] attribute WebGLTextureConstructor WebGLTexture;
[Conditional=WEBGL] attribute WebGLUniformLocationConstructor WebGLUniformLocation;
attribute DOMStringMapConstructor DOMStringMap;
attribute ArrayBufferConstructor ArrayBuffer; // Usable with new operator
attribute ArrayBufferViewConstructor ArrayBufferView;
attribute Int8ArrayConstructor Int8Array; // Usable with new operator
attribute Uint8ArrayConstructor Uint8Array; // Usable with new operator
attribute Uint8ClampedArrayConstructor Uint8ClampedArray; // Usable with new operator
attribute Int16ArrayConstructor Int16Array; // Usable with new operator
attribute Uint16ArrayConstructor Uint16Array; // Usable with new operator
attribute Int32ArrayConstructor Int32Array; // Usable with new operator
attribute Uint32ArrayConstructor Uint32Array; // Usable with new operator
attribute Float32ArrayConstructor Float32Array; // Usable with new operator
attribute Float64ArrayConstructor Float64Array; // Usable with new operator
attribute DataViewConstructor DataView; // Usable with new operator
// Event Constructors
attribute EventConstructor Event;
attribute BeforeLoadEventConstructor BeforeLoadEvent;
attribute CompositionEventConstructor CompositionEvent;
attribute CustomEventConstructor CustomEvent;
attribute ErrorEventConstructor ErrorEvent;
attribute FocusEventConstructor FocusEvent;
attribute HashChangeEventConstructor HashChangeEvent;
attribute KeyboardEventConstructor KeyboardEvent;
attribute MessageEventConstructor MessageEvent;
attribute MouseEventConstructor MouseEvent;
attribute MutationEventConstructor MutationEvent;
attribute OverflowEventConstructor OverflowEvent;
attribute PopStateEventConstructor PopStateEvent;
attribute PageTransitionEventConstructor PageTransitionEvent;
attribute ProgressEventConstructor ProgressEvent;
attribute TextEventConstructor TextEvent;
attribute TransitionEventConstructor TransitionEvent;
attribute UIEventConstructor UIEvent;
attribute WebKitAnimationEventConstructor WebKitAnimationEvent;
attribute WebKitTransitionEventConstructor WebKitTransitionEvent;
attribute WheelEventConstructor WheelEvent;
attribute XMLHttpRequestProgressEventConstructor XMLHttpRequestProgressEvent;
[Conditional=DEVICE_ORIENTATION, V8EnabledAtRuntime] attribute DeviceMotionEventConstructor DeviceMotionEvent;
[Conditional=DEVICE_ORIENTATION, V8EnabledAtRuntime] attribute DeviceOrientationEventConstructor DeviceOrientationEvent;
[Conditional=TOUCH_EVENTS, V8EnabledAtRuntime=touch] attribute TouchConstructor Touch;
[Conditional=TOUCH_EVENTS, V8EnabledAtRuntime=touch] attribute TouchEventConstructor TouchEvent;
[Conditional=TOUCH_EVENTS, V8EnabledAtRuntime=touch] attribute TouchListConstructor TouchList;
attribute StorageEventConstructor StorageEvent;
[Conditional=INPUT_SPEECH] attribute SpeechInputEventConstructor SpeechInputEvent;
[Conditional=WEBGL] attribute WebGLContextEventConstructor WebGLContextEvent;
[Conditional=PROXIMITY_EVENTS] attribute DeviceProximityEventConstructor DeviceProximityEvent;
[Conditional=REQUEST_AUTOCOMPLETE] attribute AutocompleteErrorEventConstructor AutocompleteErrorEvent;
[Conditional=CSP_NEXT, V8EnabledAtRuntime=experimentalContentSecurityPolicyFeatures] attribute SecurityPolicyViolationEventConstructor SecurityPolicyViolationEvent;
attribute EventExceptionConstructor EventException;
attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
[Conditional=CSS_REGIONS, V8EnabledAtRuntime=cssRegions] attribute WebKitCSSRegionRuleConstructor WebKitCSSRegionRule;
attribute WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
attribute WebKitPointConstructor WebKitPoint; // Usable with new the operator
attribute ClipboardConstructor Clipboard;
[Conditional=WORKERS] attribute WorkerConstructor Worker; // Usable with the new operator
[Conditional=SHARED_WORKERS, JSCustomGetter, V8EnabledAtRuntime] attribute SharedWorkerConstructor SharedWorker; // Usable with the new operator
attribute FileConstructor File;
attribute FileListConstructor FileList;
attribute BlobConstructor Blob;
attribute NodeFilterConstructor NodeFilter;
attribute RangeConstructor Range;
attribute RangeExceptionConstructor RangeException;
attribute EventSourceConstructor EventSource; // Usable with new the operator
// Mozilla has a separate XMLDocument object for XML documents.
// We just use Document for this.
attribute DocumentConstructor XMLDocument;
attribute DOMParserConstructor DOMParser;
attribute XMLSerializerConstructor XMLSerializer;
attribute XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
[Conditional=XSLT] attribute XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
#if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
attribute MessagePortConstructor MessagePort;
attribute MessageChannelConstructor MessageChannel; // Usable with the new operator
#endif
attribute DOMPluginConstructor Plugin;
attribute DOMPluginArrayConstructor PluginArray;
attribute DOMMimeTypeConstructor MimeType;
attribute DOMMimeTypeArrayConstructor MimeTypeArray;
attribute ClientRectConstructor ClientRect;
attribute ClientRectListConstructor ClientRectList;
attribute StorageConstructor Storage;
attribute XPathEvaluatorConstructor XPathEvaluator;
attribute XPathResultConstructor XPathResult;
attribute XPathExceptionConstructor XPathException;
[Conditional=SVG] attribute SVGZoomEventConstructor SVGZoomEvent;
#if defined(ENABLE_SVG) && ENABLE_SVG
// Expose all implemented SVG 1.1 interfaces, excluding the SVG MI interfaces:
// SVGAnimatedPathData, SVGAnimatedPoints, SVGExternalResourcesRequired,
// SVGFilterPrimitiveStandardAttributes, SVGFitToViewBox, SVGLangSpace, SVGLocatable
// SVGTests, SVGTransformable, SVGURIReference, SVGZoomAndPan
attribute SVGAElementConstructor SVGAElement;
attribute SVGAngleConstructor SVGAngle;
attribute SVGAnimatedAngleConstructor SVGAnimatedAngle;
attribute SVGAnimatedBooleanConstructor SVGAnimatedBoolean;
attribute SVGAnimatedEnumerationConstructor SVGAnimatedEnumeration;
attribute SVGAnimatedIntegerConstructor SVGAnimatedInteger;
attribute SVGAnimatedLengthConstructor SVGAnimatedLength;
attribute SVGAnimatedLengthListConstructor SVGAnimatedLengthList;
attribute SVGAnimatedNumberConstructor SVGAnimatedNumber;
attribute SVGAnimatedNumberListConstructor SVGAnimatedNumberList;
attribute SVGAnimatedPreserveAspectRatioConstructor SVGAnimatedPreserveAspectRatio;
attribute SVGAnimatedRectConstructor SVGAnimatedRect;
attribute SVGAnimatedStringConstructor SVGAnimatedString;
attribute SVGAnimatedTransformListConstructor SVGAnimatedTransformList;
attribute SVGCircleElementConstructor SVGCircleElement;
attribute SVGClipPathElementConstructor SVGClipPathElement;
attribute SVGColorConstructor SVGColor;
attribute SVGCursorElementConstructor SVGCursorElement;
// attribute SVGCSSRuleConstructor SVGCSSRule;
attribute SVGDefsElementConstructor SVGDefsElement;
attribute SVGDescElementConstructor SVGDescElement;
attribute SVGDocumentConstructor SVGDocument;
attribute SVGElementConstructor SVGElement;
attribute SVGElementInstanceConstructor SVGElementInstance;
attribute SVGElementInstanceListConstructor SVGElementInstanceList;
attribute SVGEllipseElementConstructor SVGEllipseElement;
attribute SVGForeignObjectElementConstructor SVGForeignObjectElement;
attribute SVGExceptionConstructor SVGException;
attribute SVGGElementConstructor SVGGElement;
attribute SVGGradientElementConstructor SVGGradientElement;
attribute SVGImageElementConstructor SVGImageElement;
attribute SVGLengthConstructor SVGLength;
attribute SVGLengthListConstructor SVGLengthList;
attribute SVGLinearGradientElementConstructor SVGLinearGradientElement;
attribute SVGLineElementConstructor SVGLineElement;
attribute SVGMarkerElementConstructor SVGMarkerElement;
attribute SVGMaskElementConstructor SVGMaskElement;
attribute SVGMatrixConstructor SVGMatrix;
attribute SVGMetadataElementConstructor SVGMetadataElement;
attribute SVGNumberConstructor SVGNumber;
attribute SVGNumberListConstructor SVGNumberList;
attribute SVGPaintConstructor SVGPaint;
attribute SVGPathElementConstructor SVGPathElement;
attribute SVGPathSegConstructor SVGPathSeg;
attribute SVGPathSegArcAbsConstructor SVGPathSegArcAbs;
attribute SVGPathSegArcRelConstructor SVGPathSegArcRel;
attribute SVGPathSegClosePathConstructor SVGPathSegClosePath;
attribute SVGPathSegCurvetoCubicAbsConstructor SVGPathSegCurvetoCubicAbs;
attribute SVGPathSegCurvetoCubicRelConstructor SVGPathSegCurvetoCubicRel;
attribute SVGPathSegCurvetoCubicSmoothAbsConstructor SVGPathSegCurvetoCubicSmoothAbs;
attribute SVGPathSegCurvetoCubicSmoothRelConstructor SVGPathSegCurvetoCubicSmoothRel;
attribute SVGPathSegCurvetoQuadraticAbsConstructor SVGPathSegCurvetoQuadraticAbs;
attribute SVGPathSegCurvetoQuadraticRelConstructor SVGPathSegCurvetoQuadraticRel;
attribute SVGPathSegCurvetoQuadraticSmoothAbsConstructor SVGPathSegCurvetoQuadraticSmoothAbs;
attribute SVGPathSegCurvetoQuadraticSmoothRelConstructor SVGPathSegCurvetoQuadraticSmoothRel;
attribute SVGPathSegLinetoAbsConstructor SVGPathSegLinetoAbs;
attribute SVGPathSegLinetoHorizontalAbsConstructor SVGPathSegLinetoHorizontalAbs;
attribute SVGPathSegLinetoHorizontalRelConstructor SVGPathSegLinetoHorizontalRel;
attribute SVGPathSegLinetoRelConstructor SVGPathSegLinetoRel;
attribute SVGPathSegLinetoVerticalAbsConstructor SVGPathSegLinetoVerticalAbs;
attribute SVGPathSegLinetoVerticalRelConstructor SVGPathSegLinetoVerticalRel;
attribute SVGPathSegListConstructor SVGPathSegList;
attribute SVGPathSegMovetoAbsConstructor SVGPathSegMovetoAbs;
attribute SVGPathSegMovetoRelConstructor SVGPathSegMovetoRel;
attribute SVGPatternElementConstructor SVGPatternElement;
attribute SVGPointConstructor SVGPoint;
attribute SVGPointListConstructor SVGPointList;
attribute SVGPolygonElementConstructor SVGPolygonElement;
attribute SVGPolylineElementConstructor SVGPolylineElement;
attribute SVGPreserveAspectRatioConstructor SVGPreserveAspectRatio;
attribute SVGRadialGradientElementConstructor SVGRadialGradientElement;
attribute SVGRectConstructor SVGRect;
attribute SVGRectElementConstructor SVGRectElement;
attribute SVGRenderingIntentConstructor SVGRenderingIntent;
attribute SVGScriptElementConstructor SVGScriptElement;
attribute SVGStopElementConstructor SVGStopElement;
attribute SVGStringListConstructor SVGStringList;
attribute SVGStyleElementConstructor SVGStyleElement;
attribute SVGSVGElementConstructor SVGSVGElement;
attribute SVGSwitchElementConstructor SVGSwitchElement;
attribute SVGSymbolElementConstructor SVGSymbolElement;
attribute SVGTextContentElementConstructor SVGTextContentElement;
attribute SVGTextElementConstructor SVGTextElement;
attribute SVGTextPathElementConstructor SVGTextPathElement;
attribute SVGTextPositioningElementConstructor SVGTextPositioningElement;
attribute SVGTitleElementConstructor SVGTitleElement;
attribute SVGTransformConstructor SVGTransform;
attribute SVGTransformListConstructor SVGTransformList;
attribute SVGTRefElementConstructor SVGTRefElement;
attribute SVGTSpanElementConstructor SVGTSpanElement;
attribute SVGUnitTypesConstructor SVGUnitTypes;
attribute SVGUseElementConstructor SVGUseElement;
attribute SVGViewElementConstructor SVGViewElement;
attribute SVGViewSpecConstructor SVGViewSpec;
attribute SVGZoomAndPanConstructor SVGZoomAndPan;
attribute SVGAnimateColorElementConstructor SVGAnimateColorElement;
attribute SVGAnimateElementConstructor SVGAnimateElement;
attribute SVGAnimateMotionElementConstructor SVGAnimateMotionElement;
attribute SVGAnimateTransformElementConstructor SVGAnimateTransformElement;
attribute SVGMPathElementConstructor SVGMPathElement;
attribute SVGSetElementConstructor SVGSetElement;
#if defined(ENABLE_SVG_FONTS) && ENABLE_SVG_FONTS
attribute SVGAltGlyphDefElementConstructor SVGAltGlyphDefElement;
attribute SVGAltGlyphElementConstructor SVGAltGlyphElement;
attribute SVGAltGlyphItemElementConstructor SVGAltGlyphItemElement;
// attribute SVGDefinitionSrcElementConstructor SVGDefinitionSrcElement;
attribute SVGFontElementConstructor SVGFontElement;
attribute SVGFontFaceElementConstructor SVGFontFaceElement;
attribute SVGFontFaceFormatElementConstructor SVGFontFaceFormatElement;
attribute SVGFontFaceNameElementConstructor SVGFontFaceNameElement;
attribute SVGFontFaceSrcElementConstructor SVGFontFaceSrcElement;
attribute SVGFontFaceUriElementConstructor SVGFontFaceUriElement;
attribute SVGGlyphElementConstructor SVGGlyphElement;
attribute SVGGlyphRefElementConstructor SVGGlyphRefElement;
attribute SVGHKernElementConstructor SVGHKernElement;
attribute SVGMissingGlyphElementConstructor SVGMissingGlyphElement;
attribute SVGVKernElementConstructor SVGVKernElement;
#endif
#if defined(ENABLE_FILTERS) && ENABLE_FILTERS
attribute SVGComponentTransferFunctionElementConstructor SVGComponentTransferFunctionElement;
attribute SVGFEBlendElementConstructor SVGFEBlendElement;
attribute SVGFEColorMatrixElementConstructor SVGFEColorMatrixElement;
attribute SVGFEComponentTransferElementConstructor SVGFEComponentTransferElement;
attribute SVGFECompositeElementConstructor SVGFECompositeElement;
attribute SVGFEConvolveMatrixElementConstructor SVGFEConvolveMatrixElement;
attribute SVGFEDiffuseLightingElementConstructor SVGFEDiffuseLightingElement;
attribute SVGFEDisplacementMapElementConstructor SVGFEDisplacementMapElement;
attribute SVGFEDistantLightElementConstructor SVGFEDistantLightElement;
attribute SVGFEDropShadowElementConstructor SVGFEDropShadowElement;
attribute SVGFEFloodElementConstructor SVGFEFloodElement;
attribute SVGFEFuncAElementConstructor SVGFEFuncAElement;
attribute SVGFEFuncBElementConstructor SVGFEFuncBElement;
attribute SVGFEFuncGElementConstructor SVGFEFuncGElement;
attribute SVGFEFuncRElementConstructor SVGFEFuncRElement;
attribute SVGFEGaussianBlurElementConstructor SVGFEGaussianBlurElement;
attribute SVGFEImageElementConstructor SVGFEImageElement;
attribute SVGFEMergeElementConstructor SVGFEMergeElement;
attribute SVGFEMergeNodeElementConstructor SVGFEMergeNodeElement;
attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement;
attribute SVGFEOffsetElementConstructor SVGFEOffsetElement;
attribute SVGFEPointLightElementConstructor SVGFEPointLightElement;
attribute SVGFESpecularLightingElementConstructor SVGFESpecularLightingElement;
attribute SVGFESpotLightElementConstructor SVGFESpotLightElement;
attribute SVGFETileElementConstructor SVGFETileElement;
attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement;
attribute SVGFilterElementConstructor SVGFilterElement;
#endif
#endif
attribute DOMFormDataConstructor FormData;
[Conditional=BLOB|FILE_SYSTEM] attribute FileErrorConstructor FileError;
[Conditional=BLOB] attribute FileReaderConstructor FileReader;
[Conditional=BLOB] attribute DOMURLConstructor URL;
[Conditional=BLOB] attribute DOMURLConstructor webkitURL; // FIXME: deprecate this.
attribute MutationObserverConstructor WebKitMutationObserver; // FIXME: Add metrics to determine when we can remove this.
attribute MutationObserverConstructor MutationObserver;
[Conditional=MEDIA_SOURCE, V8EnabledAtRuntime=mediaSource] attribute MediaSourceConstructor WebKitMediaSource;
[Conditional=MEDIA_SOURCE, V8EnabledAtRuntime=mediaSource] attribute SourceBufferConstructor WebKitSourceBuffer;
[Conditional=MEDIA_SOURCE, V8EnabledAtRuntime=mediaSource] attribute SourceBufferListConstructor WebKitSourceBufferList;
#endif // defined(LANGUAGE_JAVASCRIPT)
#if defined(V8_BINDING) && V8_BINDING
// window.toString() requires special handling in V8
[V8DoNotCheckSignature, DoNotCheckSecurity, Custom, NotEnumerable] DOMString toString();
#endif // defined(V8_BINDING)
};