Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3722912ff800feef138f91f0f4fe26f13d68742e
      
https://github.com/WebKit/WebKit/commit/3722912ff800feef138f91f0f4fe26f13d68742e
  Author: Devin Rousso <[email protected]>
  Date:   2026-08-02 (Sun, 02 Aug 2026)

  Changed paths:
    M LayoutTests/inspector/canvas/recording-expected.txt
    A LayoutTests/inspector/canvas/recording-webgpu-expected.txt
    A LayoutTests/inspector/canvas/recording-webgpu.html
    M LayoutTests/inspector/canvas/recording.html
    M LayoutTests/platform/glib/TestExpectations
    M LayoutTests/platform/win/TestExpectations
    M Source/JavaScriptCore/inspector/protocol/Recording.json
    M Source/JavaScriptCore/inspector/scripts/codegen/generator.py
    M Source/WebCore/Modules/WebGPU/GPUBindGroup.cpp
    M Source/WebCore/Modules/WebGPU/GPUBindGroup.h
    M Source/WebCore/Modules/WebGPU/GPUBindGroup.idl
    M Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.cpp
    M Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.h
    M Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.idl
    M Source/WebCore/Modules/WebGPU/GPUBuffer.cpp
    M Source/WebCore/Modules/WebGPU/GPUBuffer.h
    M Source/WebCore/Modules/WebGPU/GPUBuffer.idl
    M Source/WebCore/Modules/WebGPU/GPUCommandBuffer.cpp
    M Source/WebCore/Modules/WebGPU/GPUCommandBuffer.h
    M Source/WebCore/Modules/WebGPU/GPUCommandBuffer.idl
    M Source/WebCore/Modules/WebGPU/GPUCommandEncoder.cpp
    M Source/WebCore/Modules/WebGPU/GPUCommandEncoder.h
    M Source/WebCore/Modules/WebGPU/GPUCommandEncoder.idl
    M Source/WebCore/Modules/WebGPU/GPUComputePassEncoder.cpp
    M Source/WebCore/Modules/WebGPU/GPUComputePassEncoder.h
    M Source/WebCore/Modules/WebGPU/GPUComputePassEncoder.idl
    M Source/WebCore/Modules/WebGPU/GPUComputePipeline.cpp
    M Source/WebCore/Modules/WebGPU/GPUComputePipeline.h
    M Source/WebCore/Modules/WebGPU/GPUComputePipeline.idl
    M Source/WebCore/Modules/WebGPU/GPUDevice.cpp
    M Source/WebCore/Modules/WebGPU/GPUDevice.h
    M Source/WebCore/Modules/WebGPU/GPUDevice.idl
    M Source/WebCore/Modules/WebGPU/GPUExternalTexture.cpp
    M Source/WebCore/Modules/WebGPU/GPUExternalTexture.h
    M Source/WebCore/Modules/WebGPU/GPUExternalTexture.idl
    M Source/WebCore/Modules/WebGPU/GPUPipelineLayout.cpp
    M Source/WebCore/Modules/WebGPU/GPUPipelineLayout.h
    M Source/WebCore/Modules/WebGPU/GPUPipelineLayout.idl
    M Source/WebCore/Modules/WebGPU/GPUPresentationContext.h
    M Source/WebCore/Modules/WebGPU/GPUQuerySet.cpp
    M Source/WebCore/Modules/WebGPU/GPUQuerySet.h
    M Source/WebCore/Modules/WebGPU/GPUQuerySet.idl
    M Source/WebCore/Modules/WebGPU/GPUQueue.cpp
    M Source/WebCore/Modules/WebGPU/GPUQueue.h
    M Source/WebCore/Modules/WebGPU/GPUQueue.idl
    M Source/WebCore/Modules/WebGPU/GPURenderBundle.cpp
    M Source/WebCore/Modules/WebGPU/GPURenderBundle.h
    M Source/WebCore/Modules/WebGPU/GPURenderBundle.idl
    M Source/WebCore/Modules/WebGPU/GPURenderBundleEncoder.cpp
    M Source/WebCore/Modules/WebGPU/GPURenderBundleEncoder.h
    M Source/WebCore/Modules/WebGPU/GPURenderBundleEncoder.idl
    M Source/WebCore/Modules/WebGPU/GPURenderPassEncoder.cpp
    M Source/WebCore/Modules/WebGPU/GPURenderPassEncoder.h
    M Source/WebCore/Modules/WebGPU/GPURenderPassEncoder.idl
    M Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp
    M Source/WebCore/Modules/WebGPU/GPURenderPipeline.h
    M Source/WebCore/Modules/WebGPU/GPURenderPipeline.idl
    M Source/WebCore/Modules/WebGPU/GPUSampler.cpp
    M Source/WebCore/Modules/WebGPU/GPUSampler.h
    M Source/WebCore/Modules/WebGPU/GPUSampler.idl
    M Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp
    M Source/WebCore/Modules/WebGPU/GPUShaderModule.h
    M Source/WebCore/Modules/WebGPU/GPUShaderModule.idl
    M Source/WebCore/Modules/WebGPU/GPUTexture.cpp
    M Source/WebCore/Modules/WebGPU/GPUTexture.h
    M Source/WebCore/Modules/WebGPU/GPUTexture.idl
    M Source/WebCore/Modules/WebGPU/GPUTextureView.cpp
    M Source/WebCore/Modules/WebGPU/GPUTextureView.h
    M Source/WebCore/Modules/WebGPU/GPUTextureView.idl
    M Source/WebCore/inspector/InspectorCanvas.cpp
    M Source/WebCore/inspector/InspectorCanvas.h
    M Source/WebCore/inspector/InspectorCanvasCallTracer.cpp
    M Source/WebCore/inspector/InspectorCanvasCallTracer.h
    M Source/WebCore/inspector/InspectorInstrumentation.cpp
    M Source/WebCore/inspector/InspectorInstrumentation.h
    M Source/WebCore/inspector/RecordingSwizzleType.h
    M Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp
    M Source/WebCore/inspector/agents/InspectorCanvasAgent.h
    M Source/WebCore/page/FrameConsoleClient.cpp
    M Source/WebCore/workers/WorkerConsoleClient.cpp
    M Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js
    M Source/WebInspectorUI/UserInterface/Models/Canvas.js
    M Source/WebInspectorUI/UserInterface/Models/Recording.js
    M Source/WebInspectorUI/UserInterface/Models/RecordingAction.js
    M Source/WebInspectorUI/UserInterface/Models/RecordingFrame.js
    M Source/WebInspectorUI/UserInterface/Views/CanvasContentView.js
    M Source/WebInspectorUI/UserInterface/Views/CanvasSidebarPanel.js
    M Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.css
    M Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.js
    M Source/WebInspectorUI/UserInterface/Views/RecordingContentView.js
    M Source/WebInspectorUI/UserInterface/Views/TreeOutline.js

  Log Message:
  -----------
  Web Inspector: Canvas: support recording WebGPU devices
https://bugs.webkit.org/show_bug.cgi?id=201651

Reviewed by Mike Wyrzykowski.

* Source/WebCore/Modules/WebGPU/GPUDevice.idl:
* Source/WebCore/Modules/WebGPU/GPUDevice.h:
(WebCore::GPUDevice::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUDevice::setHasActiveInspectorCanvasCallTracer): Added.
* Source/WebCore/Modules/WebGPU/GPUDevice.cpp:
(WebCore::GPUDevice::GPUDevice):
(WebCore::GPUDevice::createSampler):
(WebCore::GPUDevice::importExternalTexture):
(WebCore::GPUDevice::createBindGroupLayout):
(WebCore::GPUDevice::createAutoPipelineLayout):
(WebCore::GPUDevice::createPipelineLayout):
(WebCore::GPUDevice::createBindGroup):
(WebCore::GPUDevice::createShaderModule):
(WebCore::GPUDevice::createCommandEncoder):
(WebCore::GPUDevice::createRenderBundleEncoder):
(WebCore::GPUDevice::createQuerySet):
* Source/WebCore/Modules/WebGPU/GPUQueue.idl:
* Source/WebCore/Modules/WebGPU/GPUQueue.h:
(WebCore::GPUQueue::create):
* Source/WebCore/Modules/WebGPU/GPUQueue.cpp:
(WebCore::GPUQueue::GPUQueue):
(WebCore::GPUQueue::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUQueue::device const): Added.
(WebCore::GPUQueue::submit):
* Source/WebCore/Modules/WebGPU/GPUBuffer.idl:
* Source/WebCore/Modules/WebGPU/GPUBuffer.h:
* Source/WebCore/Modules/WebGPU/GPUBuffer.cpp:
(WebCore::GPUBuffer::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUBuffer::device const): Added.
* Source/WebCore/Modules/WebGPU/GPUTexture.idl:
* Source/WebCore/Modules/WebGPU/GPUTexture.h:
(WebCore::GPUTexture::create):
* Source/WebCore/Modules/WebGPU/GPUTexture.cpp:
(WebCore::GPUTexture::GPUTexture):
(WebCore::GPUTexture::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUTexture::device const): Added.
(WebCore::GPUTexture::createView):
* Source/WebCore/Modules/WebGPU/GPUTextureView.idl:
* Source/WebCore/Modules/WebGPU/GPUTextureView.h:
(WebCore::GPUTextureView::create):
* Source/WebCore/Modules/WebGPU/GPUTextureView.cpp:
(WebCore::GPUTextureView::GPUTextureView): Added.
(WebCore::GPUTextureView::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUTextureView::device const): Added.
* Source/WebCore/Modules/WebGPU/GPUExternalTexture.idl:
* Source/WebCore/Modules/WebGPU/GPUExternalTexture.h:
(WebCore::GPUExternalTexture::create):
* Source/WebCore/Modules/WebGPU/GPUExternalTexture.cpp:
(WebCore::GPUExternalTexture::GPUExternalTexture): Added.
(WebCore::GPUExternalTexture::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUExternalTexture::device const): Added.
* Source/WebCore/Modules/WebGPU/GPUSampler.idl:
* Source/WebCore/Modules/WebGPU/GPUSampler.h:
(WebCore::GPUSampler::create):
* Source/WebCore/Modules/WebGPU/GPUSampler.cpp:
(WebCore::GPUSampler::GPUSampler): Added.
(WebCore::GPUSampler::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUSampler::device const): Added.
* Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.idl:
* Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.h:
(WebCore::GPUBindGroupLayout::create):
* Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.cpp:
(WebCore::GPUBindGroupLayout::GPUBindGroupLayout): Added.
(WebCore::GPUBindGroupLayout::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUBindGroupLayout::device const): Added.
* Source/WebCore/Modules/WebGPU/GPUBindGroup.idl:
* Source/WebCore/Modules/WebGPU/GPUBindGroup.h:
(WebCore::GPUBindGroup::create):
* Source/WebCore/Modules/WebGPU/GPUBindGroup.cpp:
(WebCore::GPUBindGroup::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUBindGroup::device const): Added.
(WebCore::GPUBindGroup::GPUBindGroup):
* Source/WebCore/Modules/WebGPU/GPUPipelineLayout.idl:
* Source/WebCore/Modules/WebGPU/GPUPipelineLayout.h:
(WebCore::GPUPipelineLayout::create):
* Source/WebCore/Modules/WebGPU/GPUPipelineLayout.cpp:
(WebCore::GPUPipelineLayout::GPUPipelineLayout): Added.
(WebCore::GPUPipelineLayout::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUPipelineLayout::device const): Added.
* Source/WebCore/Modules/WebGPU/GPUShaderModule.idl:
* Source/WebCore/Modules/WebGPU/GPUShaderModule.h:
(WebCore::GPUShaderModule::create):
* Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp:
(WebCore::GPUShaderModule::GPUShaderModule): Added.
(WebCore::GPUShaderModule::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUShaderModule::device const): Added.
* Source/WebCore/Modules/WebGPU/GPUComputePipeline.idl:
* Source/WebCore/Modules/WebGPU/GPUComputePipeline.h:
* Source/WebCore/Modules/WebGPU/GPUComputePipeline.cpp:
(WebCore::GPUComputePipeline::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUComputePipeline::getBindGroupLayout):
* Source/WebCore/Modules/WebGPU/GPURenderPipeline.idl:
* Source/WebCore/Modules/WebGPU/GPURenderPipeline.h:
* Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp:
(WebCore::GPURenderPipeline::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPURenderPipeline::getBindGroupLayout):
* Source/WebCore/Modules/WebGPU/GPUCommandEncoder.idl:
* Source/WebCore/Modules/WebGPU/GPUCommandEncoder.h:
(WebCore::GPUCommandEncoder::create):
* Source/WebCore/Modules/WebGPU/GPUCommandEncoder.cpp:
(WebCore::GPUCommandEncoder::GPUCommandEncoder):
(WebCore::GPUCommandEncoder::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUCommandEncoder::device const): Added.
(WebCore::GPUCommandEncoder::beginRenderPass):
(WebCore::GPUCommandEncoder::beginComputePass):
(WebCore::GPUCommandEncoder::finish):
* Source/WebCore/Modules/WebGPU/GPUComputePassEncoder.idl:
* Source/WebCore/Modules/WebGPU/GPUComputePassEncoder.h:
(WebCore::GPUComputePassEncoder::create):
* Source/WebCore/Modules/WebGPU/GPUComputePassEncoder.cpp:
(WebCore::GPUComputePassEncoder::GPUComputePassEncoder):
(WebCore::GPUComputePassEncoder::hasActiveInspectorCanvasCallTracer const): 
Added.
(WebCore::GPUComputePassEncoder::device const): Added.
(WebCore::GPUComputePassEncoder::end):
* Source/WebCore/Modules/WebGPU/GPURenderPassEncoder.idl:
* Source/WebCore/Modules/WebGPU/GPURenderPassEncoder.h:
(WebCore::GPURenderPassEncoder::create):
* Source/WebCore/Modules/WebGPU/GPURenderPassEncoder.cpp:
(WebCore::GPURenderPassEncoder::GPURenderPassEncoder):
(WebCore::GPURenderPassEncoder::hasActiveInspectorCanvasCallTracer const): 
Added.
(WebCore::GPURenderPassEncoder::device const): Added.
(WebCore::GPURenderPassEncoder::end):
* Source/WebCore/Modules/WebGPU/GPURenderBundleEncoder.idl:
* Source/WebCore/Modules/WebGPU/GPURenderBundleEncoder.h:
(WebCore::GPURenderBundleEncoder::create):
* Source/WebCore/Modules/WebGPU/GPURenderBundleEncoder.cpp:
(WebCore::GPURenderBundleEncoder::GPURenderBundleEncoder): Added.
(WebCore::GPURenderBundleEncoder::hasActiveInspectorCanvasCallTracer const): 
Added.
(WebCore::GPURenderBundleEncoder::device const): Added.
(WebCore::GPURenderBundleEncoder::finish):
* Source/WebCore/Modules/WebGPU/GPURenderBundle.idl:
* Source/WebCore/Modules/WebGPU/GPURenderBundle.h:
(WebCore::GPURenderBundle::create):
* Source/WebCore/Modules/WebGPU/GPURenderBundle.cpp:
(WebCore::GPURenderBundle::GPURenderBundle): Added.
(WebCore::GPURenderBundle::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPURenderBundle::device const): Added.
* Source/WebCore/Modules/WebGPU/GPUCommandBuffer.idl:
* Source/WebCore/Modules/WebGPU/GPUCommandBuffer.h:
* Source/WebCore/Modules/WebGPU/GPUCommandBuffer.cpp:
(WebCore::GPUCommandBuffer::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUCommandBuffer::device const): Added.
* Source/WebCore/Modules/WebGPU/GPUQuerySet.idl:
* Source/WebCore/Modules/WebGPU/GPUQuerySet.h:
(WebCore::GPUQuerySet::create):
* Source/WebCore/Modules/WebGPU/GPUQuerySet.cpp:
(WebCore::GPUQuerySet::GPUQuerySet):
(WebCore::GPUQuerySet::hasActiveInspectorCanvasCallTracer const): Added.
(WebCore::GPUQuerySet::device const): Added.
* Source/WebCore/Modules/WebGPU/GPUPresentationContext.h:
* Source/WebCore/inspector/RecordingSwizzleType.h:
* Source/WebCore/inspector/InspectorCanvasCallTracer.h:
(WebCore::InspectorCanvasCallTracer::processArgument):
(WebCore::InspectorCanvasCallTracer::recordAction):
(WebCore::InspectorCanvasCallTracer::receiverSwizzleType): Added.
(WebCore::InspectorCanvasCallTracer::receiverSwizzleTypeImpl): Added.
* Source/WebCore/inspector/InspectorCanvasCallTracer.cpp:
(WebCore::enabledCanvasAgent):
(WebCore::InspectorCanvasCallTracer::enabledInspectorCanvas):
(WebCore::InspectorCanvasCallTracer::recordAction):
Add `CallTrace` to every WebGPU IDL (including those without any methods today 
so future API additions automatically get support).
Each object now has a link to the owner `GPUDevice` so the `CallTracer` can 
check whether recording is active.

* Source/JavaScriptCore/inspector/protocol/Recording.json:
* Source/JavaScriptCore/inspector/scripts/codegen/generator.py:
* Source/WebCore/inspector/InspectorCanvas.h:
* Source/WebCore/inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::hasActiveInspectorCanvasCallTracer): Added.
(WebCore::InspectorCanvas::setHasActiveInspectorCanvasCallTracer): Added.
(WebCore::InspectorCanvas::resetRecordingData):
(WebCore::shouldSnapshotWebGPUAction): Added.
(WebCore::InspectorCanvas::recordAction):
(WebCore::buildActionReceiver): Added.
(WebCore::InspectorCanvas::releaseObjectForRecording):
(WebCore::InspectorCanvas::getContentAsDataURL): Added WebGPU support for 
device-backed canvases.
(WebCore::InspectorCanvas::appendActionSnapshotIfNeeded):
(WebCore::InspectorCanvas::identifierForRecordingObject): Added.
(WebCore::InspectorCanvas::buildInitialState):
Store explicit receivers as `[identifier, swizzleType]` before the optional 
snapshot field.

* Source/WebCore/inspector/agents/InspectorCanvasAgent.h:
* Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::stopRecording):
(WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
(WebCore::InspectorCanvasAgent::didCreateWebGPUDevice):
(WebCore::InspectorCanvasAgent::recordAction):
(WebCore::InspectorCanvasAgent::scheduleRecordingCanvasFrame): Added.
(WebCore::InspectorCanvasAgent::consoleStartRecordingCanvas):
(WebCore::InspectorCanvasAgent::consoleStopRecordingCanvas):
(WebCore::InspectorCanvasAgent::reset):
(WebCore::InspectorCanvasAgent::unbindCanvas):
Support explicit and automatic `GPUDevice` recordings.

* Source/WebCore/page/FrameConsoleClient.cpp:
(WebCore::FrameConsoleClient::record):
(WebCore::FrameConsoleClient::recordEnd):
* Source/WebCore/workers/WorkerConsoleClient.cpp:
(WebCore::WorkerConsoleClient::record):
(WebCore::WorkerConsoleClient::recordEnd):
* Source/WebCore/inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::consoleStartRecordingCanvas):
(WebCore::InspectorInstrumentation::consoleStopRecordingCanvas):
* Source/WebCore/inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::consoleStartRecordingCanvasImpl):
(WebCore::InspectorInstrumentation::consoleStopRecordingCanvasImpl):
Support `console.record()` and `console.recordEnd()` for `GPUDevice`.

* Source/WebInspectorUI/UserInterface/Models/Canvas.js:
(WI.Canvas.prototype.get supportsRecording): Deleted.
(WI.Canvas.prototype.recordingProgress):
* Source/WebInspectorUI/UserInterface/Views/CanvasContentView.js:
(WI.CanvasContentView.prototype.initialLayout):
* Source/WebInspectorUI/UserInterface/Views/CanvasSidebarPanel.js:
(WI.CanvasSidebarPanel.prototype._canvasChanged):
(WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem):
Pass the backend recording version when parsing a live recording.

* Source/WebInspectorUI/UserInterface/Models/Recording.js:
(WI.Recording.fromPayload):
(WI.Recording.displayNameForRecordingType):
(WI.Recording.displayNameForReceiver): Added.
(WI.Recording.prototype.get isCanvas):
(WI.Recording.prototype.get isCanvasWebGPU): Added.
(WI.Recording.prototype.createContext):
(WI.Recording.prototype.toJSON):
(WI.Recording.prototype.toHTML):
(WI.Recording.prototype._process):
* Source/WebInspectorUI/UserInterface/Models/RecordingAction.js:
(WI.RecordingAction):
(WI.RecordingAction.fromPayload):
(WI.RecordingAction.isFunctionForType):
(WI.RecordingAction.bitfieldNamesForParameter):
(WI.RecordingAction.constantNameForParameter):
(WI.RecordingAction._prototypeForType):
(WI.RecordingAction.prototype.get receiver): Added.
(WI.RecordingAction.prototype.get contextReplacer): Deleted.
(WI.RecordingAction.prototype.process):
(WI.RecordingAction.prototype.swizzle):
(WI.RecordingAction.prototype.get isCanvasReceiver): Added.
(WI.RecordingAction.prototype.apply):
(WI.RecordingAction.prototype.toJSON):
* Source/WebInspectorUI/UserInterface/Models/RecordingFrame.js:
(WI.RecordingFrame.fromPayload):
(WI.RecordingFrame.prototype.toJSON):
Parse snapshot-based WebGPU recordings without attempting to replay WebGPU 
commands.
Display receiver identifier and type pairs as lower-camel-cased names.
Drive-by: Include offscreen WebGL(2) recordings when resolving constants, 
bitfields, and snapshot-based processing.

* Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.js:
(WI.RecordingActionTreeElement._generateDOM):
(WI.RecordingActionTreeElement._classNameForAction):
(WI.RecordingActionTreeElement.prototype.populateContextMenu):
* Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.css:
(body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus-within 
.item.recording-action.selected:not(.invalid, .initial-state, .name-unknown) > 
.icon): Renamed from `body:not(.window-inactive, .window-docked-inactive) 
.tree-outline:focus-within .item.recording-action.selected:not(.invalid, 
.initial-state, .has-context-replacer, .name-unknown) > .icon`.
(.item.recording-action:not(.invalid, .initial-state, .name-unknown) > .icon): 
Renamed from `.item.recording-action:not(.invalid, .initial-state, 
.has-context-replacer, .name-unknown) > .icon`.
Display only explicit receivers and copy actions against the correct 
`GPUDevice`, `CanvasRenderingContext`, or `<canvas>`.

* Source/WebInspectorUI/UserInterface/Views/RecordingContentView.js:
(WI.RecordingContentView):
(WI.RecordingContentView.prototype._generateContentFromSnapshot):
(WI.RecordingContentView.prototype._updateImageGrid):
Show WebGPU content from snapshots and clear stale preview content when a 
recording has no initial snapshot.

* Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:
(WI.TreeOutline.prototype.registerScrollVirtualizer):
Drive-by: disable native scroll anchoring when virtualized so recycled 
recording rows do not cause scrolling to continue on its own.

* Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:

* LayoutTests/inspector/canvas/recording.html:
* LayoutTests/inspector/canvas/recording-expected.txt:
* LayoutTests/inspector/canvas/recording-webgpu.html: Added.
* LayoutTests/inspector/canvas/recording-webgpu-expected.txt: Added.
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/win/TestExpectations:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to