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