Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1240a421fe562bc191b7b82822b4cd32440bdd47
https://github.com/WebKit/WebKit/commit/1240a421fe562bc191b7b82822b4cd32440bdd47
Author: Devin Rousso <[email protected]>
Date: 2026-08-12 (Wed, 12 Aug 2026)
Changed paths:
A LayoutTests/fast/webgpu/invalid-command-encoder-clear-buffer-expected.txt
A LayoutTests/fast/webgpu/invalid-command-encoder-clear-buffer.html
A LayoutTests/inspector/canvas/console-record-webgpu-expected.txt
A LayoutTests/inspector/canvas/console-record-webgpu.html
M LayoutTests/inspector/canvas/recording-2d-full-expected.txt
M LayoutTests/inspector/canvas/recording-bitmaprenderer-full-expected.txt
M LayoutTests/inspector/canvas/recording-html-2d.html
M
LayoutTests/inspector/canvas/recording-offscreen-bitmaprenderer-full-expected.txt
M
LayoutTests/inspector/canvas/recording-offscreen-canvas-2d-full-expected.txt
M
LayoutTests/inspector/canvas/recording-offscreen-webgl-full-expected.txt
M LayoutTests/inspector/canvas/recording-offscreen-webgl2-full-expected.txt
M LayoutTests/inspector/canvas/recording-webgl-full-expected.txt
M LayoutTests/inspector/canvas/recording-webgl-full.html
M LayoutTests/inspector/canvas/recording-webgl2-full-expected.txt
R LayoutTests/inspector/canvas/recording-webgpu-expected.txt
A LayoutTests/inspector/canvas/recording-webgpu-frameCount-expected.txt
A LayoutTests/inspector/canvas/recording-webgpu-frameCount.html
A LayoutTests/inspector/canvas/recording-webgpu-full-expected.txt
A LayoutTests/inspector/canvas/recording-webgpu-full.html
A LayoutTests/inspector/canvas/recording-webgpu-memoryLimit-expected.txt
A LayoutTests/inspector/canvas/recording-webgpu-memoryLimit.html
R LayoutTests/inspector/canvas/recording-webgpu.html
M LayoutTests/inspector/canvas/recording.html
M
LayoutTests/inspector/canvas/resources/recording-2d.js
M LayoutTests/inspector/canvas/resources/recording-utilities.js
M LayoutTests/inspector/canvas/resources/recording-webgl.js
M LayoutTests/inspector/canvas/resources/recording-webgl2.js
A LayoutTests/inspector/canvas/resources/recording-webgpu.js
M LayoutTests/platform/glib/TestExpectations
M LayoutTests/platform/win/TestExpectations
M Source/JavaScriptCore/inspector/protocol/Recording.json
M Source/WTF/wtf/JSONValues.cpp
M Source/WTF/wtf/JSONValues.h
A Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutDescriptor.cpp
M Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutDescriptor.h
A Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutEntry.cpp
M Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutEntry.h
A Source/WebCore/Modules/WebGPU/GPUBlendComponent.cpp
M Source/WebCore/Modules/WebGPU/GPUBlendComponent.h
A Source/WebCore/Modules/WebGPU/GPUBlendState.cpp
M
Source/WebCore/Modules/WebGPU/GPUBlendState.h
A Source/WebCore/Modules/WebGPU/GPUBufferBindingLayout.cpp
M Source/WebCore/Modules/WebGPU/GPUBufferBindingLayout.h
A Source/WebCore/Modules/WebGPU/GPUBufferDescriptor.cpp
M Source/WebCore/Modules/WebGPU/GPUBufferDescriptor.h
A Source/WebCore/Modules/WebGPU/GPUColorDict.cpp
M Source/WebCore/Modules/WebGPU/GPUColorDict.h
A Source/WebCore/Modules/WebGPU/GPUColorTargetState.cpp
M Source/WebCore/Modules/WebGPU/GPUColorTargetState.h
A Source/WebCore/Modules/WebGPU/GPUComputePassDescriptor.cpp
M Source/WebCore/Modules/WebGPU/GPUComputePassDescriptor.h
A Source/WebCore/Modules/WebGPU/GPUComputePassTimestampWrites.cpp
M Source/WebCore/Modules/WebGPU/GPUComputePassTimestampWrites.h
A Source/WebCore/Modules/WebGPU/GPUCopyElementImageDestination.cpp
M Source/WebCore/Modules/WebGPU/GPUCopyElementImageDestination.h
A Source/WebCore/Modules/WebGPU/GPUCopyElementImageSource.cpp
M Source/WebCore/Modules/WebGPU/GPUCopyElementImageSource.h
A Source/WebCore/Modules/WebGPU/GPUDepthStencilState.cpp
M Source/WebCore/Modules/WebGPU/GPUDepthStencilState.h
A Source/WebCore/Modules/WebGPU/GPUExtent3DDict.cpp
M Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h
A Source/WebCore/Modules/WebGPU/GPUExternalTextureBindingLayout.cpp
M Source/WebCore/Modules/WebGPU/GPUExternalTextureBindingLayout.h
A Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.cpp
M Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.h
A Source/WebCore/Modules/WebGPU/GPUFragmentState.cpp
M Source/WebCore/Modules/WebGPU/GPUFragmentState.h
A Source/WebCore/Modules/WebGPU/GPUImageCopyBuffer.cpp
M Source/WebCore/Modules/WebGPU/GPUImageCopyBuffer.h
A Source/WebCore/Modules/WebGPU/GPUImageCopyExternalImage.cpp
M Source/WebCore/Modules/WebGPU/GPUImageCopyExternalImage.h
A
Source/WebCore/Modules/WebGPU/GPUImageCopyTexture.cpp
M Source/WebCore/Modules/WebGPU/GPUImageCopyTexture.h
A Source/WebCore/Modules/WebGPU/GPUImageCopyTextureTagged.cpp
M Source/WebCore/Modules/WebGPU/GPUImageCopyTextureTagged.h
A Source/WebCore/Modules/WebGPU/GPUImageDataLayout.cpp
M Source/WebCore/Modules/WebGPU/GPUImageDataLayout.h
A Source/WebCore/Modules/WebGPU/GPUMultisampleState.cpp
M Source/WebCore/Modules/WebGPU/GPUMultisampleState.h
A Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.cpp
M Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.h
A Source/WebCore/Modules/WebGPU/GPUOrigin2DDict.cpp
M Source/WebCore/Modules/WebGPU/GPUOrigin2DDict.h
A Source/WebCore/Modules/WebGPU/GPUOrigin3DDict.cpp
M Source/WebCore/Modules/WebGPU/GPUOrigin3DDict.h
A Source/WebCore/Modules/WebGPU/GPUPipelineDescriptorBase.cpp
M Source/WebCore/Modules/WebGPU/GPUPipelineDescriptorBase.h
A
Source/WebCore/Modules/WebGPU/GPUPipelineLayoutDescriptor.cpp
M Source/WebCore/Modules/WebGPU/GPUPipelineLayoutDescriptor.h
A Source/WebCore/Modules/WebGPU/GPUPrimitiveState.cpp
M Source/WebCore/Modules/WebGPU/GPUPrimitiveState.h
A Source/WebCore/Modules/WebGPU/GPUProgrammableStage.cpp
M Source/WebCore/Modules/WebGPU/GPUProgrammableStage.h
A Source/WebCore/Modules/WebGPU/GPUQuerySetDescriptor.cpp
M Source/WebCore/Modules/WebGPU/GPUQuerySetDescriptor.h
A Source/WebCore/Modules/WebGPU/GPURenderBundleEncoderDescriptor.cpp
M Source/WebCore/Modules/WebGPU/GPURenderBundleEncoderDescriptor.h
A Source/WebCore/Modules/WebGPU/GPURenderPassColorAttachment.cpp
M Source/WebCore/Modules/WebGPU/GPURenderPassColorAttachment.h
A Source/WebCore/Modules/WebGPU/GPURenderPassDepthStencilAttachment.cpp
M Source/WebCore/Modules/WebGPU/GPURenderPassDepthStencilAttachment.h
A Source/WebCore/Modules/WebGPU/GPURenderPassDescriptor.cpp
M
Source/WebCore/Modules/WebGPU/GPURenderPassDescriptor.h
A Source/WebCore/Modules/WebGPU/GPURenderPassLayout.cpp
M Source/WebCore/Modules/WebGPU/GPURenderPassLayout.h
A Source/WebCore/Modules/WebGPU/GPURenderPassTimestampWrites.cpp
M Source/WebCore/Modules/WebGPU/GPURenderPassTimestampWrites.h
A Source/WebCore/Modules/WebGPU/GPURenderPipelineDescriptor.cpp
M Source/WebCore/Modules/WebGPU/GPURenderPipelineDescriptor.h
A Source/WebCore/Modules/WebGPU/GPUSamplerBindingLayout.cpp
M Source/WebCore/Modules/WebGPU/GPUSamplerBindingLayout.h
A Source/WebCore/Modules/WebGPU/GPUSamplerDescriptor.cpp
M Source/WebCore/Modules/WebGPU/GPUSamplerDescriptor.h
A Source/WebCore/Modules/WebGPU/GPUShaderModuleCompilationHint.cpp
M Source/WebCore/Modules/WebGPU/GPUShaderModuleCompilationHint.h
A Source/WebCore/Modules/WebGPU/GPUShaderModuleDescriptor.cpp
M Source/WebCore/Modules/WebGPU/GPUShaderModuleDescriptor.h
A
Source/WebCore/Modules/WebGPU/GPUStencilFaceState.cpp
M Source/WebCore/Modules/WebGPU/GPUStencilFaceState.h
A Source/WebCore/Modules/WebGPU/GPUStorageTextureBindingLayout.cpp
M Source/WebCore/Modules/WebGPU/GPUStorageTextureBindingLayout.h
A Source/WebCore/Modules/WebGPU/GPUTextureBindingLayout.cpp
M Source/WebCore/Modules/WebGPU/GPUTextureBindingLayout.h
A Source/WebCore/Modules/WebGPU/GPUTextureDescriptor.cpp
M Source/WebCore/Modules/WebGPU/GPUTextureDescriptor.h
A Source/WebCore/Modules/WebGPU/GPUTextureViewDescriptor.cpp
M Source/WebCore/Modules/WebGPU/GPUTextureViewDescriptor.h
A Source/WebCore/Modules/WebGPU/GPUVertexAttribute.cpp
M Source/WebCore/Modules/WebGPU/GPUVertexAttribute.h
A Source/WebCore/Modules/WebGPU/GPUVertexBufferLayout.cpp
M Source/WebCore/Modules/WebGPU/GPUVertexBufferLayout.h
A Source/WebCore/Modules/WebGPU/GPUVertexState.cpp
M Source/WebCore/Modules/WebGPU/GPUVertexState.h
M
Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
M Source/WebCore/bindings/scripts/test/JS/JSTestCallTracer.cpp
M Source/WebCore/bindings/scripts/test/TestCallTracer.idl
A Source/WebCore/dom/DOMPointInit.cpp
M Source/WebCore/dom/DOMPointInit.h
A Source/WebCore/html/ImageDataSettings.cpp
M Source/WebCore/html/ImageDataSettings.h
A Source/WebCore/html/canvas/WebGLCopyElementImageConfig.cpp
M Source/WebCore/html/canvas/WebGLCopyElementImageConfig.h
M Source/WebCore/inspector/InspectorCanvas.cpp
M Source/WebCore/inspector/InspectorCanvas.h
M Source/WebCore/inspector/InspectorCanvasArguments.cpp
M Source/WebCore/inspector/InspectorCanvasArguments.h
M Source/WebCore/inspector/InspectorCanvasCallTracer.cpp
M Source/WebCore/inspector/InspectorCanvasCallTracer.h
M Source/WebCore/inspector/RecordingSwizzleType.h
M
Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp
M Source/WebCore/inspector/agents/InspectorCanvasAgent.h
M Source/WebGPU/WebGPU/CommandEncoder.mm
M Source/WebInspectorUI/UserInterface/Models/Recording.js
M Source/WebInspectorUI/UserInterface/Models/RecordingAction.js
M Source/WebInspectorUI/UserInterface/Models/ScriptSyntaxTree.js
M Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.css
M Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.js
M Tools/TestWebKitAPI/Tests/WTF/JSONValue.cpp
Log Message:
-----------
Web Inspector: Canvas: record object arguments and result objects
https://bugs.webkit.org/show_bug.cgi?id=321489
Reviewed by Mike Wyrzykowski.
* Source/JavaScriptCore/inspector/protocol/Recording.json:
* Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementationFunctionCall):
(GenerateCallTracer):
* Source/WebCore/inspector/RecordingSwizzleType.h:
*
Source/WebCore/inspector/InspectorCanvasArguments.h:
(WebCore::InspectorCanvasArgumentProcessor<IDLType>::toJSON): Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLType>::operator()): Added.
(WebCore::InspectorCanvasNullableArgumentProcessor<IDLType>::extractValue):
Added.
(WebCore::InspectorCanvasNullableArgumentProcessor<IDLType>::toJSON): Added.
(WebCore::InspectorCanvasNullableArgumentProcessor<IDLType>::operator()): Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLNullable<IDLType>>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLOptional<IDLType>>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLLegacyNullToEmptyStringAdaptor<IDLType>>::toJSON):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLEnforceRangeAdaptor<IDLType>>::toJSON):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLAllowSharedAdaptor<IDLType>>::toJSON):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLEnumeration<IDLType>>::toJSON):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDOMString>::toJSON): Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLBoolean>::toJSON): Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLType>::toJSON): Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLUnion<IDLTypes...>>::toJSON):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLUnion<IDLTypes...>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLSequence<IDLType,
inlineCapacity>>::toJSON): Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLSequence<IDLType,
inlineCapacity>>::operator()): Added.
* Source/WebCore/inspector/InspectorCanvasArguments.cpp:
(WebCore::process): Added.
(WebCore::processJSON): Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPUComputePassDescriptor>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPUComputePipelineDescriptor>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPUCopyElementImageDestination>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPUCopyElementImageSource>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPUExternalTextureDescriptor>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPUImageCopyBuffer>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPUImageCopyExternalImage>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPUImageCopyTexture>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPUImageCopyTextureTagged>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPUPipelineLayoutDescriptor>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPURenderPassDescriptor>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPUBindGroupDescriptor>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPURenderPipelineDescriptor>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<GPUShaderModuleDescriptor>>::operator()):
Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<ImageDataSettings>>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLDictionary<WebGLCopyElementImageConfig>>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLCanvasImageSourceUnion>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLCanvasStyleVariantUnion>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLCanvasPathRadiusUnion>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLCanvasElementImageSourceUnion>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLTexImageSourceUnion>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLBufferDataSourceUnion>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLFloat32ListUnion>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLInt32ListUnion>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLUint32ListUnion>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLSequence<IDLDOMString>>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLSequence<IDLUnrestrictedDouble>>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLSequence<IDLUnrestrictedFloat>>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLSequence<IDLUnsignedLong>>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLSequence<IDLLong>>::operator()):
Deleted.
(WebCore::InspectorCanvasArgumentProcessor<IDLSequence<IDLCanvasPathRadiusUnion>>::operator()):
Deleted.
* Source/WebCore/inspector/InspectorCanvasCallTracer.h:
(WebCore::InspectorCanvasCallTracer::processArgument):
(WebCore::InspectorCanvasCallTracer::recordActionResult): Added.
* Source/WebCore/inspector/InspectorCanvasCallTracer.cpp:
(WebCore::InspectorCanvasCallTracer::recordActionResult): Added.
* Source/WebCore/inspector/agents/InspectorCanvasAgent.h:
* Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::recordActionResult): Added.
* Source/WebCore/inspector/InspectorCanvas.h:
* Source/WebCore/inspector/InspectorCanvas.cpp:
(WebCore::buildActionObject): Renamed from `buildActionReceiver`.
(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::recordActionResult): Added.
(WebCore::InspectorCanvas::appendActionSnapshotIfNeeded):
Record the result value of `CallTracer` calls via
`CallTracer::recordActionResult` (but only if an interface).
Replace the limited `Array` with a more generic `JSON` that can also handle
objects (deduplicated by the stringified form).
Handle non-serializable arrays via a new `ArrayOf` that contains `[index,
swizzle]` pairs (vs `JSON` which is just raw values).
Handle non-serializable objects via distinct swizzle types (e.g.
`GPUBindGroupDescriptor`, `GPURenderPipelineDescriptor`, etc.).
Drive-by: process `union` generically instead of needing an override for each
`variant`.
Drive-by: replace `DOMPointInit` with `ArrayOf` since it wasn't used correctly
before anyways.
* Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.h:
* Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.cpp: Added.
(WebCore::GPUObjectDescriptorBase::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUPipelineDescriptorBase.h:
* Source/WebCore/Modules/WebGPU/GPUPipelineDescriptorBase.cpp: Added.
(WebCore::GPUPipelineDescriptorBase::toJSON
const):
* Source/WebCore/Modules/WebGPU/GPUProgrammableStage.h:
* Source/WebCore/Modules/WebGPU/GPUProgrammableStage.cpp: Added.
(WebCore::GPUProgrammableStage::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUColorDict.h:
* Source/WebCore/Modules/WebGPU/GPUColorDict.cpp: Added.
(WebCore::GPUColorDict::toJSON const):
(WebCore::toJSON):
* Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h:
* Source/WebCore/Modules/WebGPU/GPUExtent3DDict.cpp: Added.
(WebCore::GPUExtent3DDict::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUOrigin2DDict.h:
* Source/WebCore/Modules/WebGPU/GPUOrigin2DDict.cpp: Added.
(WebCore::GPUOrigin2DDict::toJSON const):
(WebCore::toJSON):
* Source/WebCore/Modules/WebGPU/GPUOrigin3DDict.h:
* Source/WebCore/Modules/WebGPU/GPUOrigin3DDict.cpp: Added.
(WebCore::GPUOrigin3DDict::toJSON const):
(WebCore::toJSON):
* Source/WebCore/Modules/WebGPU/GPUImageDataLayout.h:
* Source/WebCore/Modules/WebGPU/GPUImageDataLayout.cpp:
Added.
(WebCore::GPUImageDataLayout::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUBufferDescriptor.h:
* Source/WebCore/Modules/WebGPU/GPUBufferDescriptor.cpp: Added.
(WebCore::GPUBufferDescriptor::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUQuerySetDescriptor.h:
* Source/WebCore/Modules/WebGPU/GPUQuerySetDescriptor.cpp: Added.
(WebCore::GPUQuerySetDescriptor::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUSamplerDescriptor.h:
* Source/WebCore/Modules/WebGPU/GPUSamplerDescriptor.cpp: Added.
(WebCore::GPUSamplerDescriptor::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUTextureDescriptor.h:
* Source/WebCore/Modules/WebGPU/GPUTextureDescriptor.cpp: Added.
(WebCore::GPUTextureDescriptor::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUTextureViewDescriptor.h:
* Source/WebCore/Modules/WebGPU/GPUTextureViewDescriptor.cpp: Added.
(WebCore::GPUTextureViewDescriptor::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUBufferBindingLayout.h:
*
Source/WebCore/Modules/WebGPU/GPUBufferBindingLayout.cpp: Added.
(WebCore::GPUBufferBindingLayout::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUExternalTextureBindingLayout.h:
* Source/WebCore/Modules/WebGPU/GPUExternalTextureBindingLayout.cpp: Added.
(WebCore::GPUExternalTextureBindingLayout::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUSamplerBindingLayout.h:
* Source/WebCore/Modules/WebGPU/GPUSamplerBindingLayout.cpp: Added.
(WebCore::GPUSamplerBindingLayout::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUStorageTextureBindingLayout.h:
* Source/WebCore/Modules/WebGPU/GPUStorageTextureBindingLayout.cpp: Added.
(WebCore::GPUStorageTextureBindingLayout::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUTextureBindingLayout.h:
* Source/WebCore/Modules/WebGPU/GPUTextureBindingLayout.cpp: Added.
(WebCore::GPUTextureBindingLayout::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutEntry.h:
*
Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutEntry.cpp: Added.
(WebCore::GPUBindGroupLayoutEntry::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutDescriptor.h:
* Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutDescriptor.cpp: Added.
(WebCore::GPUBindGroupLayoutDescriptor::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUBlendComponent.h:
* Source/WebCore/Modules/WebGPU/GPUBlendComponent.cpp: Added.
(WebCore::GPUBlendComponent::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUBlendState.h:
* Source/WebCore/Modules/WebGPU/GPUBlendState.cpp: Added.
(WebCore::GPUBlendState::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUColorTargetState.h:
* Source/WebCore/Modules/WebGPU/GPUColorTargetState.cpp: Added.
(WebCore::GPUColorTargetState::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUStencilFaceState.h:
* Source/WebCore/Modules/WebGPU/GPUStencilFaceState.cpp: Added.
(WebCore::GPUStencilFaceState::toJSON const):
*
Source/WebCore/Modules/WebGPU/GPUDepthStencilState.h:
* Source/WebCore/Modules/WebGPU/GPUDepthStencilState.cpp: Added.
(WebCore::GPUDepthStencilState::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUMultisampleState.h:
* Source/WebCore/Modules/WebGPU/GPUMultisampleState.cpp: Added.
(WebCore::GPUMultisampleState::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUPrimitiveState.h:
* Source/WebCore/Modules/WebGPU/GPUPrimitiveState.cpp: Added.
(WebCore::GPUPrimitiveState::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUVertexAttribute.h:
* Source/WebCore/Modules/WebGPU/GPUVertexAttribute.cpp: Added.
(WebCore::GPUVertexAttribute::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUVertexBufferLayout.h:
* Source/WebCore/Modules/WebGPU/GPUVertexBufferLayout.cpp: Added.
(WebCore::GPUVertexBufferLayout::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUVertexState.h:
* Source/WebCore/Modules/WebGPU/GPUVertexState.cpp: Added.
(WebCore::GPUVertexState::toJSON const):
*
Source/WebCore/Modules/WebGPU/GPUFragmentState.h:
* Source/WebCore/Modules/WebGPU/GPUFragmentState.cpp: Added.
(WebCore::GPUFragmentState::toJSON const):
* Source/WebCore/Modules/WebGPU/GPURenderPipelineDescriptor.h:
* Source/WebCore/Modules/WebGPU/GPURenderPipelineDescriptor.cpp: Added.
(WebCore::GPURenderPipelineDescriptor::toJSON const):
* Source/WebCore/Modules/WebGPU/GPURenderPassLayout.h:
* Source/WebCore/Modules/WebGPU/GPURenderPassLayout.cpp: Added.
(WebCore::GPURenderPassLayout::toJSON const):
* Source/WebCore/Modules/WebGPU/GPURenderBundleEncoderDescriptor.h:
* Source/WebCore/Modules/WebGPU/GPURenderBundleEncoderDescriptor.cpp: Added.
(WebCore::GPURenderBundleEncoderDescriptor::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUComputePassTimestampWrites.h:
* Source/WebCore/Modules/WebGPU/GPUComputePassTimestampWrites.cpp: Added.
(WebCore::GPUComputePassTimestampWrites::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUComputePassDescriptor.h:
*
Source/WebCore/Modules/WebGPU/GPUComputePassDescriptor.cpp: Added.
(WebCore::GPUComputePassDescriptor::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUCopyElementImageDestination.h:
* Source/WebCore/Modules/WebGPU/GPUCopyElementImageDestination.cpp: Added.
(WebCore::GPUCopyElementImageDestination::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUCopyElementImageSource.h:
* Source/WebCore/Modules/WebGPU/GPUCopyElementImageSource.cpp: Added.
(WebCore::GPUCopyElementImageSource::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.h:
* Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.cpp: Added.
(WebCore::GPUExternalTextureDescriptor::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUImageCopyBuffer.h:
* Source/WebCore/Modules/WebGPU/GPUImageCopyBuffer.cpp: Added.
(WebCore::GPUImageCopyBuffer::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUImageCopyExternalImage.h:
* Source/WebCore/Modules/WebGPU/GPUImageCopyExternalImage.cpp:
Added.
(WebCore::GPUImageCopyExternalImage::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUImageCopyTexture.h:
* Source/WebCore/Modules/WebGPU/GPUImageCopyTexture.cpp: Added.
(WebCore::GPUImageCopyTexture::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUImageCopyTextureTagged.h:
* Source/WebCore/Modules/WebGPU/GPUImageCopyTextureTagged.cpp: Added.
(WebCore::GPUImageCopyTextureTagged::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUPipelineLayoutDescriptor.h:
* Source/WebCore/Modules/WebGPU/GPUPipelineLayoutDescriptor.cpp: Added.
(WebCore::GPUPipelineLayoutDescriptor::toJSON const):
* Source/WebCore/Modules/WebGPU/GPURenderPassColorAttachment.h:
* Source/WebCore/Modules/WebGPU/GPURenderPassColorAttachment.cpp: Added.
(WebCore::GPURenderPassColorAttachment::toJSON const):
* Source/WebCore/Modules/WebGPU/GPURenderPassDepthStencilAttachment.h:
* Source/WebCore/Modules/WebGPU/GPURenderPassDepthStencilAttachment.cpp:
Added.
(WebCore::GPURenderPassDepthStencilAttachment::toJSON const):
* Source/WebCore/Modules/WebGPU/GPURenderPassTimestampWrites.h:
* Source/WebCore/Modules/WebGPU/GPURenderPassTimestampWrites.cpp: Added.
(WebCore::GPURenderPassTimestampWrites::toJSON const):
* Source/WebCore/Modules/WebGPU/GPURenderPassDescriptor.h:
* Source/WebCore/Modules/WebGPU/GPURenderPassDescriptor.cpp: Added.
(WebCore::GPURenderPassDescriptor::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUShaderModuleCompilationHint.h:
* Source/WebCore/Modules/WebGPU/GPUShaderModuleCompilationHint.cpp: Added.
(WebCore::GPUShaderModuleCompilationHint::toJSON const):
* Source/WebCore/Modules/WebGPU/GPUShaderModuleDescriptor.h:
* Source/WebCore/Modules/WebGPU/GPUShaderModuleDescriptor.cpp: Added.
(WebCore::GPUShaderModuleDescriptor::toJSON const):
* Source/WebCore/dom/DOMPointInit.h:
* Source/WebCore/dom/DOMPointInit.cpp: Added.
(WebCore::DOMPointInit::toJSON const):
*
Source/WebCore/html/ImageDataSettings.h:
* Source/WebCore/html/ImageDataSettings.cpp: Added.
(WebCore::ImageDataSettings::toJSON const):
* Source/WebCore/html/canvas/WebGLCopyElementImageConfig.h:
* Source/WebCore/html/canvas/WebGLCopyElementImageConfig.cpp: Added.
(WebCore::WebGLCopyElementImageConfig::toJSON const):
Add helpers to convert back into JSON, omitting members that are not
serializable (which are handled by `InspectorCanvasArgumentProcessor`).
* Source/WebInspectorUI/UserInterface/Models/Recording.js:
(WI.Recording):
(WI.Recording.isReferenceSwizzleType): Added.
(WI.Recording.displayNameForSwizzleType):
(WI.Recording.prototype.displayNameForReference): Renamed from
`displayNameForReceiver`.
(WI.Recording.prototype.swizzle):
(WI.Recording.prototype._process):
(WI.Recording.Swizzle):
* Source/WebInspectorUI/UserInterface/Models/RecordingAction.js:
(WI.RecordingAction):
(WI.RecordingAction.fromPayload):
(WI.RecordingAction.objectReferencesForParameter):
Added.
(WI.RecordingAction.prototype.recordingObjectIdentifiers): Renamed from `get
recordingObjectIdentifiers`.
(WI.RecordingAction.prototype.get result): Added.
(WI.RecordingAction.prototype.swizzle):
(WI.RecordingAction.prototype.toJSON):
(WI.RecordingAction._objectReferenceCollectors): Added.
* Source/WebInspectorUI/UserInterface/Models/ScriptSyntaxTree.js:
(WI.ScriptSyntaxTree.isIdentifierName): Added.
Collect referenced object identities incrementally during the processing pass
and share stable names across arguments, receivers, and results.
* Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.js:
(WI.RecordingActionTreeElement._generateDOM):
(WI.RecordingActionTreeElement._generateDOM.appendJSON): Added.
(WI.RecordingActionTreeElement._generateDOM.createParameterElement):
* Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.css:
(.item.recording-action > .titles :is(.object-handle, .receiver, .subtitle)):
Renamed from
`.item.recording-action > .titles .parameter.object-handle`.
(body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus-within
.item.recording-action.selected > .titles :is(.object-handle,
.parameter.swizzled, .receiver, .subtitle), body:not(.window-inactive,
.window-docked-inactive) .tree-outline:focus-within
.item.recording-action.selected::before): Renamed from
`body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus-within
.item.recording-action.selected > .titles .parameter.swizzled,
body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus-within
.item.recording-action.selected::before`.
Render `JSON` inline add special styling for referenced objects.
Display the name of the returned object as the subtitle.
* Source/WTF/wtf/JSONValues.h:
(WTF::JSONImpl::ArrayOf<T>::setItem): Added.
* Source/WTF/wtf/JSONValues.cpp:
(WTF::JSONImpl::ArrayBase::setBoolean): Added.
(WTF::JSONImpl::ArrayBase::setInteger):
Added.
(WTF::JSONImpl::ArrayBase::setDouble): Added.
(WTF::JSONImpl::ArrayBase::setString): Added.
(WTF::JSONImpl::ArrayBase::setValue): Added.
(WTF::JSONImpl::ArrayBase::setObject): Added.
(WTF::JSONImpl::ArrayBase::setArray): Added.
Add `JSON::ArrayOf::setItem` so a recorded action can replace a placeholder
result.
* Source/WebGPU/WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::addOnCommitHandler):
Ignore on-commit handlers when there is no `MTLCommandBuffer` to commit.
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/bindings/scripts/test/TestCallTracer.idl:
* Source/WebCore/bindings/scripts/test/JS/JSTestCallTracer.cpp:
* Tools/TestWebKitAPI/Tests/WTF/JSONValue.cpp:
* LayoutTests/fast/webgpu/invalid-command-encoder-clear-buffer.html: Added.
* LayoutTests/fast/webgpu/invalid-command-encoder-clear-buffer-expected.txt:
Added.
* LayoutTests/inspector/canvas/resources/recording-2d.js:
*
LayoutTests/inspector/canvas/resources/recording-utilities.js:
* LayoutTests/inspector/canvas/resources/recording-webgl.js:
* LayoutTests/inspector/canvas/resources/recording-webgl2.js:
* LayoutTests/inspector/canvas/resources/recording-webgpu.js: Added.
* LayoutTests/inspector/canvas/recording-2d-full-expected.txt:
* LayoutTests/inspector/canvas/recording-bitmaprenderer-full-expected.txt:
*
LayoutTests/inspector/canvas/recording-offscreen-bitmaprenderer-full-expected.txt:
* LayoutTests/inspector/canvas/recording-offscreen-canvas-2d-full-expected.txt:
* LayoutTests/inspector/canvas/recording-offscreen-webgl-full-expected.txt:
* LayoutTests/inspector/canvas/recording-offscreen-webgl2-full-expected.txt:
* LayoutTests/inspector/canvas/recording-webgl-full.html:
* LayoutTests/inspector/canvas/recording-webgl-full-expected.txt:
* LayoutTests/inspector/canvas/recording-webgl2-full-expected.txt:
* LayoutTests/inspector/canvas/recording.html:
*
LayoutTests/inspector/canvas/recording-html-2d.html:
* LayoutTests/inspector/canvas/recording-webgpu.html: Deleted.
* LayoutTests/inspector/canvas/recording-webgpu-expected.txt: Deleted.
* LayoutTests/inspector/canvas/console-record-webgpu.html: Added.
* LayoutTests/inspector/canvas/console-record-webgpu-expected.txt: Added.
* LayoutTests/inspector/canvas/recording-webgpu-frameCount.html: Added.
* LayoutTests/inspector/canvas/recording-webgpu-frameCount-expected.txt: Added.
* LayoutTests/inspector/canvas/recording-webgpu-full.html: Added.
* LayoutTests/inspector/canvas/recording-webgpu-full-expected.txt: Added.
* LayoutTests/inspector/canvas/recording-webgpu-memoryLimit.html: Added.
* LayoutTests/inspector/canvas/recording-webgpu-memoryLimit-expected.txt: Added.
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/win/TestExpectations:
Canonical link:
https://flagged.apple.com:443/proxy?t2=Dr5t4N4sn1&o=aHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvMzE5MDU5QG1haW4=&emid=01fe9508-a6b0-4f5b-880a-91b94c7096d9&c=11
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications