WebCore:
[WebKit-https.git] / WebCore / page / DOMWindow.idl
1 /*
2  * Copyright (C) 2006, 2007 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 [LegacyParent=KJS::Window, DoNotCache, CheckDomainSecurity, GenerateNativeConverter, CustomGetOwnPropertySlot, CustomPutFunction] DOMWindow {
29         // DOM Level 0
30         readonly attribute Screen screen;
31         readonly attribute [DoNotCheckDomainSecurity] History history;
32         readonly attribute BarInfo locationbar;
33         readonly attribute BarInfo menubar;
34         readonly attribute BarInfo personalbar;
35         readonly attribute BarInfo scrollbars;
36         readonly attribute BarInfo statusbar;
37         readonly attribute BarInfo toolbar;
38
39         DOMSelection getSelection();
40
41         readonly attribute [CheckNodeSecurity] Element frameElement;
42
43         [DoNotCheckDomainSecurity] void focus();
44         [DoNotCheckDomainSecurity] void blur();
45         [DoNotCheckDomainSecurity] void close();
46
47         void print();
48         void stop();
49
50         void alert(in DOMString message);
51         boolean confirm(in DOMString message);
52         [ConvertNullStringTo=Null] DOMString prompt(in DOMString message,
53                                                     in [ConvertUndefinedOrNullToNullString] DOMString defaultValue);
54
55         boolean find(in DOMString string,
56                      in boolean caseSensitive,
57                      in boolean backwards,
58                      in boolean wrap,
59                      in boolean wholeWord,
60                      in boolean searchInFrames,
61                      in boolean showDialog);
62
63         readonly attribute boolean offscreenBuffering;
64
65         readonly attribute long outerHeight;
66         readonly attribute long outerWidth;
67         readonly attribute long innerHeight;
68         readonly attribute long innerWidth;
69         readonly attribute long screenX;
70         readonly attribute long screenY;
71         readonly attribute long screenLeft;
72         readonly attribute long screenTop;
73         readonly attribute long scrollX;
74         readonly attribute long scrollY;
75         readonly attribute long pageXOffset;
76         readonly attribute long pageYOffset;
77
78         [RequiresAllArguments] void scrollBy(in long x, in long y);
79         [RequiresAllArguments] void scrollTo(in long x, in long y);
80         [RequiresAllArguments] void scroll(in long x, in long y);
81         [RequiresAllArguments] void moveBy(in float x, in float y); // FIXME: this should take longs not floats.
82         [RequiresAllArguments] void moveTo(in float x, in float y); // FIXME: this should take longs not floats.
83         [RequiresAllArguments] void resizeBy(in float x, in float y); // FIXME: this should take longs not floats.
84         [RequiresAllArguments] void resizeTo(in float width, in float height); // FIXME: this should take longs not floats.
85
86         readonly attribute [DoNotCheckDomainSecurity] boolean closed;
87
88         readonly attribute [DoNotCheckDomainSecurity] unsigned long length;
89
90                  attribute DOMString name;
91
92                  attribute DOMString status;
93                  attribute DOMString defaultStatus;
94 #if defined(LANGUAGE_JAVASCRIPT)
95                  // This attribute is an alias of defaultStatus and is necessary for legacy uses.
96                  attribute DOMString defaultstatus;
97 #endif
98
99         // Self referential attributes
100         readonly attribute [DoNotCheckDomainSecurity] DOMWindow self;
101         readonly attribute [DoNotCheckDomainSecurity] DOMWindow window;
102         readonly attribute [DoNotCheckDomainSecurity] DOMWindow frames;
103
104         readonly attribute [DoNotCheckDomainSecurity] DOMWindow opener;
105         readonly attribute [DoNotCheckDomainSecurity] DOMWindow parent;
106         readonly attribute [DoNotCheckDomainSecurity] DOMWindow top;
107
108         // DOM Level 2 AbstractView Interface
109         readonly attribute Document document;
110
111         // DOM Level 2 Style Interface
112         CSSStyleDeclaration getComputedStyle(in Element element,
113                                              in DOMString pseudoElement);
114
115         // WebKit extensions
116         CSSRuleList getMatchedCSSRules(in Element element,
117                                        in DOMString pseudoElement,
118                                        in [Optional] boolean authorOnly);
119         readonly attribute double devicePixelRatio;
120
121 #if defined(ENABLE_DATABASE)
122         Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize)
123             raises(DOMException);
124 #endif
125
126                  attribute [Replaceable] Console console;
127
128         // cross-document messaging
129         [DoNotCheckDomainSecurity, Custom] void postMessage(in DOMString message);
130
131 #if defined(LANGUAGE_JAVASCRIPT)
132         // Global constructors
133         attribute StyleSheetConstructor StyleSheet;
134         attribute CSSStyleSheetConstructor CSSStyleSheet;
135
136         attribute CSSValueConstructor CSSValue;
137         attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
138         attribute CSSValueListConstructor CSSValueList;
139
140         attribute CSSRuleConstructor CSSRule;
141         attribute CSSCharsetRuleConstructor CSSCharsetRule;
142         attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
143         attribute CSSImportRuleConstructor CSSImportRule;
144         attribute CSSMediaRuleConstructor CSSMediaRule;
145         attribute CSSPageRuleConstructor CSSPageRule;
146         attribute CSSStyleRuleConstructor CSSStyleRule;
147
148         attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
149         attribute MediaListConstructor MediaList;
150         attribute CounterConstructor Counter;
151         attribute CSSRuleListConstructor CSSRuleList;
152         attribute RectConstructor Rect;
153         attribute StyleSheetListConstructor StyleSheetList;
154
155         // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
156 //        attribute DOMExceptionConstructor DOMException;
157 //        attribute DOMStringListConstructor DOMStringList;
158 //        attribute NameListConstructor NameList;
159 //        attribute DOMImplementationListConstructor DOMImplementationList;
160 //        attribute DOMImplementationSourceConstructor DOMImplementationSource;
161         attribute DOMImplementationConstructor DOMImplementation;
162         attribute DocumentFragmentConstructor DocumentFragment;
163         attribute DocumentConstructor Document;
164         attribute NodeConstructor Node;
165         attribute NodeListConstructor NodeList;
166         attribute NamedNodeMapConstructor NamedNodeMap;
167         attribute CharacterDataConstructor CharacterData;
168         attribute AttrConstructor Attr;
169         attribute ElementConstructor Element;
170         attribute TextConstructor Text;
171         attribute CommentConstructor Comment;
172 //        attribute TypeInfoConstructor TypeInfo;
173 //        attribute UserDataHandlerConstructor UserDataHandler;
174 //        attribute DOMErrorConstructor DOMError;
175 //        attribute DOMErrorHandlerConstructor DOMErrorHandler
176 //        attribute DOMLocatorConstructor DOMLocator;
177 //        attribute DOMConfigurationConstructor DOMConfiguration;
178         attribute CDATASectionConstructor CDATASection;
179         attribute DocumentTypeConstructor DocumentType;
180         attribute NotationConstructor Notation;
181         attribute EntityConstructor Entity;
182         attribute EntityReferenceConstructor EntityReference;
183         attribute ProcessingInstructionConstructor ProcessingInstruction;
184
185         attribute HTMLDocumentConstructor HTMLDocument;
186
187         attribute HTMLElementConstructor HTMLElement;
188         attribute HTMLAnchorElementConstructor HTMLAnchorElement;
189         attribute HTMLAppletElementConstructor HTMLAppletElement;
190         attribute HTMLAreaElementConstructor HTMLAreaElement;
191         attribute HTMLBRElementConstructor HTMLBRElement;
192         attribute HTMLBaseElementConstructor HTMLBaseElement;
193         attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
194         attribute HTMLBlockquoteElementConstructor HTMLBlockquoteElement;
195         attribute HTMLBodyElementConstructor HTMLBodyElement;
196         attribute HTMLButtonElementConstructor HTMLButtonElement;
197         attribute HTMLCanvasElementConstructor HTMLCanvasElement;
198         attribute HTMLDListElementConstructor HTMLDListElement;
199         attribute HTMLDirectoryElementConstructor HTMLDirectoryElement;
200         attribute HTMLDivElementConstructor HTMLDivElement;
201         attribute HTMLEmbedElementConstructor HTMLEmbedElement;
202         attribute HTMLFieldSetElementConstructor HTMLFieldSetElement;
203         attribute HTMLFontElementConstructor HTMLFontElement;
204         attribute HTMLFormElementConstructor HTMLFormElement;
205         attribute HTMLFrameElementConstructor HTMLFrameElement;
206         attribute HTMLFrameSetElementConstructor HTMLFrameSetElement;
207         attribute HTMLHRElementConstructor HTMLHRElement;
208         attribute HTMLHeadElementConstructor HTMLHeadElement;
209         attribute HTMLHeadingElementConstructor HTMLHeadingElement;
210         attribute HTMLHtmlElementConstructor HTMLHtmlElement;
211         attribute HTMLIFrameElementConstructor HTMLIFrameElement;
212         attribute HTMLImageElementConstructor HTMLImageElement;
213         attribute HTMLInputElementConstructor HTMLInputElement;
214         attribute HTMLIsIndexElementConstructor HTMLIsIndexElement;
215         attribute HTMLLIElementConstructor HTMLLIElement;
216         attribute HTMLLabelElementConstructor HTMLLabelElement;
217         attribute HTMLLegendElementConstructor HTMLLegendElement;
218         attribute HTMLLinkElementConstructor HTMLLinkElement;
219         attribute HTMLMapElementConstructor HTMLMapElement;
220         attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
221         attribute HTMLMenuElementConstructor HTMLMenuElement;
222         attribute HTMLMetaElementConstructor HTMLMetaElement;
223         attribute HTMLModElementConstructor HTMLModElement;
224         attribute HTMLOListElementConstructor HTMLOListElement;
225         attribute HTMLObjectElementConstructor HTMLObjectElement;
226         attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
227         attribute HTMLOptionElementConstructor HTMLOptionElement;
228         attribute HTMLParagraphElementConstructor HTMLParagraphElement;
229         attribute HTMLParamElementConstructor HTMLParamElement;
230         attribute HTMLPreElementConstructor HTMLPreElement;
231         attribute HTMLQuoteElementConstructor HTMLQuoteElement;
232         attribute HTMLScriptElementConstructor HTMLScriptElement;
233         attribute HTMLSelectElementConstructor HTMLSelectElement;
234         attribute HTMLStyleElementConstructor HTMLStyleElement;
235         attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement;
236         attribute HTMLTableCellElementConstructor HTMLTableCellElement;
237         attribute HTMLTableColElementConstructor HTMLTableColElement;
238         attribute HTMLTableElementConstructor HTMLTableElement;
239         attribute HTMLTableRowElementConstructor HTMLTableRowElement;
240         attribute HTMLTableSectionElementConstructor HTMLTableSectionElement;
241         attribute HTMLTextAreaElementConstructor HTMLTextAreaElement;
242         attribute HTMLTitleElementConstructor HTMLTitleElement;
243         attribute HTMLUListElementConstructor HTMLUListElement;
244
245         attribute EventConstructor Event;
246         attribute MessageEventConstructor MessageEvent;
247         attribute KeyboardEventConstructor KeyboardEvent;
248         attribute MouseEventConstructor MouseEvent;
249         attribute MutationEventConstructor MutationEvent;
250         attribute OverflowEventConstructor OverflowEvent;
251         attribute ProgressEventConstructor ProgressEvent;
252         attribute TextEventConstructor TextEvent;
253         attribute UIEventConstructor UIEvent;
254         attribute WheelEventConstructor WheelEvent;
255
256         attribute NodeFilterConstructor NodeFilter;
257         attribute RangeConstructor Range;
258         attribute RangeExceptionConstructor RangeException;
259
260         // Mozilla has a separate XMLDocument object for XML documents. 
261         // We just use Document for this.
262         attribute DocumentConstructor XMLDocument;
263
264         attribute DOMParserConstructor DOMParser;
265         attribute XMLSerializerConstructor XMLSerializer;
266
267 #if defined(ENABLE_VIDEO)
268         attribute HTMLAudioElementConstructor HTMLAudioElement;
269         attribute HTMLMediaElementConstructor HTMLMediaElement;
270         attribute HTMLVideoElementConstructor HTMLVideoElement;
271         attribute MediaErrorConstructor MediaError;
272 #endif
273
274 #if defined(ENABLE_XPATH)
275         attribute XPathEvaluatorConstructor XPathEvaluator;
276         attribute XPathResultConstructor XPathResult;
277 #endif
278
279 #if defined(ENABLE_SVG)
280         attribute SVGAngleConstructor SVGAngle;
281         attribute SVGColorConstructor SVGColor;
282 //      attribute SVGCSSRuleConstructor SVGCSSRule;
283         attribute SVGExceptionConstructor SVGException;
284         attribute SVGGradientElementConstructor SVGGradientElement;
285         attribute SVGLengthConstructor SVGLength;
286         attribute SVGMarkerElementConstructor SVGMarkerElement;
287         attribute SVGPaintConstructor SVGPaint;
288         attribute SVGPathSegConstructor SVGPathSeg;
289         attribute SVGPreserveAspectRatioConstructor SVGPreserveAspectRatio;
290         attribute SVGRenderingIntentConstructor SVGRenderingIntent;
291         attribute SVGTextContentElementConstructor SVGTextContentElement;
292         attribute SVGTextPathElementConstructor SVGTextPathElement;
293         attribute SVGTransformConstructor SVGTransform;
294         attribute SVGUnitTypesConstructor SVGUnitTypes;
295 //      attribute SVGZoomAndPanConstructor SVGZoomAndPan;
296 #endif
297
298 #if defined(ENABLED_SVG_FILTERS)
299         attribute SVGComponentTransferFunctionElementConstructor SVGComponentTransferFunctionElement;
300         attribute SVGFEBlendElementConstructor SVGFEBlendElement;
301         attribute SVGFEColorMatrixElementConstructor SVGFEColorMatrixElement;
302         attribute SVGFECompositeElementConstructor SVGFECompositeElement;
303 //      attribute SVGFEConvolveMatrixElementConstructor SVGFEConvolveMatrixElement;
304         attribute SVGFEDisplacementMapElementConstructor SVGFEDisplacementMapElement;
305 //      attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement;
306         attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement;
307 #endif
308
309 #endif // defined(LANGUAGE_JAVASCRIPT)
310     };
311
312 }