Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 05b6f71120e1843b3f7461a3033edc833e3f2d30
https://github.com/WebKit/WebKit/commit/05b6f71120e1843b3f7461a3033edc833e3f2d30
Author: Ben Nham <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M Source/JavaScriptCore/API/tests/Regress141275.mm
M Source/JavaScriptCore/inspector/remote/cocoa/RemoteInspectorCocoa.mm
M Source/JavaScriptCore/jsc.cpp
M Source/WTF/wtf/cocoa/WorkQueueCocoa.cpp
M Source/WTF/wtf/darwin/DispatchExtras.h
M Source/WebCore/platform/cocoa/NetworkExtensionContentFilter.mm
M
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm
M Source/WebCore/platform/graphics/avfoundation/objc/QueuedVideoOutput.mm
M Source/WebCore/platform/graphics/cocoa/PeriodicSharedTimer.mm
M Source/WebCore/platform/mac/PowerObserverMac.cpp
M Source/WebCore/platform/mediastream/cocoa/AVVideoCaptureSource.mm
M Source/WebCore/platform/mediastream/cocoa/ScreenCaptureKitCaptureSource.mm
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm
M Source/WebKit/UIProcess/Cocoa/WKScreenTimeConfigurationObserver.mm
M Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
M Source/WebKit/UIProcess/XR/ios/WKARPresentationSession.mm
M Source/WebKit/UIProcess/XR/xros/WKXRTrackingManager.mm
M Source/WebKit/UIProcess/ios/WKWebGeolocationPolicyDeciderIOS.mm
M Source/WebKit/UIProcess/mac/ServicesController.mm
M Source/WebKit/webpushd/_WKMockUserNotificationCenter.mm
M Source/WebKitLegacy/mac/WebView/WebPreferences.mm
M Tools/Scripts/webkitpy/style/checkers/cpp.py
M Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py
M Tools/TestWebKitAPI/Helpers/mac/VirtualGamepad.mm
M Tools/TestWebKitAPI/Tests/WTF/darwin/OSObjectPtr.cpp
Log Message:
-----------
Create dispatch queues with autorelease pools
https://bugs.webkit.org/show_bug.cgi?id=290004
rdar://147361301
Reviewed by Per Arne Vollan.
For legacy reasons, dispatch queues do not drain an autorelease pool for each
work item. Instead,
root autoreleased objects will accumulate in a last-resort pool which drains
when the worker thread
backing the queue exits.
To fix this, use the `WITH_AUTORELEASE_POOL` attribute when creating dispatch
queues so each work
item is executed with its own autorelease pool. Also add a style rule to
enforce this in the future.
* Source/JavaScriptCore/API/tests/Regress141275.mm:
(-[JSTEvaluator init]):
* Source/JavaScriptCore/inspector/remote/cocoa/RemoteInspectorCocoa.mm:
(Inspector::RemoteInspector::RemoteInspector):
* Source/JavaScriptCore/jsc.cpp:
(jscmain):
* Source/WTF/wtf/cocoa/WorkQueueCocoa.cpp:
(WTF::WorkQueueBase::platformInitialize):
* Source/WTF/wtf/darwin/DispatchExtras.h:
(WTF::serialQueueWithAutoreleasePoolAttrSingleton):
(WTF::concurrentQueueWithAutoreleasePoolAttrSingleton):
* Source/WebCore/platform/cocoa/NetworkExtensionContentFilter.mm:
(WebCore::NetworkExtensionContentFilter::initialize):
*
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::globalLoaderDelegateQueue):
* Source/WebCore/platform/graphics/avfoundation/objc/QueuedVideoOutput.mm:
(WebCore::globalOutputDelegateQueue):
* Source/WebCore/platform/graphics/cocoa/PeriodicSharedTimer.mm:
(WebCore::PeriodicSharedTimer::PeriodicSharedTimer):
* Source/WebCore/platform/mac/PowerObserverMac.cpp:
(WebCore::PowerObserver::PowerObserver):
* Source/WebCore/platform/mediastream/cocoa/AVVideoCaptureSource.mm:
(WebCore::globaVideoCaptureSerialQueue):
* Source/WebCore/platform/mediastream/cocoa/ScreenCaptureKitCaptureSource.mm:
(WebCore::ScreenCaptureKitCaptureSource::captureQueue):
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:
(WebKit::tcpSocketQueueSingleton):
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:
(WebKit::udpSocketQueueSingleton):
* Source/WebKit/UIProcess/Cocoa/WKScreenTimeConfigurationObserver.mm:
(screenTimeUpdateQueueSingleton):
* Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::setMediaAccessibilityPreferences):
* Source/WebKit/UIProcess/XR/ios/WKARPresentationSession.mm:
(-[_WKTransientGestureRecognizer initWithSession:]):
* Source/WebKit/UIProcess/XR/xros/WKXRTrackingManager.mm:
(-[WKXRTrackingManager
initWithHandTrackingEnabled:layerRenderer:controllerManager:]):
* Source/WebKit/UIProcess/ios/WKWebGeolocationPolicyDeciderIOS.mm:
(-[WKWebGeolocationPolicyDecider init]):
* Source/WebKit/UIProcess/mac/ServicesController.mm:
(WebKit::ServicesController::ServicesController):
* Source/WebKit/webpushd/_WKMockUserNotificationCenter.mm:
(-[_WKMockUserNotificationCenter initWithBundleIdentifierInternal:]):
* Source/WebKitLegacy/mac/WebView/WebPreferences.mm:
(WebPreferencesPrivate::WebPreferencesPrivate):
* Tools/Scripts/webkitpy/style/checkers/cpp.py:
(check_language):
(CppChecker):
* Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTest):
(WebKitStyleTest.test_auto_with_adopt):
(WebKitStyleTest.test_wtf_os_object_ptr):
* Tools/TestWebKitAPI/Helpers/mac/VirtualGamepad.mm:
(TestWebKitAPI::VirtualGamepad::VirtualGamepad):
* Tools/TestWebKitAPI/Tests/WTF/darwin/OSObjectPtr.cpp:
(TestWebKitAPI::TEST(OS_OBJECT_PTR_TEST_NAME, AdoptOSObject)):
(TestWebKitAPI::TEST(OS_OBJECT_PTR_TEST_NAME, RetainRelease)):
(TestWebKitAPI::TEST(OS_OBJECT_PTR_TEST_NAME, LeakRef)):
Canonical link: https://commits.webkit.org/320042@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications