blob: b1797b900eb6dd59df0f613780d76b8a5976e8f0 [file] [log] [blame]
/*
* Copyright (C) 2006, 2007, 2008 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,
GenerateNativeConverter,
LegacyParent=JSDOMWindowBase
] DOMWindow {
// DOM Level 0
readonly attribute Screen screen;
readonly attribute [DoNotCheckDomainSecurity, CustomGetter] 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, Custom] Location location;
DOMSelection getSelection();
readonly attribute [CheckNodeSecurity] Element frameElement;
[DoNotCheckDomainSecurity] void focus();
[DoNotCheckDomainSecurity] void blur();
[DoNotCheckDomainSecurity] void close();
void print();
void stop();
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;
#if defined(ANDROID_ORIENTATION_SUPPORT)
attribute [Replaceable] long orientation;
#endif
[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)
// 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] DOMWindow window;
attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow frames;
attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow opener;
attribute [Replaceable, DoNotCheckDomainSecurity] DOMWindow parent;
attribute [Replaceable, DoNotCheckDomainSecurity] DOMWindow top;
// DOM Level 2 AbstractView Interface
readonly attribute Document document;
// 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;
#if ENABLE_OFFLINE_WEB_APPLICATIONS
readonly attribute DOMApplicationCache applicationCache;
#endif
#if ENABLE_DATABASE
Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize)
raises(DOMException);
#endif
#if ENABLE_DOM_STORAGE
readonly attribute Storage sessionStorage;
readonly attribute Storage localStorage;
#endif
attribute [Replaceable] Console console;
// cross-document messaging
[DoNotCheckDomainSecurity, Custom] void postMessage(in DOMString message, in [Optional] MessagePort messagePort, in DOMString targetOrigin)
raises(DOMException);
// Timers
[Custom] long setTimeout(in TimeoutHandler handler, in long timeout);
// [Custom] long setTimeout(in DOMString code, in long timeout);
[Custom] void clearTimeout(in long handle);
[Custom] long setInterval(in TimeoutHandler handler, in long timeout);
// [Custom] long setInterval(in DOMString code, in long timeout);
[Custom] void clearInterval(in long handle);
// Base64
[Custom] DOMString atob(in DOMString string)
raises(DOMException);
[Custom] DOMString btoa(in DOMString string)
raises(DOMException);
// Events
attribute [ProtectedListener] EventListener onabort;
attribute [ProtectedListener] EventListener onblur;
attribute [ProtectedListener] EventListener onchange;
attribute [ProtectedListener] EventListener onclick;
attribute [ProtectedListener] EventListener ondblclick;
attribute [ProtectedListener] EventListener onerror;
attribute [ProtectedListener] EventListener onfocus;
attribute [ProtectedListener] EventListener onkeydown;
attribute [ProtectedListener] EventListener onkeypress;
attribute [ProtectedListener] EventListener onkeyup;
attribute [ProtectedListener] EventListener onload;
attribute [ProtectedListener] EventListener onmousedown;
attribute [ProtectedListener] EventListener onmousemove;
attribute [ProtectedListener] EventListener onmouseout;
attribute [ProtectedListener] EventListener onmouseover;
attribute [ProtectedListener] EventListener onmouseup;
attribute [ProtectedListener] EventListener onmousewheel;
attribute [ProtectedListener] EventListener onreset;
attribute [ProtectedListener] EventListener onresize;
attribute [ProtectedListener] EventListener onscroll;
attribute [ProtectedListener] EventListener onsearch;
attribute [ProtectedListener] EventListener onselect;
attribute [ProtectedListener] EventListener onsubmit;
attribute [ProtectedListener] EventListener onunload;
attribute [ProtectedListener] EventListener onbeforeunload;
attribute [ProtectedListener] EventListener onwebkitanimationstart;
attribute [ProtectedListener] EventListener onwebkitanimationiteration;
attribute [ProtectedListener] EventListener onwebkitanimationend;
attribute [ProtectedListener] EventListener onwebkittransitionend;
#if ENABLE_TOUCH_EVENTS
attribute [ProtectedListener] EventListener ontouchstart;
attribute [ProtectedListener] EventListener ontouchend;
attribute [ProtectedListener] EventListener ontouchmove;
attribute [ProtectedListener] EventListener ontouchcancel;
#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);
// FIXME: Implement dispatchEvent
#if defined(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 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 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 CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
attribute TextMetricsConstructor TextMetrics;
attribute EventConstructor Event;
attribute KeyboardEventConstructor KeyboardEvent;
attribute MouseEventConstructor MouseEvent;
attribute MutationEventConstructor MutationEvent;
attribute OverflowEventConstructor OverflowEvent;
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;
#if ENABLE_CHANNEL_MESSAGING
attribute MessagePortConstructor MessagePort;
#endif
attribute ClipboardConstructor Clipboard;
attribute FileConstructor File;
attribute FileListConstructor FileList;
attribute NodeFilterConstructor NodeFilter;
attribute RangeConstructor Range;
attribute RangeExceptionConstructor RangeException;
// 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 XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
attribute PluginConstructor Plugin;
attribute PluginArrayConstructor PluginArray;
attribute MimeTypeConstructor MimeType;
attribute MimeTypeArrayConstructor MimeTypeArray;
#if ENABLE_DOM_STORAGE
attribute StorageConstructor Storage;
attribute StorageEventConstructor StorageEvent;
#endif
#if ENABLE_VIDEO
attribute HTMLAudioElementConstructor HTMLAudioElement;
attribute HTMLMediaElementConstructor HTMLMediaElement;
attribute HTMLVideoElementConstructor HTMLVideoElement;
attribute MediaErrorConstructor MediaError;
#endif
#if ENABLE_XPATH
attribute XPathEvaluatorConstructor XPathEvaluator;
attribute XPathResultConstructor XPathResult;
attribute XPathExceptionConstructor XPathException;
#endif
#if 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;
#endif
#if ENABLE_SVG_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 // defined(LANGUAGE_JAVASCRIPT)
};
}