Diff
Modified: trunk/Source/WebCore/ChangeLog (266799 => 266800)
--- trunk/Source/WebCore/ChangeLog 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/ChangeLog 2020-09-09 22:11:30 UTC (rev 266800)
@@ -1,3 +1,74 @@
+2020-09-09 Sam Weinig <[email protected]>
+
+ [WebIDL] Stop automatically applying the ImplementedBy extended attribute to all partial interfaces/dictionaries
+ https://bugs.webkit.org/show_bug.cgi?id=216322
+
+ Reviewed by Darin Adler.
+
+ When partial interfaces were originally introduced, there were grand ambitions to modularize
+ and isolate parts of interfaces completely, mostly using the Supplemental<> pattern. As time
+ has passed, more and more specs have usedd partial just to group things together, and having
+ it implicitly mean using a class named after the IDL file with some static functions is not
+ always the right choice. With this change, partial interfaces that want the supplemental style
+ behavior must opt in, using the extended attribute "ImplementedBy", which is what the code
+ generators already called this concept internally.
+
+ * bindings/scripts/CodeGenerator.pm:
+ (ProcessInterfaceSupplementalDependencies):
+ (ProcessDictionarySupplementalDependencies):
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GetFullyQualifiedImplementationCallName):
+ (AddAdditionalArgumentsForImplementationCall):
+ * bindings/scripts/IDLAttributes.json:
+ Remove special casing of partial interfaces / dictionaries automatically getting "ImplementedBy"
+ applied to all members. Maintain the behavior that "ImplementedBy" is silently ignored when
+ an attribute has been marked as "Reflect".
+
+ * Modules/async-clipboard/NavigatorClipboard.idl:
+ * Modules/beacon/NavigatorBeacon.idl:
+ * Modules/cache/DOMWindowCaches.idl:
+ * Modules/cache/WorkerGlobalScopeCaches.idl:
+ * Modules/credentialmanagement/NavigatorCredentials.idl:
+ * Modules/encryptedmedia/NavigatorEME.idl:
+ * Modules/entriesapi/HTMLInputElementEntriesAPI.idl:
+ * Modules/fetch/DOMWindowFetch.idl:
+ * Modules/fetch/WorkerGlobalScopeFetch.idl:
+ * Modules/gamepad/NavigatorGamepad.idl:
+ * Modules/geolocation/NavigatorGeolocation.idl:
+ * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
+ * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl:
+ * Modules/mediacapabilities/NavigatorMediaCapabilities.idl:
+ * Modules/mediasession/HTMLMediaElementMediaSession.idl:
+ * Modules/mediasource/AudioTrackMediaSource.idl:
+ * Modules/mediasource/DOMURLMediaSource.idl:
+ * Modules/mediasource/TextTrackMediaSource.idl:
+ * Modules/mediasource/VideoTrackMediaSource.idl:
+ * Modules/mediastream/NavigatorMediaDevices.idl:
+ * Modules/pictureinpicture/DocumentPictureInPicture.idl:
+ * Modules/pictureinpicture/HTMLVideoElementPictureInPicture.idl:
+ * Modules/quota/DOMWindowQuota.idl:
+ * Modules/quota/NavigatorStorageQuota.idl:
+ * Modules/quota/WorkerNavigatorStorageQuota.idl:
+ * Modules/remoteplayback/HTMLMediaElementRemotePlayback.idl:
+ * Modules/speech/DOMWindowSpeechSynthesis.idl:
+ * Modules/webdatabase/DOMWindowWebDatabase.idl:
+ * Modules/webdriver/NavigatorWebDriver.idl:
+ * Modules/webgpu/NavigatorGPU.idl:
+ * Modules/webgpu/WebGPUDeviceErrorScopes.idl:
+ * Modules/webgpu/WebGPUDeviceEventHandler.idl:
+ * Modules/webgpu/WorkerNavigatorGPU.idl:
+ * Modules/webxr/NavigatorWebXR.idl:
+ * css/DOMCSSPaintWorklet.idl:
+ * css/DOMCSSRegisterCustomProperty.idl:
+ * dom/DocumentFullscreen.idl:
+ * dom/DocumentStorageAccess.idl:
+ * dom/DocumentTouch.idl:
+ * page/NavigatorIsLoggedIn.idl:
+ * svg/SVGDocument.idl:
+ Update existing partials to opt into "ImplementedBy" bevahior. A future pass
+ will go through these and see which ones can be simplified by removing the
+ indirection without introducing unnecessary modularization changes.
+
2020-09-09 Chris Dumez <[email protected]>
Move lazy DisplayLink tear down logic from the WebProcess to the UIProcess
Modified: trunk/Source/WebCore/Modules/async-clipboard/NavigatorClipboard.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/async-clipboard/NavigatorClipboard.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/async-clipboard/NavigatorClipboard.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -25,6 +25,7 @@
[
EnabledBySetting=AsyncClipboardAPI,
+ ImplementedBy=NavigatorClipboard
] partial interface Navigator {
[SecureContext, SameObject] readonly attribute Clipboard clipboard;
};
Modified: trunk/Source/WebCore/Modules/beacon/NavigatorBeacon.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/beacon/NavigatorBeacon.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/beacon/NavigatorBeacon.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -27,6 +27,7 @@
[
EnabledBySetting=BeaconAPI,
+ ImplementedBy=NavigatorBeacon
] partial interface Navigator {
[CallWith=Document, MayThrowException] boolean sendBeacon(USVString url, optional BodyInit? data = ""
};
Modified: trunk/Source/WebCore/Modules/cache/DOMWindowCaches.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/cache/DOMWindowCaches.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/cache/DOMWindowCaches.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -25,6 +25,7 @@
[
EnabledAtRuntime=CacheAPI,
+ ImplementedBy=DOMWindowCaches
] partial interface DOMWindow {
[CallWith=ScriptExecutionContext, MayThrowException, SecureContext, SameObject] readonly attribute DOMCacheStorage caches;
};
Modified: trunk/Source/WebCore/Modules/cache/WorkerGlobalScopeCaches.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/cache/WorkerGlobalScopeCaches.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/cache/WorkerGlobalScopeCaches.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -25,6 +25,7 @@
[
EnabledAtRuntime=CacheAPI,
+ ImplementedBy=WorkerGlobalScopeCaches
] partial interface WorkerGlobalScope {
[SecureContext, SameObject] readonly attribute DOMCacheStorage caches;
};
Modified: trunk/Source/WebCore/Modules/credentialmanagement/NavigatorCredentials.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/credentialmanagement/NavigatorCredentials.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/credentialmanagement/NavigatorCredentials.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -27,6 +27,7 @@
[
Conditional=WEB_AUTHN,
EnabledBySetting=WebAuthentication,
+ ImplementedBy=NavigatorCredentials
] partial interface Navigator {
[SecureContext, SameObject] readonly attribute CredentialsContainer credentials;
};
Modified: trunk/Source/WebCore/Modules/encryptedmedia/NavigatorEME.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/encryptedmedia/NavigatorEME.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/encryptedmedia/NavigatorEME.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -30,6 +30,7 @@
Conditional=ENCRYPTED_MEDIA,
EnabledBySetting=EncryptedMediaAPI,
DisabledByQuirk=hasBrokenEncryptedMediaAPISupport,
+ ImplementedBy=NavigatorEME
] partial interface Navigator {
[CallWith=Document] Promise<MediaKeySystemAccess> requestMediaKeySystemAccess(DOMString keySystem, sequence<MediaKeySystemConfiguration> supportedConfiguration);
};
Modified: trunk/Source/WebCore/Modules/entriesapi/HTMLInputElementEntriesAPI.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/entriesapi/HTMLInputElementEntriesAPI.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/entriesapi/HTMLInputElementEntriesAPI.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -26,6 +26,7 @@
// https://wicg.github.io/entries-api/#dom-htmlinputelement-webkitdirectory
[
EnabledAtRuntime=DirectoryUpload,
+ ImplementedBy=HTMLInputElementEntriesAPI
] partial interface HTMLInputElement {
[Reflect] attribute boolean webkitdirectory;
[CachedAttribute, CallWith=ScriptExecutionContext] readonly attribute FrozenArray<FileSystemEntry> webkitEntries;
Modified: trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -30,6 +30,7 @@
[
EnabledAtRuntime=FetchAPI,
+ ImplementedBy=DOMWindowFetch
] partial interface DOMWindow {
Promise<FetchResponse> fetch(RequestInfo input, optional FetchRequestInit init);
};
Modified: trunk/Source/WebCore/Modules/fetch/WorkerGlobalScopeFetch.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/fetch/WorkerGlobalScopeFetch.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/fetch/WorkerGlobalScopeFetch.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -30,6 +30,7 @@
[
EnabledAtRuntime=FetchAPI,
+ ImplementedBy=WorkerGlobalScopeFetch
] partial interface WorkerGlobalScope {
Promise<FetchResponse> fetch(RequestInfo input, optional FetchRequestInit init);
};
Modified: trunk/Source/WebCore/Modules/gamepad/NavigatorGamepad.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/gamepad/NavigatorGamepad.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/gamepad/NavigatorGamepad.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -25,6 +25,7 @@
[
Conditional=GAMEPAD,
+ ImplementedBy=NavigatorGamepad
] partial interface Navigator {
[EnabledBySetting=Gamepads] sequence<Gamepad> getGamepads();
};
Modified: trunk/Source/WebCore/Modules/geolocation/NavigatorGeolocation.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/geolocation/NavigatorGeolocation.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/geolocation/NavigatorGeolocation.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -19,6 +19,7 @@
[
Conditional=GEOLOCATION,
+ ImplementedBy=NavigatorGeolocation
] partial interface Navigator {
readonly attribute Geolocation geolocation;
};
Modified: trunk/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -26,6 +26,7 @@
[
Conditional=INDEXED_DATABASE,
+ ImplementedBy=DOMWindowIndexedDatabase
] partial interface DOMWindow {
readonly attribute IDBFactory indexedDB;
[ImplementedAs=indexedDB] readonly attribute IDBFactory webkitIndexedDB;
Modified: trunk/Source/WebCore/Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -26,6 +26,7 @@
[
Conditional=INDEXED_DATABASE_IN_WORKERS,
+ ImplementedBy=WorkerGlobalScopeIndexedDatabase
] partial interface WorkerGlobalScope {
[EnabledAtRuntime=IndexedDBWorkers] readonly attribute IDBFactory indexedDB;
};
Modified: trunk/Source/WebCore/Modules/mediacapabilities/NavigatorMediaCapabilities.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/mediacapabilities/NavigatorMediaCapabilities.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/mediacapabilities/NavigatorMediaCapabilities.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -23,7 +23,9 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-[ EnabledBySetting=MediaCapabilities ]
-partial interface Navigator {
+[
+ EnabledBySetting=MediaCapabilities,
+ ImplementedBy=NavigatorMediaCapabilities
+] partial interface Navigator {
[SameObject] readonly attribute MediaCapabilities mediaCapabilities;
};
Modified: trunk/Source/WebCore/Modules/mediasession/HTMLMediaElementMediaSession.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/mediasession/HTMLMediaElementMediaSession.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/mediasession/HTMLMediaElementMediaSession.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -25,6 +25,7 @@
[
Conditional=VIDEO&MEDIA_SESSION,
+ ImplementedBy=HTMLMediaElementMediaSession
] partial interface HTMLMediaElement {
attribute DOMString kind;
Modified: trunk/Source/WebCore/Modules/mediasource/AudioTrackMediaSource.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/mediasource/AudioTrackMediaSource.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/mediasource/AudioTrackMediaSource.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -25,7 +25,7 @@
[
Conditional=MEDIA_SOURCE,
-]
-partial interface AudioTrack {
+ ImplementedBy=AudioTrackMediaSource
+] partial interface AudioTrack {
readonly attribute SourceBuffer? sourceBuffer;
};
Modified: trunk/Source/WebCore/Modules/mediasource/DOMURLMediaSource.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/mediasource/DOMURLMediaSource.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/mediasource/DOMURLMediaSource.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -27,9 +27,10 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+
[
- Conditional=MEDIA_SOURCE
-]
-partial interface DOMURL {
+ Conditional=MEDIA_SOURCE,
+ ImplementedBy=DOMURLMediaSource
+] partial interface DOMURL {
[CallWith=ScriptExecutionContext] static DOMString createObjectURL(MediaSource source);
};
Modified: trunk/Source/WebCore/Modules/mediasource/TextTrackMediaSource.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/mediasource/TextTrackMediaSource.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/mediasource/TextTrackMediaSource.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -25,7 +25,7 @@
[
Conditional=MEDIA_SOURCE,
-]
-partial interface TextTrack {
+ ImplementedBy=TextTrackMediaSource
+] partial interface TextTrack {
readonly attribute SourceBuffer? sourceBuffer;
};
Modified: trunk/Source/WebCore/Modules/mediasource/VideoTrackMediaSource.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/mediasource/VideoTrackMediaSource.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/mediasource/VideoTrackMediaSource.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -22,9 +22,10 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+
[
Conditional=MEDIA_SOURCE,
-]
-partial interface VideoTrack {
+ ImplementedBy=VideoTrackMediaSource
+] partial interface VideoTrack {
readonly attribute SourceBuffer? sourceBuffer;
};
Modified: trunk/Source/WebCore/Modules/mediastream/NavigatorMediaDevices.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/mediastream/NavigatorMediaDevices.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/mediastream/NavigatorMediaDevices.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -31,6 +31,7 @@
[
Conditional=MEDIA_STREAM,
EnabledBySetting=MediaDevices,
+ ImplementedBy=NavigatorMediaDevices
] partial interface Navigator {
[SameObject, SecureContext, ContextAllowsMediaDevices] readonly attribute MediaDevices mediaDevices;
[Custom, EnabledBySetting=LegacyGetUserMedia] undefined getUserMedia(object constraints, object? successCallback, object? errorCallback);
Modified: trunk/Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -26,7 +26,8 @@
[
Conditional=PICTURE_IN_PICTURE_API,
- EnabledBySetting=PictureInPictureAPI
+ EnabledBySetting=PictureInPictureAPI,
+ ImplementedBy=DocumentPictureInPicture
] partial interface Document {
readonly attribute boolean pictureInPictureEnabled;
Modified: trunk/Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -26,13 +26,14 @@
[
Conditional=PICTURE_IN_PICTURE_API,
- EnabledBySetting=PictureInPictureAPI
+ EnabledBySetting=PictureInPictureAPI,
+ ImplementedBy=HTMLVideoElementPictureInPicture
] partial interface HTMLVideoElement {
- [NewObject] Promise<PictureInPictureWindow> requestPictureInPicture();
+ [NewObject] Promise<PictureInPictureWindow> requestPictureInPicture();
- attribute EventHandler onenterpictureinpicture;
- attribute EventHandler onleavepictureinpicture;
+ attribute EventHandler onenterpictureinpicture;
+ attribute EventHandler onleavepictureinpicture;
- [CEReactions, Reflect] attribute boolean autoPictureInPicture;
- [CEReactions, Reflect] attribute boolean disablePictureInPicture;
+ [CEReactions, Reflect] attribute boolean autoPictureInPicture;
+ [CEReactions, Reflect] attribute boolean disablePictureInPicture;
};
Modified: trunk/Source/WebCore/Modules/quota/DOMWindowQuota.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/quota/DOMWindowQuota.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/quota/DOMWindowQuota.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -25,6 +25,7 @@
[
Conditional=QUOTA,
+ ImplementedBy=DOMWindowQuota
] partial interface DOMWindow {
readonly attribute StorageInfo webkitStorageInfo;
};
Modified: trunk/Source/WebCore/Modules/quota/NavigatorStorageQuota.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/quota/NavigatorStorageQuota.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/quota/NavigatorStorageQuota.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -19,6 +19,7 @@
[
Conditional=QUOTA,
+ ImplementedBy=NavigatorStorageQuota
] partial interface Navigator {
readonly attribute StorageQuota webkitTemporaryStorage;
readonly attribute StorageQuota webkitPersistentStorage;
Modified: trunk/Source/WebCore/Modules/quota/WorkerNavigatorStorageQuota.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/quota/WorkerNavigatorStorageQuota.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/quota/WorkerNavigatorStorageQuota.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -19,6 +19,7 @@
[
Conditional=QUOTA,
+ ImplementedBy=WorkerNavigatorStorageQuota
] partial interface WorkerNavigator {
readonly attribute StorageQuota webkitTemporaryStorage;
readonly attribute StorageQuota webkitPersistentStorage;
Modified: trunk/Source/WebCore/Modules/remoteplayback/HTMLMediaElementRemotePlayback.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/remoteplayback/HTMLMediaElementRemotePlayback.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/remoteplayback/HTMLMediaElementRemotePlayback.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -26,9 +26,8 @@
[
Conditional=VIDEO&WIRELESS_PLAYBACK_TARGET,
EnabledBySetting=RemotePlayback,
-]
-partial interface HTMLMediaElement
-{
+ ImplementedBy=HTMLMediaElementRemotePlayback
+] partial interface HTMLMediaElement {
readonly attribute RemotePlayback remote;
[Reflect] attribute boolean disableRemotePlayback;
};
Modified: trunk/Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -25,7 +25,7 @@
[
Conditional=SPEECH_SYNTHESIS,
+ ImplementedBy=DOMWindowSpeechSynthesis
] partial interface DOMWindow {
-
readonly attribute SpeechSynthesis speechSynthesis;
};
Modified: trunk/Source/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -24,6 +24,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-partial interface DOMWindow {
+[
+ ImplementedBy=DOMWindowWebDatabase
+] partial interface DOMWindow {
[Custom, NotEnumerable] attribute any openDatabase;
};
Modified: trunk/Source/WebCore/Modules/webdriver/NavigatorWebDriver.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/webdriver/NavigatorWebDriver.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/webdriver/NavigatorWebDriver.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -23,6 +23,8 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-partial interface Navigator {
+[
+ ImplementedBy=NavigatorWebDriver
+] partial interface Navigator {
readonly attribute boolean webdriver;
};
Modified: trunk/Source/WebCore/Modules/webgpu/NavigatorGPU.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/webgpu/NavigatorGPU.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/webgpu/NavigatorGPU.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -27,7 +27,8 @@
[
Conditional=WEBGPU,
EnabledAtRuntime=WebGPU,
- Exposed=Window
+ Exposed=Window,
+ ImplementedBy=NavigatorGPU
] partial interface Navigator {
[SameObject] readonly attribute WebGPU gpu;
};
Modified: trunk/Source/WebCore/Modules/webgpu/WebGPUDeviceErrorScopes.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/webgpu/WebGPUDeviceErrorScopes.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/webgpu/WebGPUDeviceErrorScopes.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -28,7 +28,8 @@
[
Conditional=WEBGPU,
- EnabledAtRuntime=WebGPU
+ EnabledAtRuntime=WebGPU,
+ ImplementedBy=WebGPUDeviceErrorScopes
] partial interface WebGPUDevice {
undefined pushErrorScope(GPUErrorFilter filter);
Promise<GPUError?> popErrorScope();
Modified: trunk/Source/WebCore/Modules/webgpu/WebGPUDeviceEventHandler.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/webgpu/WebGPUDeviceEventHandler.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/webgpu/WebGPUDeviceEventHandler.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -26,8 +26,8 @@
[
Conditional=WEBGPU,
- EnabledAtRuntime=WebGPU
+ EnabledAtRuntime=WebGPU,
+ ImplementedBy=WebGPUDeviceEventHandler
] partial interface WebGPUDevice {
- [Exposed=Window]
- attribute EventHandler onuncapturederror;
+ [Exposed=Window] attribute EventHandler onuncapturederror;
};
Modified: trunk/Source/WebCore/Modules/webgpu/WorkerNavigatorGPU.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/webgpu/WorkerNavigatorGPU.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/webgpu/WorkerNavigatorGPU.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -26,7 +26,8 @@
[
Conditional=WEBGPU,
- EnabledAtRuntime=WebGPU
+ EnabledAtRuntime=WebGPU,
+ ImplementedBy=WorkerNavigatorGPU
] partial interface WorkerNavigator {
[SameObject] readonly attribute WebGPU gpu;
};
Modified: trunk/Source/WebCore/Modules/webxr/NavigatorWebXR.idl (266799 => 266800)
--- trunk/Source/WebCore/Modules/webxr/NavigatorWebXR.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/Modules/webxr/NavigatorWebXR.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -25,7 +25,8 @@
[
EnabledAtRuntime=WebXR,
- Conditional=WEBXR
+ Conditional=WEBXR,
+ ImplementedBy=NavigatorWebXR
] partial interface Navigator {
[SecureContext, SameObject] readonly attribute WebXRSystem xr;
};
Modified: trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm (266799 => 266800)
--- trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm 2020-09-09 22:11:30 UTC (rev 266800)
@@ -411,10 +411,6 @@
foreach my $attribute (@{$interface->attributes}) {
next unless $targetInterface->isMixin || shouldPropertyBeExposed($attribute, $targetInterface);
- if ($interface->isPartial && !$interface->isMixin) {
- $attribute->extendedAttributes->{"ImplementedBy"} = $interfaceName if !$attribute->extendedAttributes->{Reflect};
- }
-
if ($interface->isMixin && !$interface->isPartial) {
# Add includes statement specific extended attributes to each attribute.
$object->MergeExtendedAttributesFromSupplemental($includesMap{$interface->type->name}->extendedAttributes, $attribute, "attribute");
@@ -430,10 +426,6 @@
foreach my $operation (@{$interface->operations}) {
next unless $targetInterface->isMixin || shouldPropertyBeExposed($operation, $targetInterface);
- if ($interface->isPartial && !$interface->isMixin) {
- $operation->extendedAttributes->{"ImplementedBy"} = $interfaceName;
- }
-
if ($interface->isMixin && !$interface->isPartial) {
# Add includes statement specific extended attributes to each operation.
$object->MergeExtendedAttributesFromSupplemental($includesMap{$interface->type->name}->extendedAttributes, $operation, "operation");
@@ -449,10 +441,6 @@
foreach my $constant (@{$interface->constants}) {
next unless $targetInterface->isMixin || shouldPropertyBeExposed($constant, $targetInterface);
- if ($interface->isPartial && !$interface->isMixin) {
- $constant->extendedAttributes->{"ImplementedBy"} = $interfaceName;
- }
-
if ($interface->isMixin && !$interface->isPartial) {
# Add includes statement specific extended attributes to each operation.
$object->MergeExtendedAttributesFromSupplemental($includesMap{$interface->type->name}->extendedAttributes, $constant, "constant");
@@ -488,8 +476,6 @@
foreach my $member (@{$dictionary->members}) {
next unless shouldPropertyBeExposed($member, $targetDictionary);
- $member->extendedAttributes->{"ImplementedBy"} = $dictionaryName;
-
# Add interface-wide extended attributes to each member.
$object->MergeExtendedAttributesFromSupplemental($dictionary->extendedAttributes, $member, "dictionary-member");
Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (266799 => 266800)
--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2020-09-09 22:11:30 UTC (rev 266800)
@@ -1618,7 +1618,7 @@
my ($interface, $property, $implementationName, $implExpression, $conditional) = @_;
my $implementedBy = $property->extendedAttributes->{ImplementedBy};
- if ($implementedBy) {
+ if ($implementedBy && !$property->extendedAttributes->{Reflect}) {
AddToImplIncludes("${implementedBy}.h", $conditional);
return "WebCore::${implementedBy}::${implementationName}";
}
@@ -1642,7 +1642,7 @@
{
my ($arguments, $interface, $property, $implExpression, $globalObject, $callFrame, $thisObjectExpression) = @_;
- if ($property->extendedAttributes->{ImplementedBy} && !$property->isStatic) {
+ if ($property->extendedAttributes->{ImplementedBy} && !$property->isStatic && !$property->extendedAttributes->{Reflect}) {
unshift(@$arguments, $implExpression);
}
Modified: trunk/Source/WebCore/bindings/scripts/IDLAttributes.json (266799 => 266800)
--- trunk/Source/WebCore/bindings/scripts/IDLAttributes.json 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/bindings/scripts/IDLAttributes.json 2020-09-09 22:11:30 UTC (rev 266800)
@@ -245,6 +245,10 @@
"contextsAllowed": ["interface", "dictionary", "dictionary-member", "enum", "attribute", "operation"],
"values": ["*"]
},
+ "ImplementedBy": {
+ "contextsAllowed": ["interface", "dictionary", "dictionary-member", "attribute", "operation", "constant"],
+ "values": ["*"]
+ },
"ImplementationLacksVTable": {
"contextsAllowed": ["interface"]
},
Modified: trunk/Source/WebCore/bindings/scripts/test/TestEnabledBySettingSupplemental.idl (266799 => 266800)
--- trunk/Source/WebCore/bindings/scripts/test/TestEnabledBySettingSupplemental.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/bindings/scripts/test/TestEnabledBySettingSupplemental.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -27,7 +27,8 @@
// changes in its output.
[
- EnabledBySetting=TestSettingFromPartialInterface
+ EnabledBySetting=TestSettingFromPartialInterface,
+ ImplementedBy=TestEnabledBySettingSupplemental
] partial interface TestEnabledBySetting {
[EnabledBySetting=TestSettingFromPartialInterfaceAttribute] attribute DOMString supplementalAttribute;
};
Modified: trunk/Source/WebCore/bindings/scripts/test/TestSupplemental.idl (266799 => 266800)
--- trunk/Source/WebCore/bindings/scripts/test/TestSupplemental.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/bindings/scripts/test/TestSupplemental.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -30,6 +30,7 @@
// changes in its output.
[
Conditional=Condition11|Condition12,
+ ImplementedBy=TestSupplemental
] partial interface TestInterface {
static readonly attribute long supplementalStaticReadOnlyAttr;
static attribute DOMString supplementalStaticAttr;
Modified: trunk/Source/WebCore/css/DOMCSSPaintWorklet.idl (266799 => 266800)
--- trunk/Source/WebCore/css/DOMCSSPaintWorklet.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/css/DOMCSSPaintWorklet.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -26,6 +26,7 @@
[
EnabledAtRuntime=CSSPaintingAPI,
Conditional=CSS_PAINTING_API,
+ ImplementedBy=DOMCSSPaintWorklet
] partial interface DOMCSSNamespace {
- [ImplementedAs=ensurePaintWorklet,CallWith=Document] static readonly attribute Worklet paintWorklet;
+ [ImplementedAs=ensurePaintWorklet, CallWith=Document] static readonly attribute Worklet paintWorklet;
};
Modified: trunk/Source/WebCore/css/DOMCSSRegisterCustomProperty.idl (266799 => 266800)
--- trunk/Source/WebCore/css/DOMCSSRegisterCustomProperty.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/css/DOMCSSRegisterCustomProperty.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -24,7 +24,8 @@
*/
[
- EnabledBySetting=CSSCustomPropertiesAndValues
+ EnabledBySetting=CSSCustomPropertiesAndValues,
+ ImplementedBy=DOMCSSRegisterCustomProperty
] partial interface DOMCSSNamespace {
[CallWith=Document, MayThrowException] static undefined registerProperty(DOMCSSCustomPropertyDescriptor descriptor);
};
Modified: trunk/Source/WebCore/dom/DocumentFullscreen.idl (266799 => 266800)
--- trunk/Source/WebCore/dom/DocumentFullscreen.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/dom/DocumentFullscreen.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -23,12 +23,13 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
+// https://fullscreen.spec.whatwg.org/#api
[
Conditional=FULLSCREEN_API,
EnabledBySetting=FullScreen,
- DisabledByQuirk=shouldDisableElementFullscreen
+ DisabledByQuirk=shouldDisableElementFullscreen,
+ ImplementedBy=DocumentFullscreen
] partial interface Document {
- // Extensions from FullScreen API (https://fullscreen.spec.whatwg.org/#api).
// FIXME: Should probably be unprefixed.
readonly attribute boolean webkitFullscreenEnabled;
readonly attribute Element? webkitFullscreenElement;
Modified: trunk/Source/WebCore/dom/DocumentStorageAccess.idl (266799 => 266800)
--- trunk/Source/WebCore/dom/DocumentStorageAccess.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/dom/DocumentStorageAccess.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -25,7 +25,8 @@
[
Conditional=RESOURCE_LOAD_STATISTICS,
- EnabledBySetting=storageAccessAPI
+ EnabledBySetting=storageAccessAPI,
+ ImplementedBy=DocumentStorageAccess
] partial interface Document {
Promise<bool> hasStorageAccess();
Promise<undefined> requestStorageAccess();
Modified: trunk/Source/WebCore/dom/DocumentTouch.idl (266799 => 266800)
--- trunk/Source/WebCore/dom/DocumentTouch.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/dom/DocumentTouch.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -19,7 +19,8 @@
*/
[
- Conditional=TOUCH_EVENTS
+ Conditional=TOUCH_EVENTS,
+ ImplementedBy=DocumentTouch
] partial interface Document {
// FIXME: This has been dropped from the standard now that Touch has a constructor.
[NewObject] Touch createTouch(optional WindowProxy? window = null, optional EventTarget? target = null,
Modified: trunk/Source/WebCore/page/NavigatorIsLoggedIn.idl (266799 => 266800)
--- trunk/Source/WebCore/page/NavigatorIsLoggedIn.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/page/NavigatorIsLoggedIn.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -26,7 +26,8 @@
[
SecureContext,
Exposed=Window,
- EnabledBySetting=IsLoggedInAPI
+ EnabledBySetting=IsLoggedInAPI,
+ ImplementedBy=NavigatorIsLoggedIn
] partial interface Navigator {
Promise<undefined> setLoggedIn();
Promise<undefined> setLoggedOut();
Modified: trunk/Source/WebCore/svg/SVGDocument.idl (266799 => 266800)
--- trunk/Source/WebCore/svg/SVGDocument.idl 2020-09-09 21:30:35 UTC (rev 266799)
+++ trunk/Source/WebCore/svg/SVGDocument.idl 2020-09-09 22:11:30 UTC (rev 266800)
@@ -19,6 +19,8 @@
* Boston, MA 02110-1301, USA.
*/
-partial interface Document {
+[
+ ImplementedBy=SVGDocument
+] partial interface Document {
readonly attribute SVGSVGElement? rootElement;
};