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