[webkit-changes] [WebKit/WebKit] ef78ea: Generate serializes for ObjectIdentifier (by addin...

Brady Eidson noreply at github.com
Thu Sep 28 18:06:38 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ef78eaa134b5c063abbe9664a9b365eca1ef82e8
      https://github.com/WebKit/WebKit/commit/ef78eaa134b5c063abbe9664a9b365eca1ef82e8
  Author: Brady Eidson <beidson at apple.com>
  Date:   2023-09-28 (Thu, 28 Sep 2023)

  Changed paths:
    M Source/JavaScriptCore/runtime/Microtask.h
    M Source/WTF/wtf/ObjectIdentifier.h
    M Source/WebCore/Modules/cache/DOMCacheIdentifier.h
    M Source/WebCore/Modules/fetch/FetchIdentifier.h
    M Source/WebCore/Modules/filesystemaccess/FileSystemHandleIdentifier.h
    M Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandleIdentifier.h
    M Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnectionCallbackIdentifier.h
    M Source/WebCore/Modules/mediastream/RTCRtpScriptTransformer.h
    M Source/WebCore/Modules/permissions/MainThreadPermissionObserverIdentifier.h
    M Source/WebCore/Modules/push-api/PushSubscriptionIdentifier.h
    M Source/WebCore/Modules/speech/SpeechRecognitionConnectionClientIdentifier.h
    M Source/WebCore/Modules/web-locks/WebLockIdentifier.h
    M Source/WebCore/Modules/websockets/WebSocketIdentifier.h
    M Source/WebCore/accessibility/AXCoreObject.h
    M Source/WebCore/dom/BroadcastChannelIdentifier.h
    M Source/WebCore/dom/ElementIdentifier.h
    M Source/WebCore/dom/PortIdentifier.h
    M Source/WebCore/editing/TextManipulationItemIdentifier.h
    M Source/WebCore/editing/TextManipulationToken.h
    M Source/WebCore/editing/cocoa/AttributedString.h
    M Source/WebCore/page/GlobalWindowIdentifier.h
    M Source/WebCore/page/SecurityOriginData.h
    M Source/WebCore/page/cocoa/ImageOverlayDataDetectionResultIdentifier.h
    M Source/WebCore/platform/MediaSessionGroupIdentifier.h
    M Source/WebCore/platform/MediaUniqueIdentifier.h
    M Source/WebCore/platform/ProcessIdentifier.h
    M Source/WebCore/platform/graphics/ImageDecoderIdentifier.h
    M Source/WebCore/platform/graphics/InbandGenericCueIdentifier.h
    M Source/WebCore/platform/graphics/LayerHostingContextIdentifier.h
    M Source/WebCore/platform/graphics/RenderingResourceIdentifier.h
    M Source/WebCore/platform/graphics/mac/DisplayConfigurationMonitor.h
    M Source/WebCore/platform/mediastream/RTCDataChannelLocalIdentifier.h
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceIdentifier.h
    M Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCSocketIdentifier.h
    M Source/WebCore/platform/text/TextCheckingRequestIdentifier.h
    M Source/WebCore/workers/service/ServiceWorkerIdentifier.h
    M Source/WebCore/workers/service/ServiceWorkerTypes.h
    M Source/WebCore/workers/service/background-fetch/BackgroundFetchRecordIdentifier.h
    M Source/WebCore/workers/shared/SharedWorkerIdentifier.h
    M Source/WebCore/worklets/WorkletGlobalScope.h
    M Source/WebKit/GPUProcess/media/RemoteMediaResourceIdentifier.h
    M Source/WebKit/GPUProcess/media/RemoteSourceBufferIdentifier.h
    M Source/WebKit/GPUProcess/media/TrackPrivateRemoteIdentifier.h
    M Source/WebKit/NetworkProcess/CustomProtocols/LegacyCustomProtocolID.h
    M Source/WebKit/NetworkProcess/Downloads/DownloadID.h
    M Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm
    M Source/WebKit/Platform/IPC/Connection.h
    M Source/WebKit/Platform/IPC/DaemonCoders.cpp
    M Source/WebKit/Scripts/generate-serializers.py
    M Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.cpp
    M Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.h
    M Source/WebKit/Scripts/webkit/tests/SerializedTypeInfo.cpp
    M Source/WebKit/Scripts/webkit/tests/TestSerializedType.serialization.in
    M Source/WebKit/Shared/ContentWorldShared.h
    M Source/WebKit/Shared/Extensions/WebExtensionControllerIdentifier.h
    M Source/WebKit/Shared/ShapeDetectionIdentifier.h
    M Source/WebKit/Shared/WTFArgumentCoders.serialization.in
    M Source/WebKit/Shared/WebGPU/WebGPUIdentifier.h
    M Source/WebKit/Shared/WebsiteData/QuotaIncreaseRequestIdentifier.h
    M Source/WebKit/Shared/XR/XRDeviceIdentifier.h
    M Source/WebKit/Shared/wc/WCContentBufferIdentifier.h
    M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
    M Source/WebKit/WebProcess/GPU/graphics/GraphicsContextGLIdentifier.h
    M Source/WebKit/WebProcess/GPU/graphics/RenderingBackendIdentifier.h
    M Source/WebKit/WebProcess/GPU/graphics/wc/WCLayerTreeHostIdentifier.h
    M Source/WebKit/WebProcess/GPU/media/RemoteAudioHardwareListenerIdentifier.h
    M Source/WebKit/WebProcess/GPU/media/RemoteAudioSessionIdentifier.h
    M Source/WebKit/WebProcess/GPU/media/RemoteCDMIdentifier.h
    M Source/WebKit/WebProcess/GPU/media/RemoteCDMInstanceIdentifier.h
    M Source/WebKit/WebProcess/GPU/media/RemoteCDMInstanceSessionIdentifier.h
    M Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMIdentifier.h
    M Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMSessionIdentifier.h
    M Source/WebKit/WebProcess/GPU/media/RemoteMediaSourceIdentifier.h
    M Source/WebKit/WebProcess/GPU/media/RemoteRemoteCommandListenerIdentifier.h
    M Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameIdentifier.h
    M Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitIdentifier.h
    M Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderIdentifier.h
    M Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayerIdentifier.h
    M Source/WebKit/WebProcess/GPU/webrtc/VideoDecoderIdentifier.h
    M Source/WebKit/WebProcess/GPU/webrtc/VideoEncoderIdentifier.h
    M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCResolverIdentifier.h
    M Source/WebKit/WebProcess/Storage/RetrieveRecordResponseBodyCallbackIdentifier.h
    M Source/WebKit/WebProcess/WebStorage/StorageAreaImplIdentifier.h
    M Source/WebKit/WebProcess/WebStorage/StorageAreaMapIdentifier.h
    M Source/WebKit/WebProcess/WebStorage/StorageNamespaceIdentifier.h

  Log Message:
  -----------
  Generate serializes for ObjectIdentifier (by adding the ability to generate serializers for template specializations)
https://bugs.webkit.org/show_bug.cgi?id=262251
rdar://116159092

Reviewed by Alex Christensen.

This seems like a huge, complicated patch just to add generated serialization of what is essentially a uint64_t wrapper.

And it is.

But in doing so, it let me flesh out adding support for templates to generate-serializers.py
Lack of template support is something we've had to work around before, but no more! Hopefully!

(Sadly this also had to touch all the sites for identifiers that tagged with a raw enum,
as raw enums cannot be forward declared)

* Source/JavaScriptCore/runtime/Microtask.h:
(): Deleted.
* Source/WTF/wtf/ObjectIdentifier.h:
(WTF::ObjectIdentifierGenericBase::encode const): Deleted.
(WTF::ObjectIdentifierGenericBase::decode): Deleted.
(WTF::ObjectIdentifierGeneric::decode): Deleted.
* Source/WebCore/Modules/cache/DOMCacheIdentifier.h:
(): Deleted.
* Source/WebCore/Modules/fetch/FetchIdentifier.h:
(): Deleted.
* Source/WebCore/Modules/filesystemaccess/FileSystemHandleIdentifier.h:
(): Deleted.
* Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandleIdentifier.h:
(): Deleted.
* Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnectionCallbackIdentifier.h:
(): Deleted.
* Source/WebCore/Modules/mediastream/RTCRtpScriptTransformer.h:
* Source/WebCore/Modules/permissions/MainThreadPermissionObserverIdentifier.h:
(): Deleted.
* Source/WebCore/Modules/push-api/PushSubscriptionIdentifier.h:
(): Deleted.
* Source/WebCore/Modules/speech/SpeechRecognitionConnectionClientIdentifier.h:
(): Deleted.
* Source/WebCore/Modules/web-locks/WebLockIdentifier.h:
(): Deleted.
* Source/WebCore/Modules/websockets/WebSocketIdentifier.h:
(): Deleted.
* Source/WebCore/accessibility/AXCoreObject.h:
* Source/WebCore/dom/BroadcastChannelIdentifier.h:
(): Deleted.
* Source/WebCore/dom/ElementIdentifier.h:
(): Deleted.
* Source/WebCore/dom/PortIdentifier.h:
(): Deleted.
* Source/WebCore/editing/TextManipulationItemIdentifier.h:
(): Deleted.
* Source/WebCore/editing/TextManipulationToken.h:
* Source/WebCore/editing/cocoa/AttributedString.h:
* Source/WebCore/page/GlobalWindowIdentifier.h:
(): Deleted.
* Source/WebCore/page/SecurityOriginData.h:
(): Deleted.
* Source/WebCore/page/cocoa/ImageOverlayDataDetectionResultIdentifier.h:
(): Deleted.
* Source/WebCore/platform/MediaSessionGroupIdentifier.h:
(): Deleted.
* Source/WebCore/platform/MediaUniqueIdentifier.h:
(): Deleted.
* Source/WebCore/platform/ProcessIdentifier.h:
(): Deleted.
* Source/WebCore/platform/graphics/ImageDecoderIdentifier.h:
(): Deleted.
* Source/WebCore/platform/graphics/InbandGenericCueIdentifier.h:
(): Deleted.
* Source/WebCore/platform/graphics/LayerHostingContextIdentifier.h:
(): Deleted.
* Source/WebCore/platform/graphics/RenderingResourceIdentifier.h:
(): Deleted.
* Source/WebCore/platform/graphics/mac/DisplayConfigurationMonitor.h:
* Source/WebCore/platform/mediastream/RTCDataChannelLocalIdentifier.h:
(): Deleted.
* Source/WebCore/platform/mediastream/RealtimeMediaSourceIdentifier.h:
(): Deleted.
* Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCSocketIdentifier.h:
(): Deleted.
* Source/WebCore/platform/text/TextCheckingRequestIdentifier.h:
(): Deleted.
* Source/WebCore/workers/service/ServiceWorkerIdentifier.h:
(): Deleted.
* Source/WebCore/workers/service/ServiceWorkerTypes.h:
(): Deleted.
* Source/WebCore/workers/service/background-fetch/BackgroundFetchRecordIdentifier.h:
(): Deleted.
* Source/WebCore/workers/shared/SharedWorkerIdentifier.h:
(): Deleted.
* Source/WebCore/worklets/WorkletGlobalScope.h:
* Source/WebKit/GPUProcess/media/RemoteMediaResourceIdentifier.h:
(): Deleted.
* Source/WebKit/GPUProcess/media/RemoteSourceBufferIdentifier.h:
(): Deleted.
* Source/WebKit/GPUProcess/media/TrackPrivateRemoteIdentifier.h:
(): Deleted.
* Source/WebKit/NetworkProcess/CustomProtocols/LegacyCustomProtocolID.h:
(): Deleted.
* Source/WebKit/NetworkProcess/Downloads/DownloadID.h:
(): Deleted.
* Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm:
(): Deleted.
* Source/WebKit/Platform/IPC/Connection.h:
* Source/WebKit/Platform/IPC/DaemonCoders.cpp:
(WebKit::Daemon::Coder<WebCore::PushSubscriptionIdentifier>::encode):
(WebKit::Daemon::Coder<WebCore::PushSubscriptionIdentifier>::decode):
* Source/WebKit/Scripts/generate-serializers.py:
(Template):
(Template.__init__):
(Template.forward_declaration):
(Template.specialization):
(SerializedType.__init__):
(SerializedType.should_skip_forward_declare):
(one_argument_coder_declaration):
(argument_coder_declarations):
(generate_header):
(construct_type):
(construct_type.is):
(generate_one_impl):
(generate_impl):
(parse_serialized_types):
* Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.cpp:
(IPC::ArgumentCoder<WebKit::TemplateTest<WebKit::Fabulous>>::encode):
(IPC::ArgumentCoder<WebKit::TemplateTest<WebKit::Fabulous>>::decode):
(IPC::ArgumentCoder<WebKit::TemplateTest<WebCore::Amazing>>::encode):
(IPC::ArgumentCoder<WebKit::TemplateTest<WebCore::Amazing>>::decode):
(IPC::ArgumentCoder<WebKit::TemplateTest<JSC::Incredible>>::encode):
(IPC::ArgumentCoder<WebKit::TemplateTest<JSC::Incredible>>::decode):
(IPC::ArgumentCoder<WebKit::TemplateTest<Testing::StorageSize>>::encode):
(IPC::ArgumentCoder<WebKit::TemplateTest<Testing::StorageSize>>::decode):
* Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.h:
* Source/WebKit/Scripts/webkit/tests/SerializedTypeInfo.cpp:
(WebKit::allSerializedTypes):
* Source/WebKit/Scripts/webkit/tests/TestSerializedType.serialization.in:
* Source/WebKit/Shared/ContentWorldShared.h:
(): Deleted.
* Source/WebKit/Shared/Extensions/WebExtensionControllerIdentifier.h:
(): Deleted.
* Source/WebKit/Shared/ShapeDetectionIdentifier.h:
(): Deleted.
* Source/WebKit/Shared/WTFArgumentCoders.serialization.in:
* Source/WebKit/Shared/WebGPU/WebGPUIdentifier.h:
(): Deleted.
* Source/WebKit/Shared/WebsiteData/QuotaIncreaseRequestIdentifier.h:
(): Deleted.
* Source/WebKit/Shared/XR/XRDeviceIdentifier.h:
(): Deleted.
* Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h:
* Source/WebKit/UIProcess/WebURLSchemeHandler.cpp:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
* Source/WebKit/WebProcess/GPU/graphics/GraphicsContextGLIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/RenderingBackendIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/media/RemoteAudioHardwareListenerIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/media/RemoteAudioSessionIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/media/RemoteCDMIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/media/RemoteCDMInstanceIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/media/RemoteCDMInstanceSessionIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMSessionIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/media/RemoteMediaSourceIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/media/RemoteRemoteCommandListenerIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayerIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/webrtc/VideoDecoderIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/GPU/webrtc/VideoEncoderIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCResolverIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/Storage/RetrieveRecordResponseBodyCallbackIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/WebStorage/StorageAreaImplIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/WebStorage/StorageAreaMapIdentifier.h:
(): Deleted.
* Source/WebKit/WebProcess/WebStorage/StorageNamespaceIdentifier.h:
(): Deleted.

Canonical link: https://commits.webkit.org/268623@main




More information about the webkit-changes mailing list