diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/page/DOMWindow.idl | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/page/DOMWindow.idl')
-rw-r--r-- | Source/WebCore/page/DOMWindow.idl | 340 |
1 files changed, 105 insertions, 235 deletions
diff --git a/Source/WebCore/page/DOMWindow.idl b/Source/WebCore/page/DOMWindow.idl index a067f5431..b62e455f8 100644 --- a/Source/WebCore/page/DOMWindow.idl +++ b/Source/WebCore/page/DOMWindow.idl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006, 2007, 2008, 2009, 2013 Apple Inc. All rights reserved. + * Copyright (C) 2006-2016 Apple Inc. All rights reserved. * Copyright (C) 2011 Google Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -11,10 +11,10 @@ * 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 COMPUTER, INC. ``AS IS'' AND ANY + * 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 COMPUTER, INC. OR + * 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 @@ -26,67 +26,61 @@ [ CheckSecurity, - JSCustomDefineOwnProperty, CustomDeleteProperty, - CustomGetOwnPropertySlot, CustomEnumerateProperty, + CustomGetOwnPropertySlot, + CustomGetPrototype, + CustomPreventExtensions, + CustomProxyToJSObject, + CustomPutFunction, + CustomToStringName, + ExportMacro=WEBCORE_EXPORT, + ImplicitThis, + InterfaceName=Window, + IsImmutablePrototypeExoticObject, + IsImmutablePrototypeExoticObjectOnPrototype, + JSCustomDefineOwnProperty, JSCustomMarkFunction, JSCustomToNativeObject, - CustomPutFunction, - EventTarget, - JSGenerateToNativeObject, - ReplaceableConstructor, JSLegacyParent=JSDOMWindowBase, - InterfaceName=Window, -] interface DOMWindow { - // DOM Level 0 + LegacyUnenumerableNamedProperties, + PrimaryGlobal, +] interface DOMWindow : EventTarget { [Replaceable] readonly attribute Screen screen; - [Replaceable, DoNotCheckSecurityOnGetter] readonly attribute History history; + 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; - [Replaceable] readonly attribute Navigator navigator; + readonly attribute Navigator navigator; [Replaceable] readonly attribute Navigator clientInformation; - readonly attribute Crypto crypto; -#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP - [DoNotCheckSecurity, CustomSetter] attribute Location location; -#endif + [DoNotCheckSecurity, CustomSetter, Unforgeable] attribute Location location; [Replaceable, CustomGetter] readonly attribute Event event; DOMSelection getSelection(); [CheckSecurityForNode] readonly attribute Element frameElement; - [DoNotCheckSecurity, CallWith=ScriptExecutionContext] void focus(); - [DoNotCheckSecurity] void blur(); - [DoNotCheckSecurity, CallWith=ScriptExecutionContext] void close(); + [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] DOMWindow open(optional USVString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = ""); - [Custom] any showModalDialog(DOMString url, - optional any dialogArgs, - optional DOMString featureArgs); + [Custom] any showModalDialog(DOMString url, optional any dialogArgs, optional DOMString featureArgs); - void alert([Default=Undefined] optional DOMString message); - boolean confirm([Default=Undefined] optional DOMString message); - [TreatReturnedNullStringAs=Null] DOMString prompt([Default=Undefined] optional DOMString message, - [TreatNullAs=NullString, TreatUndefinedAs=NullString,Default=Undefined] optional DOMString defaultValue); + void alert(); + void alert(DOMString message); + boolean confirm(optional DOMString message = ""); + DOMString? prompt(optional DOMString message = "", optional DOMString defaultValue = ""); - boolean find([Default=Undefined] optional DOMString string, - [Default=Undefined] optional boolean caseSensitive, - [Default=Undefined] optional boolean backwards, - [Default=Undefined] optional boolean wrap, - [Default=Undefined] optional boolean wholeWord, - [Default=Undefined] optional boolean searchInFrames, - [Default=Undefined] optional boolean showDialog); + // FIXME: Using "undefined" as default parameter value is wrong. + 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; @@ -98,20 +92,26 @@ [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([Default=Undefined] optional long x, [Default=Undefined] optional long y); - void scrollTo([Default=Undefined] optional long x, [Default=Undefined] optional long y); - void scroll([Default=Undefined] optional long x, [Default=Undefined] optional long y); - void moveBy([Default=Undefined] optional float x, [Default=Undefined] optional float y); // FIXME: this should take longs not floats. - void moveTo([Default=Undefined] optional float x, [Default=Undefined] optional float y); // FIXME: this should take longs not floats. - void resizeBy([Default=Undefined] optional float x, [Default=Undefined] optional float y); // FIXME: this should take longs not floats. - void resizeTo([Default=Undefined] optional float width, [Default=Undefined] optional float height); // FIXME: this should take longs not floats. + [Replaceable] readonly attribute double scrollX; + [Replaceable] readonly attribute double scrollY; + [Replaceable, ImplementedAs=scrollX] readonly attribute double pageXOffset; + [Replaceable, ImplementedAs=scrollY] readonly attribute double 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); + + void scrollBy(optional ScrollToOptions option); + void scrollTo(optional ScrollToOptions options); + [ImplementedAs=scrollTo] void scroll(optional ScrollToOptions options); + + void moveBy(optional unrestricted float x = NaN, optional unrestricted float y = NaN); // FIXME: This should take longs, not floats. + void moveTo(optional unrestricted float x = NaN, optional unrestricted float y = NaN); // FIXME: This should take longs, not floats. + void resizeBy(optional unrestricted float x = NaN, optional unrestricted float y = NaN); // FIXME: This should take longs, not floats. + void resizeTo(optional unrestricted float width = NaN, optional unrestricted float height = NaN); // FIXME: This should take longs, not floats. - [DoNotCheckSecurity] readonly attribute boolean closed; + [DoNotCheckSecurity, ForwardDeclareInHeader] readonly attribute boolean closed; [Replaceable, DoNotCheckSecurityOnGetter] readonly attribute unsigned long length; @@ -119,215 +119,85 @@ attribute DOMString status; attribute DOMString defaultStatus; -#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT - // This attribute is an alias of defaultStatus and is necessary for legacy uses. - [ImplementedAs=defaultStatus] attribute DOMString defaultstatus; -#endif + [ImplementedAs=defaultStatus] attribute DOMString defaultstatus; // For compatibility with legacy content. - // Self referential attributes [Replaceable, DoNotCheckSecurityOnGetter] readonly attribute DOMWindow self; - [DoNotCheckSecurity] readonly attribute DOMWindow window; + [DoNotCheckSecurity, Unforgeable] readonly attribute DOMWindow window; [Replaceable, DoNotCheckSecurityOnGetter] readonly attribute DOMWindow frames; [Replaceable, DoNotCheckSecurityOnGetter] readonly attribute DOMWindow opener; [Replaceable, DoNotCheckSecurityOnGetter] readonly attribute DOMWindow parent; - [DoNotCheckSecurityOnGetter] readonly attribute DOMWindow top; + [DoNotCheckSecurityOnGetter, Unforgeable] readonly attribute DOMWindow top; - // DOM Level 2 AbstractView Interface - readonly attribute Document document; + [Unforgeable] readonly attribute Document document; - // CSSOM View Module MediaQueryList matchMedia(DOMString query); - // styleMedia has been removed from the CSSOM View specification. - readonly attribute StyleMedia styleMedia; + readonly attribute StyleMedia styleMedia; // Keeping for now, but styleMedia has been removed from the CSSOM View specification. - // DOM Level 2 Style Interface - CSSStyleDeclaration getComputedStyle([Default=Undefined] optional Element element, - [TreatNullAs=NullString, TreatUndefinedAs=NullString,Default=Undefined] optional DOMString pseudoElement); + [NewObject] CSSStyleDeclaration getComputedStyle(Element element, optional DOMString? pseudoElement = null); - // WebKit extensions -#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT - CSSRuleList getMatchedCSSRules([Default=Undefined] optional Element element, - [TreatNullAs=NullString, TreatUndefinedAs=NullString,Default=Undefined] optional DOMString pseudoElement); -#endif + CSSRuleList getMatchedCSSRules(optional Element? element = null, optional DOMString? pseudoElement = null); - [Replaceable] readonly attribute double devicePixelRatio; + [Replaceable] readonly attribute unrestricted double devicePixelRatio; - WebKitPoint webkitConvertPointFromPageToNode([Default=Undefined] optional Node node, - [Default=Undefined] optional WebKitPoint p); - WebKitPoint webkitConvertPointFromNodeToPage([Default=Undefined] optional Node node, - [Default=Undefined] optional WebKitPoint p); + WebKitPoint webkitConvertPointFromPageToNode(optional Node? node = null, optional WebKitPoint? p = null); + WebKitPoint webkitConvertPointFromNodeToPage(optional Node? node = null, optional WebKitPoint? p = null); readonly attribute DOMApplicationCache applicationCache; - [GetterRaisesException] readonly attribute Storage sessionStorage; - [GetterRaisesException] readonly attribute Storage localStorage; + [GetterMayThrowException] readonly attribute Storage sessionStorage; + [GetterMayThrowException] readonly attribute Storage localStorage; -#if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS - // This is the interface orientation in degrees. Some examples are: - // 0 is straight up; -90 is when the device is rotated 90 clockwise; - // 90 is when rotated counter clockwise. - readonly attribute long orientation; -#endif + // This is the interface orientation in degrees. Some examples: + // 0 when straight up; -90 when rotated 90 degrees clockwise; 90 counter clockwise. + [Conditional=ORIENTATION_EVENTS] readonly attribute long orientation; - [Replaceable] readonly attribute Console console; + [CallWith=ScriptState&CallerWindow, DoNotCheckSecurity, ForwardDeclareInHeader, MayThrowException] void postMessage(any message, USVString targetOrigin, optional sequence<object> transfer = []); - // cross-document messaging -#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT - [DoNotCheckSecurity, Custom, RaisesException] void postMessage(SerializedScriptValue message, DOMString targetOrigin, optional Array messagePorts); -#else - // There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port. - [DoNotCheckSecurity, Custom, RaisesException] void postMessage(SerializedScriptValue message, optional MessagePort messagePort, DOMString targetOrigin); -#endif - -#if defined(ENABLE_WEB_TIMING) && ENABLE_WEB_TIMING - [Replaceable] readonly attribute Performance performance; -#endif - -#if defined(ENABLE_REQUEST_ANIMATION_FRAME) && ENABLE_REQUEST_ANIMATION_FRAME long requestAnimationFrame(RequestAnimationFrameCallback callback); void cancelAnimationFrame(long id); long webkitRequestAnimationFrame(RequestAnimationFrameCallback callback); [ImplementedAs=cancelAnimationFrame] void webkitCancelAnimationFrame(long id); [ImplementedAs=cancelAnimationFrame] void webkitCancelRequestAnimationFrame(long id); // This is a deprecated alias for webkitCancelAnimationFrame(). Remove this when removing vendor prefix. -#endif - - [Replaceable,Conditional=CSS3_CONDITIONAL_RULES] readonly attribute DOMWindowCSS CSS; - - // Events - attribute EventListener onabort; - attribute EventListener onbeforeunload; - attribute EventListener onblur; - attribute EventListener oncanplay; - attribute EventListener oncanplaythrough; - attribute EventListener onchange; - attribute EventListener onclick; - attribute EventListener oncontextmenu; - attribute EventListener ondblclick; - attribute EventListener ondrag; - attribute EventListener ondragend; - attribute EventListener ondragenter; - attribute EventListener ondragleave; - attribute EventListener ondragover; - attribute EventListener ondragstart; - attribute EventListener ondrop; - attribute EventListener ondurationchange; - attribute EventListener onemptied; - attribute EventListener onended; - attribute EventListener onerror; - attribute EventListener onfocus; - attribute EventListener onhashchange; - attribute EventListener oninput; - attribute EventListener oninvalid; - attribute EventListener onkeydown; - attribute EventListener onkeypress; - attribute EventListener onkeyup; - attribute EventListener onload; - attribute EventListener onloadeddata; - attribute EventListener onloadedmetadata; - attribute EventListener onloadstart; - attribute EventListener onmessage; - attribute EventListener onmousedown; - attribute EventListener onmouseenter; - attribute EventListener onmouseleave; - attribute EventListener onmousemove; - attribute EventListener onmouseout; - attribute EventListener onmouseover; - attribute EventListener onmouseup; - attribute EventListener onmousewheel; - attribute EventListener onoffline; - attribute EventListener ononline; - attribute EventListener onpagehide; - attribute EventListener onpageshow; - attribute EventListener onpause; - attribute EventListener onplay; - attribute EventListener onplaying; - attribute EventListener onpopstate; - attribute EventListener onprogress; - attribute EventListener onratechange; - attribute EventListener onresize; - attribute EventListener onscroll; - attribute EventListener onseeked; - attribute EventListener onseeking; - attribute EventListener onselect; - attribute EventListener onstalled; - attribute EventListener onstorage; - attribute EventListener onsubmit; - attribute EventListener onsuspend; - attribute EventListener ontimeupdate; - attribute EventListener onunload; - attribute EventListener onvolumechange; - attribute EventListener onwaiting; - attribute EventListener onwheel; - - // Not implemented yet. - // attribute EventListener onafterprint; - // attribute EventListener onbeforeprint; - // attribute EventListener onreadystatechange; - // attribute EventListener onredo; - // attribute EventListener onshow; - // attribute EventListener onundo; - - // Webkit extensions - attribute EventListener onreset; - attribute EventListener onsearch; - attribute EventListener onwebkitanimationend; - attribute EventListener onwebkitanimationiteration; - attribute EventListener onwebkitanimationstart; - attribute EventListener onwebkittransitionend; - attribute EventListener ontransitionend; -#if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS - attribute EventListener onorientationchange; -#endif - [Conditional=TOUCH_EVENTS] attribute EventListener ontouchstart; - [Conditional=TOUCH_EVENTS] attribute EventListener ontouchmove; - [Conditional=TOUCH_EVENTS] attribute EventListener ontouchend; - [Conditional=TOUCH_EVENTS] attribute EventListener ontouchcancel; - - [Conditional=IOS_GESTURE_EVENTS] attribute EventListener ongesturestart; - [Conditional=IOS_GESTURE_EVENTS] attribute EventListener ongesturechange; - [Conditional=IOS_GESTURE_EVENTS] attribute EventListener ongestureend; - - [Conditional=DEVICE_ORIENTATION] attribute EventListener ondevicemotion; - [Conditional=DEVICE_ORIENTATION] attribute EventListener ondeviceorientation; - - [Conditional=PROXIMITY_EVENTS] attribute EventListener onwebkitdeviceproximity; - - // EventTarget interface - [Custom] void addEventListener(DOMString type, - EventListener listener, - optional boolean useCapture); - [Custom] void removeEventListener(DOMString type, - EventListener listener, - optional boolean useCapture); - [RaisesException] boolean dispatchEvent(Event evt); - - void captureEvents(/*in long eventFlags*/); - void releaseEvents(/*in long eventFlags*/); - -#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT - // Additional constructors. - [CustomGetter, CustomConstructor] attribute HTMLImageElementNamedConstructor Image; // Usable with new operator - // Mozilla has a separate XMLDocument object for XML documents. - // We just use Document for this. - attribute DocumentConstructor XMLDocument; - - [Conditional=IOS_TOUCH_EVENTS, CustomGetter] attribute TouchConstructor Touch; // Usable with the new operator - [Conditional=IOS_TOUCH_EVENTS, CustomGetter] attribute TouchListConstructor TouchList; // Usable with the new operator - - [Conditional=BLOB] attribute DOMURLConstructor webkitURL; // FIXME: deprecate this. - attribute MutationObserverConstructor WebKitMutationObserver; // FIXME: Add metrics to determine when we can remove this. - [Conditional=INDEXED_DATABASE] attribute IDBCursorConstructor webkitIDBCursor; - [Conditional=INDEXED_DATABASE] attribute IDBDatabaseConstructor webkitIDBDatabase; - [Conditional=INDEXED_DATABASE] attribute IDBFactoryConstructor webkitIDBFactory; - [Conditional=INDEXED_DATABASE] attribute IDBIndexConstructor webkitIDBIndex; - [Conditional=INDEXED_DATABASE] attribute IDBKeyRangeConstructor webkitIDBKeyRange; - [Conditional=INDEXED_DATABASE] attribute IDBObjectStoreConstructor webkitIDBObjectStore; - [Conditional=INDEXED_DATABASE] attribute IDBRequestConstructor webkitIDBRequest; - [Conditional=INDEXED_DATABASE] attribute IDBTransactionConstructor webkitIDBTransaction; -#endif // defined(LANGUAGE_JAVASCRIPT) + + void captureEvents(); // Not implemented. Also not in modern standards. Empty function may help compatibility with legacy content. + void releaseEvents(); // Not implemented. Also not in modern standards. Empty function may help compatibility with legacy content. + + attribute XMLDocumentConstructor SVGDocument; + + attribute DOMURLConstructor webkitURL; // FIXME: Deprecate this. + attribute MutationObserverConstructor WebKitMutationObserver; // FIXME: Remove once we prove it is not needed for compatibility with legacy content. + + [EnabledAtRuntime=CustomElements, ImplementedAs=ensureCustomElementRegistry] readonly attribute CustomElementRegistry customElements; + + [MayThrowException, EnabledForWorld=shadowRootIsAlwaysOpen] + NodeList collectMatchingElementsInFlatTree(Node scope, DOMString selectors); + [MayThrowException, EnabledForWorld=shadowRootIsAlwaysOpen] + Element? matchingElementInFlatTree(Node scope, DOMString selectors); + + // Event handlers unique to Element and DOMWindow. + // FIXME: Should these be exposed on Document as well (and therefore moved to GlobalEventHandlers.idl)? + [NotEnumerable] attribute EventHandler onanimationend; + [NotEnumerable] attribute EventHandler onanimationiteration; + [NotEnumerable] attribute EventHandler onanimationstart; + [NotEnumerable] attribute EventHandler ontransitionend; + [NotEnumerable, ImplementedAs=onwebkitAnimationEnd] attribute EventHandler onwebkitanimationend; + [NotEnumerable, ImplementedAs=onwebkitAnimationIteration] attribute EventHandler onwebkitanimationiteration; + [NotEnumerable, ImplementedAs=onwebkitAnimationStart] attribute EventHandler onwebkitanimationstart; + [NotEnumerable, ImplementedAs=onwebkitTransitionEnd] attribute EventHandler onwebkittransitionend; + [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturechange; + [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongestureend; + [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturestart; + + // Event handlers unique to DOMWindow. + [NotEnumerable, Conditional=DEVICE_ORIENTATION] attribute EventHandler ondevicemotion; + [NotEnumerable, Conditional=DEVICE_ORIENTATION] attribute EventHandler ondeviceorientation; + [NotEnumerable, Conditional=PROXIMITY_EVENTS] attribute EventHandler onwebkitdeviceproximity; }; -DOMWindow implements WindowTimers; -DOMWindow implements WindowBase64; +DOMWindow implements GlobalCrypto; +DOMWindow implements GlobalEventHandlers; +DOMWindow implements GlobalPerformance; +DOMWindow implements WindowEventHandlers; +DOMWindow implements WindowOrWorkerGlobalScope; |