summaryrefslogtreecommitdiff
path: root/Source/WebCore/page/DOMWindow.idl
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/page/DOMWindow.idl
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebCore/page/DOMWindow.idl')
-rw-r--r--Source/WebCore/page/DOMWindow.idl340
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;