Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bf47ad4f9e351004a197f61b30dae13c11a03c37 https://github.com/WebKit/WebKit/commit/bf47ad4f9e351004a197f61b30dae13c11a03c37 Author: Geoffrey Garen <gga...@apple.com> Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths: M Source/WTF/wtf/CheckedRef.h M Source/WTF/wtf/FastMalloc.h M Source/WTF/wtf/SingleThreadIntegralWrapper.h M Source/WebCore/Modules/fetch/FetchLoader.h M Source/WebCore/Modules/notifications/NotificationResourcesLoader.h M Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.h M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/animation/DocumentTimelinesController.h M Source/WebCore/bindings/js/ScriptController.h M Source/WebCore/dom/CustomElementDefaultARIA.h M Source/WebCore/dom/CustomElementReactionQueue.h M Source/WebCore/dom/DeviceMotionController.h M Source/WebCore/dom/DeviceOrientationController.h M Source/WebCore/dom/DocumentMarkerController.h M Source/WebCore/dom/EventLoop.h M Source/WebCore/dom/ExtensionStyleSheets.cpp M Source/WebCore/dom/ExtensionStyleSheets.h M Source/WebCore/dom/FullscreenManager.h M Source/WebCore/dom/IdTargetObserver.h M Source/WebCore/dom/IdTargetObserverRegistry.cpp M Source/WebCore/dom/IdTargetObserverRegistry.h M Source/WebCore/dom/PendingScriptClient.h M Source/WebCore/dom/RejectedPromiseTracker.h M Source/WebCore/dom/ScriptRunner.h M Source/WebCore/dom/VisitedLinkState.h M Source/WebCore/dom/messageports/MessagePortChannelRegistry.h M Source/WebCore/dom/messageports/WorkerMessagePortChannelProvider.h M Source/WebCore/editing/Editor.h M Source/WebCore/editing/FrameSelection.h M Source/WebCore/editing/TextManipulationController.h M Source/WebCore/fileapi/FileReaderLoader.h M Source/WebCore/history/BackForwardController.h M Source/WebCore/history/CachedPage.h M Source/WebCore/html/FTPDirectoryDocument.cpp M Source/WebCore/html/FormListedElement.cpp M Source/WebCore/html/HTMLInputElement.cpp M Source/WebCore/html/parser/HTMLDocumentParser.h M Source/WebCore/html/parser/TextDocumentParser.h M Source/WebCore/html/shadow/SliderThumbElement.cpp M Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp M Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.h M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h M Source/WebCore/layout/layouttree/LayoutBox.h M Source/WebCore/layout/layouttree/LayoutElementBox.h M Source/WebCore/layout/layouttree/LayoutInitialContainingBlock.h M Source/WebCore/layout/layouttree/LayoutInlineTextBox.h M Source/WebCore/loader/EmptyClients.cpp M Source/WebCore/loader/FrameLoader.cpp M Source/WebCore/loader/FrameLoader.h M Source/WebCore/loader/HistoryController.h M Source/WebCore/loader/NavigationScheduler.h M Source/WebCore/loader/ProgressTracker.h M Source/WebCore/loader/ThreadableLoaderClient.h M Source/WebCore/loader/WorkerThreadableLoader.cpp M Source/WebCore/loader/WorkerThreadableLoader.h M Source/WebCore/page/AlternativeTextClient.h M Source/WebCore/page/DeviceController.h M Source/WebCore/page/DiagnosticLoggingClient.h M Source/WebCore/page/EditorClient.h M Source/WebCore/page/ElementTargetingController.h M Source/WebCore/page/EventHandler.h M Source/WebCore/page/EventSource.h M Source/WebCore/page/FocusController.h M Source/WebCore/page/FrameView.h M Source/WebCore/page/LocalFrameView.h M Source/WebCore/page/LocalFrameViewLayoutContext.h M Source/WebCore/page/PageConsoleClient.h M Source/WebCore/page/RemoteFrameView.h M Source/WebCore/page/RenderingUpdateScheduler.h M Source/WebCore/page/csp/ContentSecurityPolicy.h M Source/WebCore/page/scrolling/ScrollingStateTree.h M Source/WebCore/platform/KeyboardScrollingAnimator.h M Source/WebCore/platform/OrientationNotifier.h M Source/WebCore/platform/ScrollView.h M Source/WebCore/platform/ScrollableArea.cpp M Source/WebCore/platform/ScrollableArea.h M Source/WebCore/platform/cocoa/PlaybackSessionModel.h M Source/WebCore/platform/cocoa/VideoPresentationModel.h M Source/WebCore/platform/cocoa/WebAVPlayerLayer.mm M Source/WebCore/platform/graphics/DisplayRefreshMonitorClient.h M Source/WebCore/platform/graphics/FontCascade.h M Source/WebCore/platform/graphics/TextRun.cpp M Source/WebCore/platform/graphics/TextRun.h M Source/WebCore/platform/graphics/TiledBacking.h M Source/WebCore/platform/graphics/ca/LayerPool.h M Source/WebCore/platform/graphics/ca/TileController.h M Source/WebCore/platform/graphics/cocoa/NullPlaybackSessionInterface.h M Source/WebCore/platform/graphics/cocoa/NullVideoPresentationInterface.h M Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.h M Source/WebCore/platform/ios/PlaybackSessionInterfaceIOS.h M Source/WebCore/platform/ios/PlaybackSessionInterfaceIOS.mm M Source/WebCore/platform/ios/VideoPresentationInterfaceAVKit.h M Source/WebCore/platform/ios/VideoPresentationInterfaceIOS.h M Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm M Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.h M Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.mm M Source/WebCore/platform/mac/VideoPresentationInterfaceMac.h M Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.h M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.h M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.h M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateMock.h M Source/WebCore/platform/mediastream/AudioTrackPrivateMediaStream.h M Source/WebCore/platform/mediastream/RealtimeMediaSource.h M Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp M Source/WebCore/platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.h M Source/WebCore/platform/mediastream/mac/MediaStreamTrackAudioSourceProviderCocoa.h M Source/WebCore/platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.h M Source/WebCore/platform/network/curl/CurlMultipartHandleClient.h M Source/WebCore/platform/network/curl/CurlRequest.h M Source/WebCore/platform/sql/SQLiteDatabase.h M Source/WebCore/rendering/AccessibilityRegionContext.h M Source/WebCore/rendering/EventRegion.h M Source/WebCore/rendering/LegacyRootInlineBox.cpp M Source/WebCore/rendering/LegacyRootInlineBox.h M Source/WebCore/rendering/MarkedText.h M Source/WebCore/rendering/RegionContext.h M Source/WebCore/rendering/RenderAttachment.cpp M Source/WebCore/rendering/RenderAttachment.h M Source/WebCore/rendering/RenderBlock.h M Source/WebCore/rendering/RenderBlockFlow.h M Source/WebCore/rendering/RenderBox.h M Source/WebCore/rendering/RenderBoxModelObject.h M Source/WebCore/rendering/RenderButton.h M Source/WebCore/rendering/RenderCombineText.cpp M Source/WebCore/rendering/RenderCombineText.h M Source/WebCore/rendering/RenderCounter.h M Source/WebCore/rendering/RenderDeprecatedFlexibleBox.h M Source/WebCore/rendering/RenderDetailsMarker.cpp M Source/WebCore/rendering/RenderDetailsMarker.h M Source/WebCore/rendering/RenderElement.h M Source/WebCore/rendering/RenderEmbeddedObject.h M Source/WebCore/rendering/RenderFileUploadControl.h M Source/WebCore/rendering/RenderFlexibleBox.h M Source/WebCore/rendering/RenderFragmentContainer.cpp M Source/WebCore/rendering/RenderFragmentContainer.h M Source/WebCore/rendering/RenderFragmentContainerSet.cpp M Source/WebCore/rendering/RenderFragmentContainerSet.h M Source/WebCore/rendering/RenderFragmentedFlow.cpp M Source/WebCore/rendering/RenderFragmentedFlow.h M Source/WebCore/rendering/RenderFrame.cpp M Source/WebCore/rendering/RenderFrame.h M Source/WebCore/rendering/RenderFrameBase.cpp M Source/WebCore/rendering/RenderFrameBase.h M Source/WebCore/rendering/RenderFrameSet.h M Source/WebCore/rendering/RenderGrid.h M Source/WebCore/rendering/RenderHTMLCanvas.cpp M Source/WebCore/rendering/RenderHTMLCanvas.h M Source/WebCore/rendering/RenderIFrame.cpp M Source/WebCore/rendering/RenderIFrame.h M Source/WebCore/rendering/RenderImage.h M Source/WebCore/rendering/RenderImageResource.cpp M Source/WebCore/rendering/RenderImageResource.h M Source/WebCore/rendering/RenderImageResourceStyleImage.h M Source/WebCore/rendering/RenderInline.cpp M Source/WebCore/rendering/RenderInline.h M Source/WebCore/rendering/RenderLayer.h M Source/WebCore/rendering/RenderLayerModelObject.h M Source/WebCore/rendering/RenderLayerScrollableArea.h M Source/WebCore/rendering/RenderLineBreak.h M Source/WebCore/rendering/RenderListBox.h M Source/WebCore/rendering/RenderListItem.h M Source/WebCore/rendering/RenderListMarker.h M Source/WebCore/rendering/RenderMedia.h M Source/WebCore/rendering/RenderMenuList.h M Source/WebCore/rendering/RenderMeter.h M Source/WebCore/rendering/RenderModel.h M Source/WebCore/rendering/RenderMultiColumnFlow.h M Source/WebCore/rendering/RenderMultiColumnSet.cpp M Source/WebCore/rendering/RenderMultiColumnSet.h M Source/WebCore/rendering/RenderMultiColumnSpannerPlaceholder.cpp M Source/WebCore/rendering/RenderMultiColumnSpannerPlaceholder.h M Source/WebCore/rendering/RenderObject.cpp M Source/WebCore/rendering/RenderObject.h M Source/WebCore/rendering/RenderProgress.h M Source/WebCore/rendering/RenderQuote.h M Source/WebCore/rendering/RenderReplaced.h M Source/WebCore/rendering/RenderReplica.h M Source/WebCore/rendering/RenderScrollbarPart.h M Source/WebCore/rendering/RenderSearchField.h M Source/WebCore/rendering/RenderSlider.h M Source/WebCore/rendering/RenderTable.h M Source/WebCore/rendering/RenderTableCaption.h M Source/WebCore/rendering/RenderTableCell.cpp M Source/WebCore/rendering/RenderTableCell.h M Source/WebCore/rendering/RenderTableCol.cpp M Source/WebCore/rendering/RenderTableCol.h M Source/WebCore/rendering/RenderTableRow.cpp M Source/WebCore/rendering/RenderTableRow.h M Source/WebCore/rendering/RenderTableSection.h M Source/WebCore/rendering/RenderText.h M Source/WebCore/rendering/RenderTextControl.cpp M Source/WebCore/rendering/RenderTextControl.h M Source/WebCore/rendering/RenderTextControlMultiLine.h M Source/WebCore/rendering/RenderTextControlSingleLine.cpp M Source/WebCore/rendering/RenderTextControlSingleLine.h M Source/WebCore/rendering/RenderTextFragment.h M Source/WebCore/rendering/RenderTheme.cpp M Source/WebCore/rendering/RenderTheme.h M Source/WebCore/rendering/RenderVTTCue.cpp M Source/WebCore/rendering/RenderVTTCue.h M Source/WebCore/rendering/RenderVideo.h M Source/WebCore/rendering/RenderView.h M Source/WebCore/rendering/RenderViewTransitionCapture.cpp M Source/WebCore/rendering/RenderViewTransitionCapture.h M Source/WebCore/rendering/RenderWidget.h M Source/WebCore/rendering/StyledMarkedText.h M Source/WebCore/rendering/adwaita/RenderThemeAdwaita.cpp M Source/WebCore/rendering/adwaita/RenderThemeAdwaita.h M Source/WebCore/rendering/ios/RenderThemeIOS.h M Source/WebCore/rendering/ios/RenderThemeIOS.mm M Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp M Source/WebCore/rendering/mathml/RenderMathMLBlock.h M Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp M Source/WebCore/rendering/mathml/RenderMathMLFenced.h M Source/WebCore/rendering/mathml/RenderMathMLFencedOperator.cpp M Source/WebCore/rendering/mathml/RenderMathMLFencedOperator.h M Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp M Source/WebCore/rendering/mathml/RenderMathMLFraction.h M Source/WebCore/rendering/mathml/RenderMathMLMath.cpp M Source/WebCore/rendering/mathml/RenderMathMLMath.h M Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp M Source/WebCore/rendering/mathml/RenderMathMLMenclose.h M Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp M Source/WebCore/rendering/mathml/RenderMathMLOperator.h M Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp M Source/WebCore/rendering/mathml/RenderMathMLPadded.h M Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp M Source/WebCore/rendering/mathml/RenderMathMLRoot.h M Source/WebCore/rendering/mathml/RenderMathMLRow.cpp M Source/WebCore/rendering/mathml/RenderMathMLRow.h M Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp M Source/WebCore/rendering/mathml/RenderMathMLScripts.h M Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp M Source/WebCore/rendering/mathml/RenderMathMLSpace.h M Source/WebCore/rendering/mathml/RenderMathMLToken.cpp M Source/WebCore/rendering/mathml/RenderMathMLToken.h M Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp M Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h M Source/WebCore/rendering/style/RenderStyle.h M Source/WebCore/rendering/svg/RenderSVGBlock.cpp M Source/WebCore/rendering/svg/RenderSVGBlock.h M Source/WebCore/rendering/svg/RenderSVGContainer.h M Source/WebCore/rendering/svg/RenderSVGEllipse.h M Source/WebCore/rendering/svg/RenderSVGForeignObject.h M Source/WebCore/rendering/svg/RenderSVGGradientStop.h M Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp M Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h M Source/WebCore/rendering/svg/RenderSVGImage.h M Source/WebCore/rendering/svg/RenderSVGInline.cpp M Source/WebCore/rendering/svg/RenderSVGInline.h M Source/WebCore/rendering/svg/RenderSVGInlineText.cpp M Source/WebCore/rendering/svg/RenderSVGInlineText.h M Source/WebCore/rendering/svg/RenderSVGModelObject.cpp M Source/WebCore/rendering/svg/RenderSVGModelObject.h M Source/WebCore/rendering/svg/RenderSVGPath.h M Source/WebCore/rendering/svg/RenderSVGRect.h M Source/WebCore/rendering/svg/RenderSVGResourceClipper.h M Source/WebCore/rendering/svg/RenderSVGResourceContainer.h M Source/WebCore/rendering/svg/RenderSVGResourceGradient.h M Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.h M Source/WebCore/rendering/svg/RenderSVGResourceMarker.h M Source/WebCore/rendering/svg/RenderSVGResourceMasker.h M Source/WebCore/rendering/svg/RenderSVGResourcePaintServer.h M Source/WebCore/rendering/svg/RenderSVGResourcePattern.h M Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.h M Source/WebCore/rendering/svg/RenderSVGRoot.h M Source/WebCore/rendering/svg/RenderSVGShape.h M Source/WebCore/rendering/svg/RenderSVGTSpan.h M Source/WebCore/rendering/svg/RenderSVGText.h M Source/WebCore/rendering/svg/RenderSVGTextPath.cpp M Source/WebCore/rendering/svg/RenderSVGTextPath.h M Source/WebCore/rendering/svg/RenderSVGTransformableContainer.cpp M Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h M Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp M Source/WebCore/rendering/svg/RenderSVGViewportContainer.h M Source/WebCore/rendering/svg/SVGRootInlineBox.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGContainer.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGEllipse.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGForeignObject.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGHiddenContainer.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGImage.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.cpp M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGPath.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRect.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceClipper.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceContainer.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilter.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilterPrimitive.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceGradient.cpp M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceGradient.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceLinearGradient.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceMarker.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceMasker.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourcePattern.cpp M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourcePattern.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceRadialGradient.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGTransformableContainer.cpp M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGTransformableContainer.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGViewportContainer.cpp M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGViewportContainer.h M Source/WebCore/style/StyleScope.h M Source/WebCore/style/StyleUpdate.h M Source/WebCore/svg/SVGDocumentExtensions.h M Source/WebCore/testing/Internals.h M Source/WebCore/workers/WorkerFontLoadRequest.h M Source/WebCore/workers/WorkerOrWorkletScriptController.h M Source/WebCore/workers/WorkerScriptLoader.h M Source/WebCore/workers/service/server/SWServer.h M Source/WebCore/workers/service/server/SWServerJobQueue.h M Source/WebCore/workers/service/server/SWServerToContextConnection.h M Source/WebCore/xml/XMLHttpRequest.h M Source/WebCore/xml/parser/XMLDocumentParser.h M Source/WebKit/NetworkProcess/Downloads/DownloadManager.h M Source/WebKit/NetworkProcess/NetworkProcess.h M Source/WebKit/NetworkProcess/NetworkSession.h M Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.h M Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.h M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h M Source/WebKit/Platform/ios/PlaybackSessionInterfaceLMK.h M Source/WebKit/Platform/ios/VideoPresentationInterfaceLMK.h M Source/WebKit/UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp M Source/WebKit/UIProcess/DisplayLink.h M Source/WebKit/UIProcess/DisplayLinkProcessProxyClient.h M Source/WebKit/UIProcess/GPU/GPUProcessProxy.h M Source/WebKit/UIProcess/Inspector/RemoteWebInspectorUIProxy.h M Source/WebKit/UIProcess/Inspector/glib/RemoteInspectorClient.cpp M Source/WebKit/UIProcess/Inspector/socket/RemoteInspectorClient.cpp M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h M Source/WebKit/UIProcess/ProcessThrottler.cpp M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeDrawingAreaProxyMac.mm M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.cpp M Source/WebKit/UIProcess/SuspendedPageProxy.h M Source/WebKit/UIProcess/WebBackForwardCache.h M Source/WebKit/UIProcess/WebProcessCache.h M Source/WebKit/UIProcess/WebProcessProxy.h M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm M Source/WebKit/UIProcess/mac/WebViewImpl.h M Source/WebKit/UIProcess/win/WebPopupMenuProxyWin.h M Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.h M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm M Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebAlternativeTextClient.h M Source/WebKit/WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h M Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.h M Source/WebKit/WebProcess/WebPage/wc/GraphicsLayerWC.cpp M Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.h M Source/WebKit/WebProcess/cocoa/VideoPresentationManager.h M Source/WebKitLegacy/Storage/StorageThread.h M Source/WebKitLegacy/WebCoreSupport/WebResourceLoadScheduler.h M Source/WebKitLegacy/mac/WebCoreSupport/WebAlternativeTextClient.h M Tools/TestWebKitAPI/Tests/WTF/CheckedPtr.cpp M Tools/TestWebKitAPI/Tests/WTF/CheckedRef.cpp M Tools/TestWebKitAPI/Tests/WTF/Hasher.cpp M Tools/TestWebKitAPI/Tests/WebCore/curl/CurlMultipartHandleTests.cpp Log Message: ----------- CheckedPtr should use zombie mode https://github.com/WebKit/WebKit/pull/27212 Reviewed by Ryosuke Niwa. Previously a dangling CheckedPtr triggered a crash in the destructor of the pointed-to object. That kind of crash was hard to debug, since the backtrace didn't report any information about the pointer. As a result, we've had to limit CheckedPtr adoption. Now a dangling CheckedPtr triggers a crash in the CheckedPtr's destructor, so the backtrace points the finger at the dangling pointer. Now, we can use CheckedPtr as much as we like. Note: We explicitly check-and-crash in the CheckedPtr's destructor, but in release builds we don't explicitly check-and-crash in the CheckedPtr's accessor methods. This maintains CheckedPtr's feature of having nearly identical performance to a raw pointer. Even though we don't explicitly check-and-crash in the CheckedPtr's accessor methods, all accesses are memory safe. The implementation detects a dangling CheckedPtr, and then zeroes and leaks the pointed-to object instead of freeing it. Therefore, any attempt to dereference a pointer data member in the pointed-to object deterministically crashes with a nullptr dereference. This change requires putting a special macro in every subclass in a class hierarchy that uses CheckedPtr, since we need to override operator delete in order to leak the pointed-to object. (If you forget the macro entirely, you'll get a compile-time failure. If you remember the macro in a base class but forget it in a subclass, you'll get a debug assertion. This is similar to how IsoHeaps work.) When we check ptrCount() at destruction time, we use a new function, SingleThreadIntegralWrapper::valueWithoutThreadCheck(). We use this because checking happens after ~SingleThreadIntegralWrapper() runs, which means that SingleThreadIntegralWrapper::m_thread is null. It's thread-safe to stop doing thread checks after destruction; in theory no thread has any outstanding reference anymore. Canonical link: https://commits.webkit.org/277590@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes