blob: c7bcf82c20917114317e29f38fc968f71611e5eb [file] [log] [blame]
/*
* Copyright (C) 2006, 2007, 2008, 2009 Apple 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.
*/
module window {
interface [
CheckDomainSecurity,
CustomDefineGetter,
CustomDefineSetter,
CustomDeleteProperty,
CustomGetOwnPropertySlot,
CustomGetPropertyAttributes,
CustomGetPropertyNames,
CustomLookupGetter,
CustomLookupSetter,
CustomMarkFunction,
CustomNativeConverter,
CustomPutFunction,
ExtendsDOMGlobalObject,
EventTarget,
GenerateNativeConverter,
LegacyParent=JSDOMWindowBase
] DOMWindow {
// DOM Level 0
readonly attribute Screen screen;
readonly attribute [DoNotCheckDomainSecurity, JSCCustomGetter] History history;
attribute [Replaceable] BarInfo locationbar;
attribute [Replaceable] BarInfo menubar;
attribute [Replaceable] BarInfo personalbar;
attribute [Replaceable] BarInfo scrollbars;
attribute [Replaceable] BarInfo statusbar;
attribute [Replaceable] BarInfo toolbar;
attribute [Replaceable] Navigator navigator;
attribute [Replaceable] Navigator clientInformation;
attribute [DoNotCheckDomainSecurity, JSCCustom, V8CustomSetter, V8DisallowShadowing] Location location;
attribute [Replaceable, CustomGetter, V8CustomSetter] Event event;
readonly attribute [Custom] Crypto crypto;
DOMSelection getSelection();
readonly attribute [CheckNodeSecurity] Element frameElement;
[DoNotCheckDomainSecurity] void focus();
[DoNotCheckDomainSecurity] void blur();
[DoNotCheckDomainSecurity] void close();
void print();
void stop();
[Custom] DOMWindow open(in DOMString url,
in DOMString name,
in [Optional] DOMString options);
[Custom] DOMObject showModalDialog(in DOMString url,
in [Optional] DOMObject dialogArgs,
in [Optional] DOMString featureArgs);
void alert(in DOMString message);
boolean confirm(in DOMString message);
[ConvertNullStringTo=Null] DOMString prompt(in DOMString message,
in [ConvertUndefinedOrNullToNullString] DOMString defaultValue);
boolean find(in DOMString string,
in boolean caseSensitive,
in boolean backwards,
in boolean wrap,
in boolean wholeWord,
in boolean searchInFrames,
in boolean showDialog);
attribute [Replaceable] boolean offscreenBuffering;
attribute [Replaceable] long outerHeight;
attribute [Replaceable] long outerWidth;
attribute [Replaceable] long innerHeight;
attribute [Replaceable] long innerWidth;
attribute [Replaceable] long screenX;
attribute [Replaceable] long screenY;
attribute [Replaceable] long screenLeft;
attribute [Replaceable] long screenTop;
attribute [Replaceable] long scrollX;
attribute [Replaceable] long scrollY;
readonly attribute long pageXOffset;
readonly attribute long pageYOffset;
[RequiresAllArguments] void scrollBy(in long x, in long y);
[RequiresAllArguments] void scrollTo(in long x, in long y);
[RequiresAllArguments] void scroll(in long x, in long y);
[RequiresAllArguments] void moveBy(in float x, in float y); // FIXME: this should take longs not floats.
[RequiresAllArguments] void moveTo(in float x, in float y); // FIXME: this should take longs not floats.
[RequiresAllArguments] void resizeBy(in float x, in float y); // FIXME: this should take longs not floats.
[RequiresAllArguments] void resizeTo(in float width, in float height); // FIXME: this should take longs not floats.
readonly attribute [DoNotCheckDomainSecurity] boolean closed;
attribute [Replaceable, DoNotCheckDomainSecurityOnGet] 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
attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow self;
readonly attribute [DoNotCheckDomainSecurity, V8DisallowShadowing] DOMWindow window;
attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow frames;
attribute [Replaceable, DoNotCheckDomainSecurityOnGet, V8CustomSetter] DOMWindow opener;
attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow parent;
attribute [Replaceable, DoNotCheckDomainSecurityOnGet, V8DisallowShadowing, V8ReadOnly] DOMWindow top;
// DOM Level 2 AbstractView Interface
readonly attribute Document document;
// CSSOM View Module
readonly attribute Media media;
// DOM Level 2 Style Interface
CSSStyleDeclaration getComputedStyle(in Element element,
in DOMString pseudoElement);
// WebKit extensions
CSSRuleList getMatchedCSSRules(in Element element,
in DOMString pseudoElement,
in [Optional] boolean authorOnly);
attribute [Replaceable] double devicePixelRatio;
WebKitPoint webkitConvertPointFromPageToNode(in Node node, in WebKitPoint p);
WebKitPoint webkitConvertPointFromNodeToPage(in Node node, in WebKitPoint p);
#if defined(ENABLE_OFFLINE_WEB_APPLICATIONS) && ENABLE_OFFLINE_WEB_APPLICATIONS
readonly attribute DOMApplicationCache applicationCache;
#endif
#if defined(ENABLE_DATABASE) && ENABLE_DATABASE
[EnabledAtRuntime] Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize)
raises(DOMException);
#endif
#if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
readonly attribute [EnabledAtRuntime] Storage sessionStorage;
readonly attribute [EnabledAtRuntime] Storage localStorage;
#endif
#if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
readonly attribute [EnabledAtRuntime] NotificationCenter webkitNotifications;
#endif
#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
attribute [Replaceable] Console console;
// cross-document messaging
#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
[DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] Array messagePorts, in DOMString targetOrigin)
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.
[DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] MessagePort messagePort, in DOMString targetOrigin)
raises(DOMException);
#endif
// Timers
[Custom] long setTimeout(in TimeoutHandler handler, in long timeout);
// [Custom] long setTimeout(in TimeoutHandler handler, in long timeout, arguments...);
// [Custom] long setTimeout(in DOMString code, in long timeout);
void clearTimeout(in long handle);
[Custom] long setInterval(in TimeoutHandler handler, in long timeout);
// [Custom] long setInterval(in TimeoutHandler handler, in long timeout, arguments...);
// [Custom] long setInterval(in DOMString code, in long timeout);
void clearInterval(in long handle);
// Base64
[Custom] DOMString atob(in DOMString string)
raises(DOMException);
[Custom] DOMString btoa(in DOMString string)
raises(DOMException);
// Events
#if ENABLE_TOUCH_EVENTS
attribute EventListener ontouchstart;
attribute EventListener ontouchend;
attribute EventListener ontouchmove;
attribute EventListener ontouchcancel;
#endif
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 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 onformchange;
// attribute EventListener onforminput;
// attribute EventListener onpopstate;
// 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;
#if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
attribute EventListener onorientationchange;
#endif
// EventTarget interface
[Custom] void addEventListener(in DOMString type,
in EventListener listener,
in boolean useCapture);
[Custom] void removeEventListener(in DOMString type,
in EventListener listener,
in boolean useCapture);
boolean dispatchEvent(in Event evt)
raises(EventException);
[V8Custom=DOMWindowNOP] void captureEvents(/*in long eventFlags*/);
[V8Custom=DOMWindowNOP] 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;
attribute CSSRuleConstructor CSSRule;
attribute CSSCharsetRuleConstructor CSSCharsetRule;
attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
attribute CSSImportRuleConstructor CSSImportRule;
attribute CSSMediaRuleConstructor CSSMediaRule;
attribute CSSPageRuleConstructor CSSPageRule;
attribute CSSStyleRuleConstructor CSSStyleRule;
attribute CSSVariablesRuleConstructor CSSVariablesRule;
attribute CSSVariablesDeclarationConstructor CSSVariablesDeclaration;
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 DocumentFragmentConstructor DocumentFragment;
attribute DocumentConstructor Document;
attribute NodeConstructor Node;
attribute NodeListConstructor NodeList;
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;
attribute ProcessingInstructionConstructor ProcessingInstruction;
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 HTMLBlockquoteElementConstructor HTMLBlockquoteElement;
attribute HTMLBodyElementConstructor HTMLBodyElement;
attribute HTMLButtonElementConstructor HTMLButtonElement;
attribute HTMLCanvasElementConstructor HTMLCanvasElement;
attribute [Conditional=DATAGRID] HTMLDataGridElementConstructor HTMLDataGridElement;
attribute [Conditional=DATAGRID] HTMLDataGridCellElementConstructor HTMLDataGridCellElement;
attribute [Conditional=DATAGRID] HTMLDataGridColElementConstructor HTMLDataGridColElement;
attribute HTMLDListElementConstructor HTMLDListElement;
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 HTMLIsIndexElementConstructor HTMLIsIndexElement;
attribute HTMLLIElementConstructor HTMLLIElement;
attribute HTMLLabelElementConstructor HTMLLabelElement;
attribute HTMLLegendElementConstructor HTMLLegendElement;
attribute HTMLLinkElementConstructor HTMLLinkElement;
attribute HTMLMapElementConstructor HTMLMapElement;
attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
attribute HTMLMenuElementConstructor HTMLMenuElement;
attribute HTMLMetaElementConstructor HTMLMetaElement;
attribute HTMLModElementConstructor HTMLModElement;
attribute HTMLOListElementConstructor HTMLOListElement;
attribute HTMLObjectElementConstructor HTMLObjectElement;
attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
attribute HTMLOptionElementConstructor HTMLOptionElement;
attribute HTMLParagraphElementConstructor HTMLParagraphElement;
attribute HTMLParamElementConstructor HTMLParamElement;
attribute HTMLPreElementConstructor HTMLPreElement;
attribute HTMLQuoteElementConstructor HTMLQuoteElement;
attribute HTMLScriptElementConstructor HTMLScriptElement;
attribute HTMLSelectElementConstructor HTMLSelectElement;
attribute HTMLStyleElementConstructor HTMLStyleElement;
attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement;
attribute HTMLTableCellElementConstructor HTMLTableCellElement;
attribute HTMLTableColElementConstructor HTMLTableColElement;
attribute HTMLTableElementConstructor HTMLTableElement;
attribute HTMLTableRowElementConstructor HTMLTableRowElement;
attribute HTMLTableSectionElementConstructor HTMLTableSectionElement;
attribute HTMLTextAreaElementConstructor HTMLTextAreaElement;
attribute HTMLTitleElementConstructor HTMLTitleElement;
attribute HTMLUListElementConstructor HTMLUListElement;
attribute HTMLCollectionConstructor HTMLCollection;
attribute HTMLAllCollectionConstructor HTMLAllCollection;
attribute [CustomGetter] HTMLImageElementConstructor Image; // Usable with new operator
attribute [CustomGetter] HTMLOptionElementConstructor Option; // Usable with new operator
attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
attribute [Conditional=3D_CANVAS] CanvasRenderingContext3DConstructor CanvasRenderingContext3D;
attribute TextMetricsConstructor TextMetrics;
attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasArrayBufferConstructor CanvasArrayBuffer; // Usable with new operator
attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasByteArrayConstructor CanvasByteArray; // Usable with new operator
attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasUnsignedByteArrayConstructor CanvasUnsignedByteArray; // Usable with new operator
attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasShortArrayConstructor CanvasShortArray; // Usable with new operator
attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasUnsignedShortArrayConstructor CanvasUnsignedShortArray; // Usable with new operator
attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasIntArrayConstructor CanvasIntArray; // Usable with new operator
attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasUnsignedIntArrayConstructor CanvasUnsignedIntArray; // Usable with new operator
attribute [JSCCustomGetter,Conditional=3D_CANVAS] CanvasFloatArrayConstructor CanvasFloatArray; // Usable with new operator
attribute EventConstructor Event;
attribute BeforeLoadEventConstructor BeforeLoadEvent;
attribute KeyboardEventConstructor KeyboardEvent;
attribute MouseEventConstructor MouseEvent;
attribute MutationEventConstructor MutationEvent;
attribute OverflowEventConstructor OverflowEvent;
attribute PageTransitionEventConstructor PageTransitionEvent;
attribute ProgressEventConstructor ProgressEvent;
attribute TextEventConstructor TextEvent;
attribute UIEventConstructor UIEvent;
attribute WebKitAnimationEventConstructor WebKitAnimationEvent;
attribute WebKitTransitionEventConstructor WebKitTransitionEvent;
attribute WheelEventConstructor WheelEvent;
attribute MessageEventConstructor MessageEvent;
attribute EventExceptionConstructor EventException;
#if ENABLE_TOUCH_EVENTS
attribute TouchEventConstructor TouchEvent;
#endif
attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
attribute [JSCCustomGetter] WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
attribute [JSCCustomGetter] WebKitPointConstructor WebKitPoint; // Usable with new the operator
attribute ClipboardConstructor Clipboard;
attribute FileConstructor File;
attribute FileListConstructor FileList;
attribute NodeFilterConstructor NodeFilter;
attribute RangeConstructor Range;
attribute RangeExceptionConstructor RangeException;
#if ENABLE_EVENTSOURCE
attribute [JSCCustomGetter] EventSourceConstructor EventSource; // Usable with new the operator
#endif
// 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 [JSCCustomGetter] XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
attribute [JSCCustomGetter,Conditional=XSLT] XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
#if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
attribute MessagePortConstructor MessagePort;
attribute [JSCCustomGetter] MessageChannelConstructor MessageChannel; // Usable with the new operator
#endif
#if defined(ENABLE_WORKERS) && ENABLE_WORKERS
attribute [JSCCustomGetter] WorkerConstructor Worker; // Usable with the new operator
#endif
#if defined(ENABLE_SHARED_WORKERS) && ENABLE_SHARED_WORKERS
attribute [JSCCustomGetter, EnabledAtRuntime] SharedWorkerConstructor SharedWorker; // Usable with the new operator
#endif
#if defined(ENABLE_WEB_SOCKETS) && ENABLE_WEB_SOCKETS
attribute [JSCCustomGetter,EnabledAtRuntime] WebSocketConstructor WebSocket; // Usable with the new operator
#endif
attribute PluginConstructor Plugin;
attribute PluginArrayConstructor PluginArray;
attribute MimeTypeConstructor MimeType;
attribute MimeTypeArrayConstructor MimeTypeArray;
attribute ClientRectConstructor ClientRect;
attribute ClientRectListConstructor ClientRectList;
#if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
attribute StorageConstructor Storage;
attribute StorageEventConstructor StorageEvent;
#endif
attribute [CustomGetter, Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor Audio; // Usable with the new operator
attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor HTMLAudioElement;
attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLMediaElementConstructor HTMLMediaElement;
attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLVideoElementConstructor HTMLVideoElement;
attribute [Conditional=VIDEO, EnabledAtRuntime] MediaErrorConstructor MediaError;
#if defined(ENABLE_XPATH) && ENABLE_XPATH
attribute XPathEvaluatorConstructor XPathEvaluator;
attribute XPathResultConstructor XPathResult;
attribute XPathExceptionConstructor XPathException;
#endif
#if defined(ENABLE_SVG) && ENABLE_SVG
attribute SVGAngleConstructor SVGAngle;
attribute SVGColorConstructor SVGColor;
// attribute SVGCSSRuleConstructor SVGCSSRule;
attribute SVGExceptionConstructor SVGException;
attribute SVGGradientElementConstructor SVGGradientElement;
attribute SVGLengthConstructor SVGLength;
attribute SVGMarkerElementConstructor SVGMarkerElement;
attribute SVGPaintConstructor SVGPaint;
attribute SVGPathSegConstructor SVGPathSeg;
attribute SVGPreserveAspectRatioConstructor SVGPreserveAspectRatio;
attribute SVGRenderingIntentConstructor SVGRenderingIntent;
attribute SVGTextContentElementConstructor SVGTextContentElement;
attribute SVGTextPathElementConstructor SVGTextPathElement;
attribute SVGTransformConstructor SVGTransform;
attribute SVGUnitTypesConstructor SVGUnitTypes;
// attribute SVGZoomAndPanConstructor SVGZoomAndPan;
#if defined(ENABLE_FILTERS) && ENABLE_FILTERS
attribute SVGComponentTransferFunctionElementConstructor SVGComponentTransferFunctionElement;
attribute SVGFEBlendElementConstructor SVGFEBlendElement;
attribute SVGFEColorMatrixElementConstructor SVGFEColorMatrixElement;
attribute SVGFECompositeElementConstructor SVGFECompositeElement;
// attribute SVGFEConvolveMatrixElementConstructor SVGFEConvolveMatrixElement;
attribute SVGFEDisplacementMapElementConstructor SVGFEDisplacementMapElement;
attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement;
attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement;
#endif
#endif
#endif // defined(LANGUAGE_JAVASCRIPT)
#if defined(V8_BINDING) && V8_BINDING
// window.toString() requires special handling in V8
[V8DoNotCheckSignature, DoNotCheckDomainSecurity, Custom, DontEnum] DOMString toString();
#endif // defined(V8_BINDING)
};
}