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

Reply via email to