[webkit-changes] [WebKit/WebKit] 633346: [macOS] Adopt RunningBoard process assertions

Miguel Salinas noreply at github.com
Mon Sep 26 15:24:43 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6333464afab0d8b4e7bd9ea5bac1132a3bacd1ca
      https://github.com/WebKit/WebKit/commit/6333464afab0d8b4e7bd9ea5bac1132a3bacd1ca
  Author: Miguel Salinas <miguel_salinas at apple.com>
  Date:   2022-09-26 (Mon, 26 Sep 2022)

  Changed paths:
    M Source/WTF/wtf/PlatformUse.h
    M Source/WebKit/Configurations/WebKit.xcconfig
    M Source/WebKit/Scripts/process-entitlements.sh
    A Source/WebKit/Scripts/update-info-plist-for-runningboard.sh
    M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h
    M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp
    M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h
    A Source/WebKit/UIProcess/Cocoa/ProcessAssertionCocoa.mm
    M Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm
    M Source/WebKit/UIProcess/ProcessAssertion.cpp
    M Source/WebKit/UIProcess/ProcessAssertion.h
    R Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj

  Log Message:
  -----------
  [macOS] Adopt RunningBoard process assertions
https://bugs.webkit.org/show_bug.cgi?id=244998
rdar://99753987

Reviewed by Chris Dumez.

Adopt RunningBoard process assertions on macOS and stop leaking an
os_transaction in order to keep our XPC services alive.
This paves the way for suspendable processes on macOS since we now
receive SIGKILL on application exit instead of SIGTERM. This previously
caused a page load time regression due to removing the leaked boost on
the network and GPU processes.

* Source/WTF/wtf/PlatformUse.h:
* Source/WebKit/Configurations/WebKit.xcconfig:
* Source/WebKit/Scripts/process-entitlements.sh:
* Source/WebKit/Scripts/update-info-plist-for-runningboard.sh: Added.
* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceExit):
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::didFinishLaunching):
* Source/WebKit/UIProcess/AuxiliaryProcessProxy.h:
* Source/WebKit/UIProcess/Cocoa/ProcessAssertionCocoa.mm: Renamed from Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm.
(assertionsWorkQueue):
(processHasActiveRunTimeLimitation):
(+[WKProcessAssertionBackgroundTaskManager shared]):
(-[WKProcessAssertionBackgroundTaskManager init]):
(-[WKProcessAssertionBackgroundTaskManager dealloc]):
(-[WKProcessAssertionBackgroundTaskManager addAssertionNeedingBackgroundTask:]):
(-[WKProcessAssertionBackgroundTaskManager removeAssertionNeedingBackgroundTask:]):
(-[WKProcessAssertionBackgroundTaskManager _notifyAssertionsOfImminentSuspension]):
(-[WKProcessAssertionBackgroundTaskManager _scheduleReleaseTask]):
(-[WKProcessAssertionBackgroundTaskManager _cancelPendingReleaseTask]):
(-[WKProcessAssertionBackgroundTaskManager _hasBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager assertionWillInvalidate:]):
(-[WKProcessAssertionBackgroundTaskManager assertion:didInvalidateWithError:]):
(-[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpiration]):
(-[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpirationOnMainThread]):
(-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager setProcessStateMonitorEnabled:]):
(-[WKRBSAssertionDelegate dealloc]):
(-[WKRBSAssertionDelegate assertionWillInvalidate:]):
(-[WKRBSAssertionDelegate assertion:didInvalidateWithError:]):
(WebKit::runningBoardNameForAssertionType):
(WebKit::runningBoardDomainForAssertionType):
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::remainingRunTimeInSeconds):
(WebKit::ProcessAssertion::acquireAsync):
(WebKit::ProcessAssertion::acquireSync):
(WebKit::ProcessAssertion::~ProcessAssertion):
(WebKit::ProcessAssertion::processAssertionWillBeInvalidated):
(WebKit::ProcessAssertion::processAssertionWasInvalidated):
(WebKit::ProcessAssertion::isValid const):
(WebKit::ProcessAndUIAssertion::ProcessAndUIAssertion):
(WebKit::ProcessAndUIAssertion::~ProcessAndUIAssertion):
(WebKit::ProcessAndUIAssertion::updateRunInBackgroundCount):
(WebKit::ProcessAndUIAssertion::setProcessStateMonitorEnabled):
(WebKit::ProcessAndUIAssertion::uiAssertionWillExpireImminently):
(WebKit::ProcessAndUIAssertion::processAssertionWasInvalidated):
* Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
(WebKit::shouldLeakBoost):
* Source/WebKit/UIProcess/ProcessAssertion.cpp:
* Source/WebKit/UIProcess/ProcessAssertion.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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




More information about the webkit-changes mailing list