[
ImplicitThis,
CheckSecurity,
JSCustomDefineOwnProperty,
CustomDeleteProperty,
CustomGetOwnPropertySlot,
CustomEnumerateProperty,
CustomProxyToJSObject,
JSCustomMarkFunction,
JSCustomToNativeObject,
CustomPutFunction,
JSLegacyParent=JSDOMWindowBase,
InterfaceName=Window,
ExportMacro=WEBCORE_EXPORT,
] interface DOMWindow : EventTarget {
[Replaceable] readonly attribute Screen screen;
readonly attribute History history;
[Replaceable] readonly attribute BarProp locationbar;
[Replaceable] readonly attribute BarProp menubar;
[Replaceable] readonly attribute BarProp personalbar;
[Replaceable] readonly attribute BarProp scrollbars;
[Replaceable] readonly attribute BarProp statusbar;
[Replaceable] readonly attribute BarProp toolbar;
readonly attribute Navigator navigator;
[Replaceable] readonly attribute Navigator clientInformation;
readonly attribute Crypto crypto;
[DoNotCheckSecurity, CustomSetter, Unforgeable] attribute Location location;
[Replaceable, CustomGetter] readonly attribute Event event;
DOMSelection getSelection();
[CheckSecurityForNode] readonly attribute Element frameElement;
[DoNotCheckSecurity, CallWith=CallerWindow, ForwardDeclareInHeader] void focus();
[DoNotCheckSecurity, ForwardDeclareInHeader] void blur();
[DoNotCheckSecurity, CallWith=CallerDocument, ForwardDeclareInHeader] void close();
void print();
void stop();
[Custom] DOMWindow open(DOMString url,
DOMString name,
optional DOMString options);
[Custom] any showModalDialog(DOMString url,
optional any dialogArgs,
optional DOMString featureArgs);
void alert(optional DOMString message = "undefined");
boolean confirm(optional DOMString message = "undefined");
DOMString? prompt(optional DOMString message = "undefined", optional DOMString? defaultValue = null);
boolean find(optional DOMString string = "undefined",
optional boolean caseSensitive = false,
optional boolean backwards = false,
optional boolean wrap = false,
optional boolean wholeWord = false,
optional boolean searchInFrames = false,
optional boolean showDialog = false);
[Replaceable] readonly attribute boolean offscreenBuffering;
[Replaceable] readonly attribute long outerHeight;
[Replaceable] readonly attribute long outerWidth;
[Replaceable] readonly attribute long innerHeight;
[Replaceable] readonly attribute long innerWidth;
[Replaceable] readonly attribute long screenX;
[Replaceable] readonly attribute long screenY;
[Replaceable] readonly attribute long screenLeft;
[Replaceable] readonly attribute long screenTop;
[Replaceable] readonly attribute long scrollX;
[Replaceable] readonly attribute long scrollY;
readonly attribute long pageXOffset;
readonly attribute long pageYOffset;
void scrollBy(unrestricted double x, unrestricted double y);
void scrollTo(unrestricted double x, unrestricted double y);
[ImplementedAs=scrollTo] void scroll(unrestricted double x, unrestricted double y);
#