/* * Copyright (C) 2006-2020 Apple Inc. All rights reserved. * Copyright (C) 2011 Google Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ [ CheckSecurity, CustomDefineOwnProperty, CustomDeleteProperty, CustomGetOwnPropertyNames, CustomGetOwnPropertySlot, CustomGetPrototype, CustomHeapSnapshot, CustomPreventExtensions, CustomProxyToJSObject, CustomPut, ExportMacro=WEBCORE_EXPORT, ImplicitThis, InterfaceName=Window, IsImmutablePrototypeExoticObject, IsImmutablePrototypeExoticObjectOnPrototype, JSCustomMarkFunction, JSCustomToNativeObject, JSLegacyParent=JSDOMWindowBase, LegacyUnenumerableNamedProperties, Global=Window, Exposed=Window ] interface DOMWindow : EventTarget { // the current browsing context [DoNotCheckSecurity, LegacyUnforgeable, CustomGetter] readonly attribute WindowProxy window; [Replaceable, DoNotCheckSecurityOnGetter, CustomGetter] readonly attribute WindowProxy self; [LegacyUnforgeable] readonly attribute Document document; attribute DOMString name; [DoNotCheckSecurity, PutForwards=href, LegacyUnforgeable] readonly attribute Location location; readonly attribute History history; [ImplementedAs=ensureCustomElementRegistry] readonly attribute CustomElementRegistry customElements; [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; attribute DOMString status; [DoNotCheckSecurity, CallWith=IncumbentDocument, ForwardDeclareInHeader] undefined close(); [DoNotCheckSecurity, ForwardDeclareInHeader] readonly attribute boolean closed; undefined stop(); [DoNotCheckSecurity, CallWith=IncumbentWindow, ForwardDeclareInHeader] undefined focus(); [DoNotCheckSecurity, ForwardDeclareInHeader] undefined blur(); // other browsing contexts [Replaceable, DoNotCheckSecurityOnGetter, CustomGetter] readonly attribute WindowProxy frames; [Replaceable, DoNotCheckSecurityOnGetter] readonly attribute unsigned long length; [DoNotCheckSecurityOnGetter, LegacyUnforgeable] readonly attribute WindowProxy? top; [DoNotCheckSecurityOnGetter, CustomSetter] attribute WindowProxy? opener; [Replaceable, DoNotCheckSecurityOnGetter] readonly attribute WindowProxy? parent; [CheckSecurityForNode] readonly attribute Element? frameElement; [CallWith=ActiveWindow&FirstWindow, MayThrowException] WindowProxy? open(optional USVString url = "", optional DOMString target = "_blank", optional [LegacyNullToEmptyString] DOMString features = ""); // the user agent readonly attribute Navigator navigator; // FIXME: This is specified to be [SecureContext] readonly attribute DOMApplicationCache applicationCache; // FIXME: Implement 'originIsolated' // readonly attribute boolean originIsolated; // user prompts undefined alert(); undefined alert(DOMString message); [ImplementedAs=confirmForBindings]boolean confirm(optional DOMString message = ""); DOMString? prompt(optional DOMString message = "", optional DOMString defaultValue = ""); undefined print(); [CallWith=GlobalObject&IncumbentWindow, DoNotCheckSecurity, ForwardDeclareInHeader, MayThrowException] undefined postMessage(any message, USVString targetOrigin, optional sequence transfer = []); [CallWith=GlobalObject&IncumbentWindow, DoNotCheckSecurity, ForwardDeclareInHeader, MayThrowException] undefined postMessage(any message, optional WindowPostMessageOptions options); // Obsolete: Still part of the HTML specification (https://html.spec.whatwg.org/#Window-partial). undefined captureEvents(); undefined releaseEvents(); // Non-standard [Replaceable, CustomGetter] readonly attribute Event event; attribute DOMString defaultStatus; [ImplementedAs=defaultStatus] attribute DOMString defaultstatus; // For compatibility with legacy content. boolean find(optional DOMString string, 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; long webkitRequestAnimationFrame(RequestAnimationFrameCallback callback); [ImplementedAs=cancelAnimationFrame] undefined webkitCancelAnimationFrame(long id); [ImplementedAs=cancelAnimationFrame] undefined webkitCancelRequestAnimationFrame(long id); // Non-standard: May get added (https://github.com/whatwg/html/issues/2379). [Replaceable] readonly attribute Navigator clientInformation; // Non-standard: iOS extension - https://developer.apple.com/reference/webkitjs/gestureevent [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturechange; [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongestureend; [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturestart; // Non-standard: This has been dropped from the HTML specification and by other browsers. [Custom, ForwardDeclareInHeader] any showModalDialog(DOMString url, optional any dialogArgs, optional DOMString featureArgs); // Non-standard: should probably deprecate this (https://bugs.webkit.org/show_bug.cgi?id=79653). // Blink already deprecated it (https://bugs.chromium.org/p/chromium/issues/detail?id=437569). CSSRuleList getMatchedCSSRules(optional Element? element = null, optional DOMString? pseudoElement = null); // Non-standard: Blink has already dropped these (https://bugs.chromium.org/p/chromium/issues/detail?id=398352). WebKitPoint webkitConvertPointFromPageToNode(optional Node? node = null, optional WebKitPoint? p = null); WebKitPoint webkitConvertPointFromNodeToPage(optional Node? node = null, optional WebKitPoint? p = null); // Internal operations, not exposed to the Web. [MayThrowException, EnabledForWorld=shadowRootIsAlwaysOpen] NodeList collectMatchingElementsInFlatTree(Node scope, DOMString selectors); [MayThrowException, EnabledForWorld=shadowRootIsAlwaysOpen] Element? matchingElementInFlatTree(Node scope, DOMString selectors); }; [ ImplementedAs=WindowPostMessageOptions ] dictionary WindowPostMessageOptions : PostMessageOptions { USVString targetOrigin = "/"; }; DOMWindow includes AnimationFrameProvider; DOMWindow includes GlobalEventHandlers; DOMWindow includes WindowEventHandlers; DOMWindow includes WindowOrWorkerGlobalScope; DOMWindow includes WindowLocalStorage; DOMWindow includes WindowSessionStorage;