Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b84d4156a5d2237ec4b49ae8d0eaf798e7229a8e
      
https://github.com/WebKit/WebKit/commit/b84d4156a5d2237ec4b49ae8d0eaf798e7229a8e
  Author: Chris Dumez <[email protected]>
  Date:   2026-09-29 (Tue, 29 Sep 2026)

  Changed paths:
    M Source/WebCore/Modules/system-preview/ARKitBadgeSystemImage.mm
    M Source/WebCore/Modules/webdatabase/DatabaseThread.cpp
    M Source/WebCore/dom/Node.cpp
    M Source/WebCore/inspector/InspectorFrontendHost.cpp
    M Source/WebCore/inspector/agents/page/PageDOMDebuggerAgent.cpp
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebCore/loader/ios/LegacyPreviewLoader.mm
    M Source/WebCore/platform/network/cocoa/ResourceHandleCocoa.mm
    M Source/WebCore/platform/network/ios/WebCoreURLResponseIOS.mm
    M Source/WebCore/svg/SVGAElement.cpp
    M Source/WebCore/svg/SVGAltGlyphDefElement.cpp
    M Source/WebCore/svg/SVGAltGlyphElement.cpp
    M Source/WebCore/svg/SVGAltGlyphItemElement.cpp
    M Source/WebCore/svg/SVGAnimationElement.cpp
    M Source/WebCore/svg/SVGCircleElement.cpp
    M Source/WebCore/svg/SVGClipPathElement.cpp
    M Source/WebCore/svg/SVGComponentTransferFunctionElement.cpp
    M Source/WebCore/svg/SVGDefsElement.cpp
    M Source/WebCore/svg/SVGDescElement.cpp
    M Source/WebCore/svg/SVGDocumentExtensions.cpp
    M Source/WebCore/svg/SVGElement.cpp
    M Source/WebCore/svg/SVGElement.h
    M Source/WebCore/svg/SVGEllipseElement.cpp
    M Source/WebCore/svg/SVGFEBlendElement.cpp
    M Source/WebCore/svg/SVGFEColorMatrixElement.cpp
    M Source/WebCore/svg/SVGFEComponentTransferElement.cpp
    M Source/WebCore/svg/SVGFECompositeElement.cpp
    M Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp
    M Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp
    M Source/WebCore/svg/SVGFEDisplacementMapElement.cpp
    M Source/WebCore/svg/SVGFEDropShadowElement.cpp
    M Source/WebCore/svg/SVGFEFloodElement.cpp
    M Source/WebCore/svg/SVGFEGaussianBlurElement.cpp
    M Source/WebCore/svg/SVGFEImageElement.cpp
    M Source/WebCore/svg/SVGFELightElement.cpp
    M Source/WebCore/svg/SVGFEMergeElement.cpp
    M Source/WebCore/svg/SVGFEMergeNodeElement.cpp
    M Source/WebCore/svg/SVGFEMorphologyElement.cpp
    M Source/WebCore/svg/SVGFEOffsetElement.cpp
    M Source/WebCore/svg/SVGFESpecularLightingElement.cpp
    M Source/WebCore/svg/SVGFETileElement.cpp
    M Source/WebCore/svg/SVGFETurbulenceElement.cpp
    M Source/WebCore/svg/SVGFilterElement.cpp
    M Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
    M Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
    M Source/WebCore/svg/SVGFontElement.cpp
    M Source/WebCore/svg/SVGFontFaceElement.cpp
    M Source/WebCore/svg/SVGFontFaceFormatElement.cpp
    M Source/WebCore/svg/SVGFontFaceNameElement.cpp
    M Source/WebCore/svg/SVGFontFaceSrcElement.cpp
    M Source/WebCore/svg/SVGFontFaceUriElement.cpp
    M Source/WebCore/svg/SVGForeignObjectElement.cpp
    M Source/WebCore/svg/SVGGElement.cpp
    M Source/WebCore/svg/SVGGeometryElement.cpp
    M Source/WebCore/svg/SVGGeometryElement.h
    M Source/WebCore/svg/SVGGlyphElement.cpp
    M Source/WebCore/svg/SVGGlyphRefElement.cpp
    M Source/WebCore/svg/SVGGradientElement.cpp
    M Source/WebCore/svg/SVGGradientElement.h
    M Source/WebCore/svg/SVGGraphicsElement.cpp
    M Source/WebCore/svg/SVGGraphicsElement.h
    M Source/WebCore/svg/SVGHKernElement.cpp
    M Source/WebCore/svg/SVGImageElement.cpp
    M Source/WebCore/svg/SVGLengthContext.cpp
    M Source/WebCore/svg/SVGLineElement.cpp
    M Source/WebCore/svg/SVGLinearGradientElement.cpp
    M Source/WebCore/svg/SVGMPathElement.cpp
    M Source/WebCore/svg/SVGMarkerElement.cpp
    M Source/WebCore/svg/SVGMaskElement.cpp
    M Source/WebCore/svg/SVGMetadataElement.cpp
    M Source/WebCore/svg/SVGMissingGlyphElement.cpp
    M Source/WebCore/svg/SVGPathElement.cpp
    M Source/WebCore/svg/SVGPatternElement.cpp
    M Source/WebCore/svg/SVGPolyElement.cpp
    M Source/WebCore/svg/SVGRadialGradientElement.cpp
    M Source/WebCore/svg/SVGRectElement.cpp
    M Source/WebCore/svg/SVGSVGElement.cpp
    M Source/WebCore/svg/SVGScriptElement.cpp
    M Source/WebCore/svg/SVGStopElement.cpp
    M Source/WebCore/svg/SVGStyleElement.cpp
    M Source/WebCore/svg/SVGSwitchElement.cpp
    M Source/WebCore/svg/SVGSymbolElement.cpp
    M Source/WebCore/svg/SVGTRefElement.cpp
    M Source/WebCore/svg/SVGTSpanElement.cpp
    M Source/WebCore/svg/SVGTextContentElement.cpp
    M Source/WebCore/svg/SVGTextContentElement.h
    M Source/WebCore/svg/SVGTextElement.cpp
    M Source/WebCore/svg/SVGTextPathElement.cpp
    M Source/WebCore/svg/SVGTextPositioningElement.cpp
    M Source/WebCore/svg/SVGTextPositioningElement.h
    M Source/WebCore/svg/SVGTitleElement.cpp
    M Source/WebCore/svg/SVGUnknownElement.h
    M Source/WebCore/svg/SVGUseElement.cpp
    M Source/WebCore/svg/SVGVKernElement.cpp
    M Source/WebCore/svg/SVGViewElement.cpp
    M Source/WebCore/svg/animation/SVGSMILElement.cpp
    M Source/WebCore/svg/animation/SVGSMILElement.h
    M Source/WebCore/svg/properties/SVGPropertyOwnerRegistry.h
    M Source/WebCore/svg/properties/SVGPropertyRegistry.h

  Log Message:
  -----------
  [Safer CPP] Address post-landing review feedback from David Kilzer after 
322130@main
https://bugs.webkit.org/show_bug.cgi?id=325609

Reviewed by David Kilzer.

SVGPropertyOwnerRegistry is stateless, so each registry type now has one shared 
singleton()
instead of a heap allocation per SVG element. SVGElement holds a reference to 
it, and owner()
asserts that the element passed in actually owns the registry.

PageDOMDebuggerAgent::didRemoveDOMNode() is reached from ~Node, so it must not 
ref the node.
It now passes the predicates directly to the NOESCAPE HashMap::removeIf(). 
MessageQueue::removeIf()
is already NOESCAPE, so DatabaseThread::unscheduleDatabaseTasks() no longer 
needs to ref the database.

Also remove redundant protection and use one pattern consistently within each 
function.

* Source/WebCore/Modules/system-preview/ARKitBadgeSystemImage.mm:
(WebCore::ARKitBadgeSystemImage::draw const):
* Source/WebCore/Modules/webdatabase/DatabaseThread.cpp:
(WebCore::DatabaseThread::unscheduleDatabaseTasks):
* Source/WebCore/dom/Node.cpp:
(WebCore::Node::removedLastRef):
* Source/WebCore/inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::evaluateScriptInExtensionTab):
* Source/WebCore/inspector/agents/page/PageDOMDebuggerAgent.cpp:
(WebCore::PageDOMDebuggerAgent::didRemoveDOMNode):
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopForUserCancel):
* Source/WebCore/loader/ios/LegacyPreviewLoader.mm:
(WebCore::LegacyPreviewLoader::previewConverterDidStartConverting):
* Source/WebCore/platform/network/cocoa/ResourceHandleCocoa.mm:
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
* Source/WebCore/platform/network/ios/WebCoreURLResponseIOS.mm:
(WebCore::adjustMIMETypeIfNecessary):
* Source/WebCore/svg/SVGAElement.cpp:
(WebCore::SVGAElement::SVGAElement):
* Source/WebCore/svg/SVGAltGlyphDefElement.cpp:
(WebCore::SVGAltGlyphDefElement::SVGAltGlyphDefElement):
* Source/WebCore/svg/SVGAltGlyphElement.cpp:
(WebCore::SVGAltGlyphElement::SVGAltGlyphElement):
* Source/WebCore/svg/SVGAltGlyphItemElement.cpp:
(WebCore::SVGAltGlyphItemElement::SVGAltGlyphItemElement):
* Source/WebCore/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::SVGAnimationElement):
* Source/WebCore/svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::SVGCircleElement):
* Source/WebCore/svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::SVGClipPathElement):
* Source/WebCore/svg/SVGComponentTransferFunctionElement.cpp:
(WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
* Source/WebCore/svg/SVGDefsElement.cpp:
(WebCore::SVGDefsElement::SVGDefsElement):
* Source/WebCore/svg/SVGDescElement.cpp:
(WebCore::SVGDescElement::SVGDescElement):
* Source/WebCore/svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::hasActiveSMILAnimations const):
* Source/WebCore/svg/SVGElement.cpp:
(WebCore::SVGElement::SVGElement):
* Source/WebCore/svg/SVGElement.h:
(WebCore::SVGElement::propertyRegistry const):
(WebCore::SVGElement::SVGElement):
* Source/WebCore/svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::SVGEllipseElement):
* Source/WebCore/svg/SVGFEBlendElement.cpp:
(WebCore::SVGFEBlendElement::SVGFEBlendElement):
* Source/WebCore/svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
* Source/WebCore/svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::SVGFEComponentTransferElement):
* Source/WebCore/svg/SVGFECompositeElement.cpp:
(WebCore::SVGFECompositeElement::SVGFECompositeElement):
* Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement):
* Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
* Source/WebCore/svg/SVGFEDisplacementMapElement.cpp:
(WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
* Source/WebCore/svg/SVGFEDropShadowElement.cpp:
(WebCore::SVGFEDropShadowElement::SVGFEDropShadowElement):
* Source/WebCore/svg/SVGFEFloodElement.cpp:
(WebCore::SVGFEFloodElement::SVGFEFloodElement):
* Source/WebCore/svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
* Source/WebCore/svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::SVGFEImageElement):
* Source/WebCore/svg/SVGFELightElement.cpp:
(WebCore::SVGFELightElement::SVGFELightElement):
* Source/WebCore/svg/SVGFEMergeElement.cpp:
(WebCore::SVGFEMergeElement::SVGFEMergeElement):
* Source/WebCore/svg/SVGFEMergeNodeElement.cpp:
(WebCore::SVGFEMergeNodeElement::SVGFEMergeNodeElement):
* Source/WebCore/svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::SVGFEMorphologyElement):
* Source/WebCore/svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::SVGFEOffsetElement):
* Source/WebCore/svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
* Source/WebCore/svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::SVGFETileElement):
* Source/WebCore/svg/SVGFETurbulenceElement.cpp:
(WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
* Source/WebCore/svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::SVGFilterElement):
* Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
* Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h:
* Source/WebCore/svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::SVGFontElement):
* Source/WebCore/svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::SVGFontFaceElement):
* Source/WebCore/svg/SVGFontFaceFormatElement.cpp:
(WebCore::SVGFontFaceFormatElement::SVGFontFaceFormatElement):
* Source/WebCore/svg/SVGFontFaceNameElement.cpp:
(WebCore::SVGFontFaceNameElement::SVGFontFaceNameElement):
* Source/WebCore/svg/SVGFontFaceSrcElement.cpp:
(WebCore::SVGFontFaceSrcElement::SVGFontFaceSrcElement):
* Source/WebCore/svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::SVGFontFaceUriElement):
* Source/WebCore/svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
* Source/WebCore/svg/SVGGElement.cpp:
(WebCore::SVGGElement::SVGGElement):
* Source/WebCore/svg/SVGGeometryElement.cpp:
(WebCore::SVGGeometryElement::SVGGeometryElement):
* Source/WebCore/svg/SVGGeometryElement.h:
* Source/WebCore/svg/SVGGlyphElement.cpp:
(WebCore::SVGGlyphElement::SVGGlyphElement):
* Source/WebCore/svg/SVGGlyphRefElement.cpp:
(WebCore::SVGGlyphRefElement::SVGGlyphRefElement):
* Source/WebCore/svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::SVGGradientElement):
* Source/WebCore/svg/SVGGradientElement.h:
* Source/WebCore/svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::SVGGraphicsElement):
* Source/WebCore/svg/SVGGraphicsElement.h:
(WebCore::SVGGraphicsElement::SVGGraphicsElement):
* Source/WebCore/svg/SVGHKernElement.cpp:
(WebCore::SVGHKernElement::SVGHKernElement):
* Source/WebCore/svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::SVGImageElement):
* Source/WebCore/svg/SVGLengthContext.cpp:
(WebCore::SVGLengthContext::cssConversionData const):
* Source/WebCore/svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::SVGLineElement):
* Source/WebCore/svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
* Source/WebCore/svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::SVGMPathElement):
* Source/WebCore/svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::SVGMarkerElement):
* Source/WebCore/svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::SVGMaskElement):
* Source/WebCore/svg/SVGMetadataElement.cpp:
(WebCore::SVGMetadataElement::SVGMetadataElement):
* Source/WebCore/svg/SVGMissingGlyphElement.cpp:
(WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
* Source/WebCore/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::SVGPathElement):
* Source/WebCore/svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::SVGPatternElement):
* Source/WebCore/svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::SVGPolyElement):
* Source/WebCore/svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
* Source/WebCore/svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::SVGRectElement):
* Source/WebCore/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::SVGSVGElement):
* Source/WebCore/svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::SVGScriptElement):
* Source/WebCore/svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::SVGStopElement):
* Source/WebCore/svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::SVGStyleElement):
* Source/WebCore/svg/SVGSwitchElement.cpp:
(WebCore::SVGSwitchElement::SVGSwitchElement):
* Source/WebCore/svg/SVGSymbolElement.cpp:
(WebCore::SVGSymbolElement::SVGSymbolElement):
* Source/WebCore/svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::SVGTRefElement):
* Source/WebCore/svg/SVGTSpanElement.cpp:
(WebCore::SVGTSpanElement::SVGTSpanElement):
* Source/WebCore/svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::SVGTextContentElement):
* Source/WebCore/svg/SVGTextContentElement.h:
* Source/WebCore/svg/SVGTextElement.cpp:
(WebCore::SVGTextElement::SVGTextElement):
* Source/WebCore/svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::SVGTextPathElement):
* Source/WebCore/svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
* Source/WebCore/svg/SVGTextPositioningElement.h:
* Source/WebCore/svg/SVGTitleElement.cpp:
(WebCore::SVGTitleElement::SVGTitleElement):
* Source/WebCore/svg/SVGUnknownElement.h:
* Source/WebCore/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::SVGUseElement):
* Source/WebCore/svg/SVGVKernElement.cpp:
(WebCore::SVGVKernElement::SVGVKernElement):
* Source/WebCore/svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::SVGViewElement):
* Source/WebCore/svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::SVGSMILElement):
* Source/WebCore/svg/animation/SVGSMILElement.h:
* Source/WebCore/svg/properties/SVGPropertyOwnerRegistry.h:
(WebCore::SVGPropertyOwnerRegistry::singleton):
(WebCore::SVGPropertyOwnerRegistry::owner const):
(WebCore::SVGPropertyOwnerRegistry::assertIsOwner const):
(WebCore::SVGPropertyOwnerRegistry::owner): Deleted.
* Source/WebCore/svg/properties/SVGPropertyRegistry.h:

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



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

Reply via email to