2008-04-17 Anders Carlsson <andersca@apple.com>
[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_OFFLINE_WEB_APPLICATIONS)
136         readonly attribute DOMApplicationCache applicationCache;
137 #endif    
138 #if defined(ENABLE_DATABASE)
139         Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize)
140             raises(DOMException);
141 #endif
142 #if defined(ENABLE_DOM_STORAGE)
143         readonly attribute Storage sessionStorage;
144         readonly attribute Storage localStorage;
145 #endif
146
147                  attribute [Replaceable] Console console;
148
149 #if defined(ENABLE_CROSS_DOCUMENT_MESSAGING)
150         // cross-document messaging
151         [DoNotCheckDomainSecurity, Custom] void postMessage(in DOMString message);
152 #endif
153
154 #if defined(LANGUAGE_JAVASCRIPT)
155         // Global constructors
156         attribute StyleSheetConstructor StyleSheet;
157         attribute CSSStyleSheetConstructor CSSStyleSheet;
158
159         attribute CSSValueConstructor CSSValue;
160         attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
161         attribute CSSValueListConstructor CSSValueList;
162
163         attribute CSSRuleConstructor CSSRule;
164         attribute CSSCharsetRuleConstructor CSSCharsetRule;
165         attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
166         attribute CSSImportRuleConstructor CSSImportRule;
167         attribute CSSMediaRuleConstructor CSSMediaRule;
168         attribute CSSPageRuleConstructor CSSPageRule;
169         attribute CSSStyleRuleConstructor CSSStyleRule;
170
171         attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
172         attribute MediaListConstructor MediaList;
173         attribute CounterConstructor Counter;
174         attribute CSSRuleListConstructor CSSRuleList;
175         attribute RectConstructor Rect;
176         attribute StyleSheetListConstructor StyleSheetList;
177
178         // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
179         attribute DOMCoreExceptionConstructor DOMException;
180 //        attribute DOMStringListConstructor DOMStringList;
181 //        attribute NameListConstructor NameList;
182 //        attribute DOMImplementationListConstructor DOMImplementationList;
183 //        attribute DOMImplementationSourceConstructor DOMImplementationSource;
184         attribute DOMImplementationConstructor DOMImplementation;
185         attribute DocumentFragmentConstructor DocumentFragment;
186         attribute DocumentConstructor Document;
187         attribute NodeConstructor Node;
188         attribute NodeListConstructor NodeList;
189         attribute NamedNodeMapConstructor NamedNodeMap;
190         attribute CharacterDataConstructor CharacterData;
191         attribute AttrConstructor Attr;
192         attribute ElementConstructor Element;
193         attribute TextConstructor Text;
194         attribute CommentConstructor Comment;
195 //        attribute TypeInfoConstructor TypeInfo;
196 //        attribute UserDataHandlerConstructor UserDataHandler;
197 //        attribute DOMErrorConstructor DOMError;
198 //        attribute DOMErrorHandlerConstructor DOMErrorHandler
199 //        attribute DOMLocatorConstructor DOMLocator;
200 //        attribute DOMConfigurationConstructor DOMConfiguration;
201         attribute CDATASectionConstructor CDATASection;
202         attribute DocumentTypeConstructor DocumentType;
203         attribute NotationConstructor Notation;
204         attribute EntityConstructor Entity;
205         attribute EntityReferenceConstructor EntityReference;
206         attribute ProcessingInstructionConstructor ProcessingInstruction;
207
208         attribute HTMLDocumentConstructor HTMLDocument;
209
210         attribute HTMLElementConstructor HTMLElement;
211         attribute HTMLAnchorElementConstructor HTMLAnchorElement;
212         attribute HTMLAppletElementConstructor HTMLAppletElement;
213         attribute HTMLAreaElementConstructor HTMLAreaElement;
214         attribute HTMLBRElementConstructor HTMLBRElement;
215         attribute HTMLBaseElementConstructor HTMLBaseElement;
216         attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
217         attribute HTMLBlockquoteElementConstructor HTMLBlockquoteElement;
218         attribute HTMLBodyElementConstructor HTMLBodyElement;
219         attribute HTMLButtonElementConstructor HTMLButtonElement;
220         attribute HTMLCanvasElementConstructor HTMLCanvasElement;
221         attribute HTMLDListElementConstructor HTMLDListElement;
222         attribute HTMLDirectoryElementConstructor HTMLDirectoryElement;
223         attribute HTMLDivElementConstructor HTMLDivElement;
224         attribute HTMLEmbedElementConstructor HTMLEmbedElement;
225         attribute HTMLFieldSetElementConstructor HTMLFieldSetElement;
226         attribute HTMLFontElementConstructor HTMLFontElement;
227         attribute HTMLFormElementConstructor HTMLFormElement;
228         attribute HTMLFrameElementConstructor HTMLFrameElement;
229         attribute HTMLFrameSetElementConstructor HTMLFrameSetElement;
230         attribute HTMLHRElementConstructor HTMLHRElement;
231         attribute HTMLHeadElementConstructor HTMLHeadElement;
232         attribute HTMLHeadingElementConstructor HTMLHeadingElement;
233         attribute HTMLHtmlElementConstructor HTMLHtmlElement;
234         attribute HTMLIFrameElementConstructor HTMLIFrameElement;
235         attribute HTMLImageElementConstructor HTMLImageElement;
236         attribute HTMLInputElementConstructor HTMLInputElement;
237         attribute HTMLIsIndexElementConstructor HTMLIsIndexElement;
238         attribute HTMLLIElementConstructor HTMLLIElement;
239         attribute HTMLLabelElementConstructor HTMLLabelElement;
240         attribute HTMLLegendElementConstructor HTMLLegendElement;
241         attribute HTMLLinkElementConstructor HTMLLinkElement;
242         attribute HTMLMapElementConstructor HTMLMapElement;
243         attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
244         attribute HTMLMenuElementConstructor HTMLMenuElement;
245         attribute HTMLMetaElementConstructor HTMLMetaElement;
246         attribute HTMLModElementConstructor HTMLModElement;
247         attribute HTMLOListElementConstructor HTMLOListElement;
248         attribute HTMLObjectElementConstructor HTMLObjectElement;
249         attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
250         attribute HTMLOptionElementConstructor HTMLOptionElement;
251         attribute HTMLParagraphElementConstructor HTMLParagraphElement;
252         attribute HTMLParamElementConstructor HTMLParamElement;
253         attribute HTMLPreElementConstructor HTMLPreElement;
254         attribute HTMLQuoteElementConstructor HTMLQuoteElement;
255         attribute HTMLScriptElementConstructor HTMLScriptElement;
256         attribute HTMLSelectElementConstructor HTMLSelectElement;
257         attribute HTMLStyleElementConstructor HTMLStyleElement;
258         attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement;
259         attribute HTMLTableCellElementConstructor HTMLTableCellElement;
260         attribute HTMLTableColElementConstructor HTMLTableColElement;
261         attribute HTMLTableElementConstructor HTMLTableElement;
262         attribute HTMLTableRowElementConstructor HTMLTableRowElement;
263         attribute HTMLTableSectionElementConstructor HTMLTableSectionElement;
264         attribute HTMLTextAreaElementConstructor HTMLTextAreaElement;
265         attribute HTMLTitleElementConstructor HTMLTitleElement;
266         attribute HTMLUListElementConstructor HTMLUListElement;
267
268         attribute HTMLCollectionConstructor HTMLCollection;
269
270         attribute EventConstructor Event;
271         attribute KeyboardEventConstructor KeyboardEvent;
272         attribute MouseEventConstructor MouseEvent;
273         attribute MutationEventConstructor MutationEvent;
274         attribute OverflowEventConstructor OverflowEvent;
275         attribute ProgressEventConstructor ProgressEvent;
276         attribute TextEventConstructor TextEvent;
277         attribute UIEventConstructor UIEvent;
278         attribute WheelEventConstructor WheelEvent;
279         attribute EventExceptionConstructor EventException;
280
281         attribute ClipboardConstructor Clipboard;
282
283         attribute NodeFilterConstructor NodeFilter;
284         attribute RangeConstructor Range;
285         attribute RangeExceptionConstructor RangeException;
286
287         // Mozilla has a separate XMLDocument object for XML documents. 
288         // We just use Document for this.
289         attribute DocumentConstructor XMLDocument;
290
291         attribute DOMParserConstructor DOMParser;
292         attribute XMLSerializerConstructor XMLSerializer;
293
294         attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
295
296 #if defined(ENABLE_CROSS_DOCUMENT_MESSAGING)
297         attribute MessageEventConstructor MessageEvent;
298 #endif
299
300 #if defined(ENABLE_DOM_STORAGE)
301         attribute StorageConstructor Storage;
302         attribute StorageEventConstructor StorageEvent;
303 #endif
304
305 #if defined(ENABLE_VIDEO)
306         attribute HTMLAudioElementConstructor HTMLAudioElement;
307         attribute HTMLMediaElementConstructor HTMLMediaElement;
308         attribute HTMLVideoElementConstructor HTMLVideoElement;
309         attribute MediaErrorConstructor MediaError;
310 #endif
311
312 #if defined(ENABLE_XPATH)
313         attribute XPathEvaluatorConstructor XPathEvaluator;
314         attribute XPathResultConstructor XPathResult;
315         attribute XPathExceptionConstructor XPathException;
316 #endif
317
318 #if defined(ENABLE_SVG)
319         attribute SVGAngleConstructor SVGAngle;
320         attribute SVGColorConstructor SVGColor;
321 //      attribute SVGCSSRuleConstructor SVGCSSRule;
322         attribute SVGExceptionConstructor SVGException;
323         attribute SVGGradientElementConstructor SVGGradientElement;
324         attribute SVGLengthConstructor SVGLength;
325         attribute SVGMarkerElementConstructor SVGMarkerElement;
326         attribute SVGPaintConstructor SVGPaint;
327         attribute SVGPathSegConstructor SVGPathSeg;
328         attribute SVGPreserveAspectRatioConstructor SVGPreserveAspectRatio;
329         attribute SVGRenderingIntentConstructor SVGRenderingIntent;
330         attribute SVGTextContentElementConstructor SVGTextContentElement;
331         attribute SVGTextPathElementConstructor SVGTextPathElement;
332         attribute SVGTransformConstructor SVGTransform;
333         attribute SVGUnitTypesConstructor SVGUnitTypes;
334 //      attribute SVGZoomAndPanConstructor SVGZoomAndPan;
335 #endif
336
337 #if defined(ENABLED_SVG_FILTERS)
338         attribute SVGComponentTransferFunctionElementConstructor SVGComponentTransferFunctionElement;
339         attribute SVGFEBlendElementConstructor SVGFEBlendElement;
340         attribute SVGFEColorMatrixElementConstructor SVGFEColorMatrixElement;
341         attribute SVGFECompositeElementConstructor SVGFECompositeElement;
342 //      attribute SVGFEConvolveMatrixElementConstructor SVGFEConvolveMatrixElement;
343         attribute SVGFEDisplacementMapElementConstructor SVGFEDisplacementMapElement;
344 //      attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement;
345         attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement;
346 #endif
347
348 #endif // defined(LANGUAGE_JAVASCRIPT)
349     };
350
351 }