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

  Changed paths:
    A LayoutTests/inspector/canvas/recording-webgl-receivers-expected.txt
    A LayoutTests/inspector/canvas/recording-webgl-receivers.html
    M LayoutTests/platform/mac/TestExpectations
    M Source/WebCore/html/canvas/ANGLEInstancedArrays.idl
    M Source/WebCore/html/canvas/EXTBlendMinMax.idl
    M Source/WebCore/html/canvas/EXTClipControl.idl
    M Source/WebCore/html/canvas/EXTColorBufferFloat.idl
    M Source/WebCore/html/canvas/EXTColorBufferHalfFloat.idl
    M Source/WebCore/html/canvas/EXTConservativeDepth.idl
    M Source/WebCore/html/canvas/EXTDepthClamp.idl
    M Source/WebCore/html/canvas/EXTDisjointTimerQuery.idl
    M Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.idl
    M Source/WebCore/html/canvas/EXTFloatBlend.idl
    M Source/WebCore/html/canvas/EXTFragDepth.idl
    M Source/WebCore/html/canvas/EXTPolygonOffsetClamp.idl
    M Source/WebCore/html/canvas/EXTRenderSnorm.idl
    M Source/WebCore/html/canvas/EXTShaderTextureLOD.idl
    M Source/WebCore/html/canvas/EXTTextureCompressionBPTC.idl
    M Source/WebCore/html/canvas/EXTTextureCompressionRGTC.idl
    M Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl
    M Source/WebCore/html/canvas/EXTTextureMirrorClampToEdge.idl
    M Source/WebCore/html/canvas/EXTTextureNorm16.idl
    M Source/WebCore/html/canvas/EXTsRGB.idl
    M Source/WebCore/html/canvas/KHRParallelShaderCompile.idl
    M Source/WebCore/html/canvas/NVShaderNoperspectiveInterpolation.idl
    M Source/WebCore/html/canvas/OESDrawBuffersIndexed.idl
    M Source/WebCore/html/canvas/OESElementIndexUint.idl
    M Source/WebCore/html/canvas/OESFBORenderMipmap.idl
    M Source/WebCore/html/canvas/OESSampleVariables.idl
    M Source/WebCore/html/canvas/OESShaderMultisampleInterpolation.idl
    M Source/WebCore/html/canvas/OESStandardDerivatives.idl
    M Source/WebCore/html/canvas/OESTextureFloat.idl
    M Source/WebCore/html/canvas/OESTextureFloatLinear.idl
    M Source/WebCore/html/canvas/OESTextureHalfFloat.idl
    M Source/WebCore/html/canvas/OESTextureHalfFloatLinear.idl
    M Source/WebCore/html/canvas/OESVertexArrayObject.idl
    M Source/WebCore/html/canvas/WebGLBlendFuncExtended.idl
    M Source/WebCore/html/canvas/WebGLBuffer.idl
    M Source/WebCore/html/canvas/WebGLClipCullDistance.idl
    M Source/WebCore/html/canvas/WebGLColorBufferFloat.idl
    M Source/WebCore/html/canvas/WebGLCompressedTextureASTC.idl
    M Source/WebCore/html/canvas/WebGLCompressedTextureETC.idl
    M Source/WebCore/html/canvas/WebGLCompressedTextureETC1.idl
    M Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl
    M Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl
    M Source/WebCore/html/canvas/WebGLCompressedTextureS3TCsRGB.idl
    M Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl
    M Source/WebCore/html/canvas/WebGLDebugShaders.idl
    M Source/WebCore/html/canvas/WebGLDepthTexture.idl
    M Source/WebCore/html/canvas/WebGLDrawBuffers.idl
    M Source/WebCore/html/canvas/WebGLDrawInstancedBaseVertexBaseInstance.idl
    M Source/WebCore/html/canvas/WebGLExtension.h
    M Source/WebCore/html/canvas/WebGLFramebuffer.idl
    M Source/WebCore/html/canvas/WebGLLoseContext.idl
    M Source/WebCore/html/canvas/WebGLMultiDraw.idl
    M 
Source/WebCore/html/canvas/WebGLMultiDrawInstancedBaseVertexBaseInstance.idl
    M Source/WebCore/html/canvas/WebGLObject.cpp
    M Source/WebCore/html/canvas/WebGLObject.h
    M Source/WebCore/html/canvas/WebGLPolygonMode.idl
    M Source/WebCore/html/canvas/WebGLProgram.idl
    M Source/WebCore/html/canvas/WebGLProvokingVertex.idl
    M Source/WebCore/html/canvas/WebGLQuery.idl
    M Source/WebCore/html/canvas/WebGLRenderSharedExponent.idl
    M Source/WebCore/html/canvas/WebGLRenderbuffer.idl
    M Source/WebCore/html/canvas/WebGLSampler.idl
    M Source/WebCore/html/canvas/WebGLShader.idl
    M Source/WebCore/html/canvas/WebGLStencilTexturing.idl
    M Source/WebCore/html/canvas/WebGLSync.idl
    M Source/WebCore/html/canvas/WebGLTexture.idl
    M Source/WebCore/html/canvas/WebGLTimerQueryEXT.idl
    M Source/WebCore/html/canvas/WebGLTransformFeedback.idl
    M Source/WebCore/html/canvas/WebGLUniformLocation.idl
    M Source/WebCore/html/canvas/WebGLVertexArrayObject.idl
    M Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl
    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/WebInspectorUI/UserInterface/Models/Recording.js
    M Source/WebInspectorUI/UserInterface/Models/RecordingAction.js
    M Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.js

  Log Message:
  -----------
  Web Inspector: Canvas: record WebGL extension actions
https://bugs.webkit.org/show_bug.cgi?id=320863

Reviewed by Mike Wyrzykowski.

* Source/WebCore/html/canvas/ANGLEInstancedArrays.idl:
* Source/WebCore/html/canvas/EXTBlendMinMax.idl:
* Source/WebCore/html/canvas/EXTClipControl.idl:
* Source/WebCore/html/canvas/EXTColorBufferFloat.idl:
* Source/WebCore/html/canvas/EXTColorBufferHalfFloat.idl:
* Source/WebCore/html/canvas/EXTConservativeDepth.idl:
* Source/WebCore/html/canvas/EXTDepthClamp.idl:
* Source/WebCore/html/canvas/EXTDisjointTimerQuery.idl:
* Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.idl:
* Source/WebCore/html/canvas/EXTFloatBlend.idl:
* Source/WebCore/html/canvas/EXTFragDepth.idl:
* Source/WebCore/html/canvas/EXTPolygonOffsetClamp.idl:
* Source/WebCore/html/canvas/EXTRenderSnorm.idl:
* Source/WebCore/html/canvas/EXTShaderTextureLOD.idl:
* Source/WebCore/html/canvas/EXTTextureCompressionBPTC.idl:
* Source/WebCore/html/canvas/EXTTextureCompressionRGTC.idl:
* Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl:
* Source/WebCore/html/canvas/EXTTextureMirrorClampToEdge.idl:
* Source/WebCore/html/canvas/EXTTextureNorm16.idl:
* Source/WebCore/html/canvas/EXTsRGB.idl:
* Source/WebCore/html/canvas/KHRParallelShaderCompile.idl:
* Source/WebCore/html/canvas/NVShaderNoperspectiveInterpolation.idl:
* Source/WebCore/html/canvas/OESDrawBuffersIndexed.idl:
* Source/WebCore/html/canvas/OESElementIndexUint.idl:
* Source/WebCore/html/canvas/OESFBORenderMipmap.idl:
* Source/WebCore/html/canvas/OESSampleVariables.idl:
* Source/WebCore/html/canvas/OESShaderMultisampleInterpolation.idl:
* Source/WebCore/html/canvas/OESStandardDerivatives.idl:
* Source/WebCore/html/canvas/OESTextureFloat.idl:
* Source/WebCore/html/canvas/OESTextureFloatLinear.idl:
* Source/WebCore/html/canvas/OESTextureHalfFloat.idl:
* Source/WebCore/html/canvas/OESTextureHalfFloatLinear.idl:
* Source/WebCore/html/canvas/OESVertexArrayObject.idl:
* Source/WebCore/html/canvas/WebGLBlendFuncExtended.idl:
* Source/WebCore/html/canvas/WebGLBuffer.idl:
* Source/WebCore/html/canvas/WebGLClipCullDistance.idl:
* Source/WebCore/html/canvas/WebGLColorBufferFloat.idl:
* Source/WebCore/html/canvas/WebGLCompressedTextureASTC.idl:
* Source/WebCore/html/canvas/WebGLCompressedTextureETC.idl:
* Source/WebCore/html/canvas/WebGLCompressedTextureETC1.idl:
* Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl:
* Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl:
* Source/WebCore/html/canvas/WebGLCompressedTextureS3TCsRGB.idl:
* Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl:
* Source/WebCore/html/canvas/WebGLDebugShaders.idl:
* Source/WebCore/html/canvas/WebGLDepthTexture.idl:
* Source/WebCore/html/canvas/WebGLDrawBuffers.idl:
* Source/WebCore/html/canvas/WebGLDrawInstancedBaseVertexBaseInstance.idl:
* Source/WebCore/html/canvas/WebGLFramebuffer.idl:
* Source/WebCore/html/canvas/WebGLLoseContext.idl:
* Source/WebCore/html/canvas/WebGLMultiDraw.idl:
* Source/WebCore/html/canvas/WebGLMultiDrawInstancedBaseVertexBaseInstance.idl:
* Source/WebCore/html/canvas/WebGLPolygonMode.idl:
* Source/WebCore/html/canvas/WebGLProgram.idl:
* Source/WebCore/html/canvas/WebGLProvokingVertex.idl:
* Source/WebCore/html/canvas/WebGLQuery.idl:
* Source/WebCore/html/canvas/WebGLRenderSharedExponent.idl:
* Source/WebCore/html/canvas/WebGLRenderbuffer.idl:
* Source/WebCore/html/canvas/WebGLSampler.idl:
* Source/WebCore/html/canvas/WebGLShader.idl:
* Source/WebCore/html/canvas/WebGLStencilTexturing.idl:
* Source/WebCore/html/canvas/WebGLSync.idl:
* Source/WebCore/html/canvas/WebGLTexture.idl:
* Source/WebCore/html/canvas/WebGLTimerQueryEXT.idl:
* Source/WebCore/html/canvas/WebGLTransformFeedback.idl:
* Source/WebCore/html/canvas/WebGLUniformLocation.idl:
* Source/WebCore/html/canvas/WebGLVertexArrayObject.idl:
* Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl:
Route all of these through `InspectorCanvasCallTracer`.
Note that many of these do not have attributes/methods, but adding it ensures 
that future changes automatically get instrumented.

* Source/WebCore/html/canvas/WebGLExtension.h:
(WebCore::WebGLExtension::hasActiveInspectorCanvasCallTracer): Added.
* Source/WebCore/html/canvas/WebGLObject.h:
* Source/WebCore/html/canvas/WebGLObject.cpp:
(WebCore::WebGLObject::hasActiveInspectorCanvasCallTracer): Added.
Forward the active `CallTracer` check through the owner 
`WebGLRenderingContextBase`.

* Source/WebCore/inspector/InspectorCanvas.h:
* Source/WebCore/inspector/InspectorCanvas.cpp:
(WebCore::shouldSnapshotWebGLAction):
(WebCore::shouldSnapshotWebGL2Action):
(WebCore::buildActionReceiver):
(WebCore::InspectorCanvas::recordAction):
* Source/WebCore/inspector/InspectorCanvasArguments.h:
(WebCore::recordingSwizzleTypeForWebGPUReceiver): Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLInterface<IDLType>>::operator()): 
Added.
* Source/WebCore/inspector/InspectorCanvasArguments.cpp:
(WebCore::recordingSwizzleTypeForWebGLExtension): Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLInterface<WebGLTimerQueryEXT>>::operator()):
 Added.
(WebCore::InspectorCanvasArgumentProcessor<IDLInterface<WebGLVertexArrayObjectOES>>::operator()):
 Added.
* Source/WebCore/inspector/InspectorCanvasCallTracer.h:
(WebCore::InspectorCanvasCallTracer::processArgument):
(WebCore::InspectorCanvasCallTracer::recordAction):
(WebCore::InspectorCanvasCallTracer::receiverSwizzleTypeImpl): Removed.
(WebCore::InspectorCanvasCallTracer::receiverSwizzleType): Removed.
* Source/WebCore/inspector/InspectorCanvasCallTracer.cpp:
(WebCore::InspectorCanvasCallTracer::recordAction):
* Source/WebCore/inspector/RecordingSwizzleType.h:
* Source/WebCore/inspector/agents/InspectorCanvasAgent.h:
* Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::recordAction):
* Source/WebInspectorUI/UserInterface/Models/Recording.js:
(WI.Recording.displayNameForReceiver):
(WI.Recording.displayNameForSwizzleType):
(WI.Recording.prototype.swizzle):
* Source/WebInspectorUI/UserInterface/Models/RecordingAction.js:
(WI.RecordingAction.prototype.swizzle):
* Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.js:
(WI.RecordingActionTreeElement._generateDOM):
Reuse the existing `IDLInt32ListUnion` and `IDLUint32ListUnion` processors for 
WebGL extension methods whose argument unions do not use `[AllowShared]`.
Reuse `WebGLObject::object` so the same instance receives the same name when 
used as an argument or receiver.
Capture snapshots for extension drawing operations, including instanced, 
multi-draw, and base-instance methods.
Drive-by: represent the `<canvas>` receiver for `width` and `height` actions 
with `InspectorCanvasProcessedArgument` so it reuses the same plumbing.

* LayoutTests/inspector/canvas/recording-webgl-receivers.html: Added.
* LayoutTests/inspector/canvas/recording-webgl-receivers-expected.txt: Added.
* LayoutTests/platform/mac/TestExpectations:

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



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

Reply via email to