c8d372b45b6b2be29dba08aeb0924595b01d3095
[WebKit-https.git] / WebCore / page / DOMWindow.idl
1 /*
2  * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
24  */
25
26 module window {
27
28     interface [
29         CheckDomainSecurity,
30         CustomNativeConverter,
31         CustomDeleteProperty,
32         CustomGetOwnPropertySlot,
33         CustomGetPropertyNames,
34         CustomMarkFunction,
35         CustomPutFunction,
36         DoNotCache,
37         GenerateNativeConverter,
38         LegacyParent=JSDOMWindowBase
39     ] DOMWindow {
40         // DOM Level 0
41         readonly attribute Screen screen;
42         readonly attribute [DoNotCheckDomainSecurity] History history;
43         attribute [Replaceable] BarInfo locationbar;
44         attribute [Replaceable] BarInfo menubar;
45         attribute [Replaceable] BarInfo personalbar;
46         attribute [Replaceable] BarInfo scrollbars;
47         attribute [Replaceable] BarInfo statusbar;
48         attribute [Replaceable] BarInfo toolbar;
49         attribute [Replaceable] Navigator navigator;
50         attribute [Replaceable] Navigator clientInformation;
51         attribute [DoNotCheckDomainSecurity, CustomSetter] Location location;
52
53         DOMSelection getSelection();
54
55         readonly attribute [CheckNodeSecurity] Element frameElement;
56
57         [DoNotCheckDomainSecurity] void focus();
58         [DoNotCheckDomainSecurity] void blur();
59         [DoNotCheckDomainSecurity] void close();
60
61         void print();
62         void stop();
63
64         void alert(in DOMString message);
65         boolean confirm(in DOMString message);
66         [ConvertNullStringTo=Null] DOMString prompt(in DOMString message,
67                                                     in [ConvertUndefinedOrNullToNullString] DOMString defaultValue);
68
69         boolean find(in DOMString string,
70                      in boolean caseSensitive,
71                      in boolean backwards,
72                      in boolean wrap,
73                      in boolean wholeWord,
74                      in boolean searchInFrames,
75                      in boolean showDialog);
76
77         attribute [Replaceable] boolean offscreenBuffering;
78
79         attribute [Replaceable] long outerHeight;
80         attribute [Replaceable] long outerWidth;
81         attribute [Replaceable] long innerHeight;
82         attribute [Replaceable] long innerWidth;
83         attribute [Replaceable] long screenX;
84         attribute [Replaceable] long screenY;
85         attribute [Replaceable] long screenLeft;
86         attribute [Replaceable] long screenTop;
87         attribute [Replaceable] long scrollX;
88         attribute [Replaceable] long scrollY;
89         readonly attribute long pageXOffset;
90         readonly attribute long pageYOffset;
91
92         [RequiresAllArguments] void scrollBy(in long x, in long y);
93         [RequiresAllArguments] void scrollTo(in long x, in long y);
94         [RequiresAllArguments] void scroll(in long x, in long y);
95         [RequiresAllArguments] void moveBy(in float x, in float y); // FIXME: this should take longs not floats.
96         [RequiresAllArguments] void moveTo(in float x, in float y); // FIXME: this should take longs not floats.
97         [RequiresAllArguments] void resizeBy(in float x, in float y); // FIXME: this should take longs not floats.
98         [RequiresAllArguments] void resizeTo(in float width, in float height); // FIXME: this should take longs not floats.
99
100         readonly attribute [DoNotCheckDomainSecurity] boolean closed;
101
102         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] unsigned long length;
103
104         attribute DOMString name;
105
106         attribute DOMString status;
107         attribute DOMString defaultStatus;
108 #if defined(LANGUAGE_JAVASCRIPT)
109         // This attribute is an alias of defaultStatus and is necessary for legacy uses.
110         attribute DOMString defaultstatus;
111 #endif
112
113         // Self referential attributes
114         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow self;
115         readonly attribute [DoNotCheckDomainSecurity] DOMWindow window;
116         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow frames;
117
118         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow opener;
119         attribute [Replaceable, DoNotCheckDomainSecurity] DOMWindow parent;
120         attribute [Replaceable, DoNotCheckDomainSecurity] DOMWindow top;
121
122         // DOM Level 2 AbstractView Interface
123         readonly attribute Document document;
124
125         // DOM Level 2 Style Interface
126         CSSStyleDeclaration getComputedStyle(in Element element,
127                                              in DOMString pseudoElement);
128
129         // WebKit extensions
130         CSSRuleList getMatchedCSSRules(in Element element,
131                                        in DOMString pseudoElement,
132                                        in [Optional] boolean authorOnly);
133         attribute [Replaceable] double devicePixelRatio;
134
135 #if defined(ENABLE_DATABASE)
136         Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize)
137             raises(DOMException);
138 #endif
139 #if defined(ENABLE_DOM_STORAGE)
140         readonly attribute Storage sessionStorage;
141         readonly attribute Storage localStorage;
142 #endif
143
144                  attribute [Replaceable] Console console;
145
146 #if defined(ENABLE_CROSS_DOCUMENT_MESSAGING)
147         // cross-document messaging
148         [DoNotCheckDomainSecurity, Custom] void postMessage(in DOMString message);
149 #endif
150
151 #if defined(LANGUAGE_JAVASCRIPT)
152         // Global constructors
153         attribute StyleSheetConstructor StyleSheet;
154         attribute CSSStyleSheetConstructor CSSStyleSheet;
155
156         attribute CSSValueConstructor CSSValue;
157         attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
158         attribute CSSValueListConstructor CSSValueList;
159
160         attribute CSSRuleConstructor CSSRule;
161         attribute CSSCharsetRuleConstructor CSSCharsetRule;
162         attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
163         attribute CSSImportRuleConstructor CSSImportRule;
164         attribute CSSMediaRuleConstructor CSSMediaRule;
165         attribute CSSPageRuleConstructor CSSPageRule;
166         attribute CSSStyleRuleConstructor CSSStyleRule;
167
168         attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
169         attribute MediaListConstructor MediaList;
170         attribute CounterConstructor Counter;
171         attribute CSSRuleListConstructor CSSRuleList;
172         attribute RectConstructor Rect;
173         attribute StyleSheetListConstructor StyleSheetList;
174
175         // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
176         attribute DOMCoreExceptionConstructor DOMException;
177 //        attribute DOMStringListConstructor DOMStringList;
178 //        attribute NameListConstructor NameList;
179 //        attribute DOMImplementationListConstructor DOMImplementationList;
180 //        attribute DOMImplementationSourceConstructor DOMImplementationSource;
181         attribute DOMImplementationConstructor DOMImplementation;
182         attribute DocumentFragmentConstructor DocumentFragment;
183         attribute DocumentConstructor Document;
184         attribute NodeConstructor Node;
185         attribute NodeListConstructor NodeList;
186         attribute NamedNodeMapConstructor NamedNodeMap;
187         attribute CharacterDataConstructor CharacterData;
188         attribute AttrConstructor Attr;
189         attribute ElementConstructor Element;
190         attribute TextConstructor Text;
191         attribute CommentConstructor Comment;
192 //        attribute TypeInfoConstructor TypeInfo;
193 //        attribute UserDataHandlerConstructor UserDataHandler;
194 //        attribute DOMErrorConstructor DOMError;
195 //        attribute DOMErrorHandlerConstructor DOMErrorHandler
196 //        attribute DOMLocatorConstructor DOMLocator;
197 //        attribute DOMConfigurationConstructor DOMConfiguration;
198         attribute CDATASectionConstructor CDATASection;
199         attribute DocumentTypeConstructor DocumentType;
200         attribute NotationConstructor Notation;
201         attribute EntityConstructor Entity;
202         attribute EntityReferenceConstructor EntityReference;
203         attribute ProcessingInstructionConstructor ProcessingInstruction;
204
205         attribute HTMLDocumentConstructor HTMLDocument;
206
207         attribute HTMLElementConstructor HTMLElement;
208         attribute HTMLAnchorElementConstructor HTMLAnchorElement;
209         attribute HTMLAppletElementConstructor HTMLAppletElement;
210         attribute HTMLAreaElementConstructor HTMLAreaElement;
211         attribute HTMLBRElementConstructor HTMLBRElement;
212         attribute HTMLBaseElementConstructor HTMLBaseElement;
213         attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
214         attribute HTMLBlockquoteElementConstructor HTMLBlockquoteElement;
215         attribute HTMLBodyElementConstructor HTMLBodyElement;
216         attribute HTMLButtonElementConstructor HTMLButtonElement;
217         attribute HTMLCanvasElementConstructor HTMLCanvasElement;
218         attribute HTMLDListElementConstructor HTMLDListElement;
219         attribute HTMLDirectoryElementConstructor HTMLDirectoryElement;
220         attribute HTMLDivElementConstructor HTMLDivElement;
221         attribute HTMLEmbedElementConstructor HTMLEmbedElement;
222         attribute HTMLFieldSetElementConstructor HTMLFieldSetElement;
223         attribute HTMLFontElementConstructor HTMLFontElement;
224         attribute HTMLFormElementConstructor HTMLFormElement;
225         attribute HTMLFrameElementConstructor HTMLFrameElement;
226         attribute HTMLFrameSetElementConstructor HTMLFrameSetElement;
227         attribute HTMLHRElementConstructor HTMLHRElement;
228         attribute HTMLHeadElementConstructor HTMLHeadElement;
229         attribute HTMLHeadingElementConstructor HTMLHeadingElement;
230         attribute HTMLHtmlElementConstructor HTMLHtmlElement;
231         attribute HTMLIFrameElementConstructor HTMLIFrameElement;
232         attribute HTMLImageElementConstructor HTMLImageElement;
233         attribute HTMLInputElementConstructor HTMLInputElement;
234         attribute HTMLIsIndexElementConstructor HTMLIsIndexElement;
235         attribute HTMLLIElementConstructor HTMLLIElement;
236         attribute HTMLLabelElementConstructor HTMLLabelElement;
237         attribute HTMLLegendElementConstructor HTMLLegendElement;
238         attribute HTMLLinkElementConstructor HTMLLinkElement;
239         attribute HTMLMapElementConstructor HTMLMapElement;
240         attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
241         attribute HTMLMenuElementConstructor HTMLMenuElement;
242         attribute HTMLMetaElementConstructor HTMLMetaElement;
243         attribute HTMLModElementConstructor HTMLModElement;
244         attribute HTMLOListElementConstructor HTMLOListElement;
245         attribute HTMLObjectElementConstructor HTMLObjectElement;
246         attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
247         attribute HTMLOptionElementConstructor HTMLOptionElement;
248         attribute HTMLParagraphElementConstructor HTMLParagraphElement;
249         attribute HTMLParamElementConstructor HTMLParamElement;
250         attribute HTMLPreElementConstructor HTMLPreElement;
251         attribute HTMLQuoteElementConstructor HTMLQuoteElement;
252         attribute HTMLScriptElementConstructor HTMLScriptElement;
253         attribute HTMLSelectElementConstructor HTMLSelectElement;
254         attribute HTMLStyleElementConstructor HTMLStyleElement;
255         attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement;
256         attribute HTMLTableCellElementConstructor HTMLTableCellElement;
257         attribute HTMLTableColElementConstructor HTMLTableColElement;
258         attribute HTMLTableElementConstructor HTMLTableElement;
259         attribute HTMLTableRowElementConstructor HTMLTableRowElement;
260         attribute HTMLTableSectionElementConstructor HTMLTableSectionElement;
261         attribute HTMLTextAreaElementConstructor HTMLTextAreaElement;
262         attribute HTMLTitleElementConstructor HTMLTitleElement;
263         attribute HTMLUListElementConstructor HTMLUListElement;
264
265         attribute HTMLCollectionConstructor HTMLCollection;
266
267         attribute EventConstructor Event;
268         attribute KeyboardEventConstructor KeyboardEvent;
269         attribute MouseEventConstructor MouseEvent;
270         attribute MutationEventConstructor MutationEvent;
271         attribute OverflowEventConstructor OverflowEvent;
272         attribute ProgressEventConstructor ProgressEvent;
273         attribute TextEventConstructor TextEvent;
274         attribute UIEventConstructor UIEvent;
275         attribute WheelEventConstructor WheelEvent;
276         attribute EventExceptionConstructor EventException;
277
278         attribute ClipboardConstructor Clipboard;
279
280         attribute NodeFilterConstructor NodeFilter;
281         attribute RangeConstructor Range;
282         attribute RangeExceptionConstructor RangeException;
283
284         // Mozilla has a separate XMLDocument object for XML documents. 
285         // We just use Document for this.
286         attribute DocumentConstructor XMLDocument;
287
288         attribute DOMParserConstructor DOMParser;
289         attribute XMLSerializerConstructor XMLSerializer;
290
291         attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
292
293 #if defined(ENABLE_CROSS_DOCUMENT_MESSAGING)
294         attribute MessageEventConstructor MessageEvent;
295 #endif
296
297 #if defined(ENABLE_DOM_STORAGE)
298         attribute StorageConstructor Storage;
299         attribute StorageEventConstructor StorageEvent;
300 #endif
301
302 #if defined(ENABLE_VIDEO)
303         attribute HTMLAudioElementConstructor HTMLAudioElement;
304         attribute HTMLMediaElementConstructor HTMLMediaElement;
305         attribute HTMLVideoElementConstructor HTMLVideoElement;
306         attribute MediaErrorConstructor MediaError;
307 #endif
308
309 #if defined(ENABLE_XPATH)
310         attribute XPathEvaluatorConstructor XPathEvaluator;
311         attribute XPathResultConstructor XPathResult;
312         attribute XPathExceptionConstructor XPathException;
313 #endif
314
315 #if defined(ENABLE_SVG)
316         attribute SVGAngleConstructor SVGAngle;
317         attribute SVGColorConstructor SVGColor;
318 //      attribute SVGCSSRuleConstructor SVGCSSRule;
319         attribute SVGExceptionConstructor SVGException;
320         attribute SVGGradientElementConstructor SVGGradientElement;
321         attribute SVGLengthConstructor SVGLength;
322         attribute SVGMarkerElementConstructor SVGMarkerElement;
323         attribute SVGPaintConstructor SVGPaint;
324         attribute SVGPathSegConstructor SVGPathSeg;
325         attribute SVGPreserveAspectRatioConstructor SVGPreserveAspectRatio;
326         attribute SVGRenderingIntentConstructor SVGRenderingIntent;
327         attribute SVGTextContentElementConstructor SVGTextContentElement;
328         attribute SVGTextPathElementConstructor SVGTextPathElement;
329         attribute SVGTransformConstructor SVGTransform;
330         attribute SVGUnitTypesConstructor SVGUnitTypes;
331 //      attribute SVGZoomAndPanConstructor SVGZoomAndPan;
332 #endif
333
334 #if defined(ENABLED_SVG_FILTERS)
335         attribute SVGComponentTransferFunctionElementConstructor SVGComponentTransferFunctionElement;
336         attribute SVGFEBlendElementConstructor SVGFEBlendElement;
337         attribute SVGFEColorMatrixElementConstructor SVGFEColorMatrixElement;
338         attribute SVGFECompositeElementConstructor SVGFECompositeElement;
339 //      attribute SVGFEConvolveMatrixElementConstructor SVGFEConvolveMatrixElement;
340         attribute SVGFEDisplacementMapElementConstructor SVGFEDisplacementMapElement;
341 //      attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement;
342         attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement;
343 #endif
344
345 #endif // defined(LANGUAGE_JAVASCRIPT)
346     };
347
348 }