[webkit-changes] [WebKit/WebKit] 4bd642: Background WebContent Processes should fully suspe...

Miguel Salinas noreply at github.com
Thu Oct 13 12:53:27 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4bd642c8073d7a9880db59403458169ccd72183e
      https://github.com/WebKit/WebKit/commit/4bd642c8073d7a9880db59403458169ccd72183e
  Author: Miguel Salinas <miguel_salinas at apple.com>
  Date:   2022-10-13 (Thu, 13 Oct 2022)

  Changed paths:
    M Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm
    M Source/WebKit/UIProcess/ProcessThrottler.cpp
    M Source/WebKit/UIProcess/ProcessThrottler.h
    M Source/WebKit/UIProcess/ProcessThrottlerClient.h
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm

  Log Message:
  -----------
  Background WebContent Processes should fully suspend behind runtime flag
https://bugs.webkit.org/show_bug.cgi?id=246304
rdar://101001791

Reviewed by Chris Dumez.

Add a runtime flag "FullySuspendBackgroundTabs" which allows
ProcessThrottler to drop all RunningBoard assertions and consequently
suspend the throttled background WebContent process.

* Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _setAssertionTypeForTesting:]):
* Source/WebKit/UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::addActivity):
(WebKit::ProcessThrottler::removeActivity):
(WebKit::ProcessThrottler::expectedThrottleState):
(WebKit::ProcessThrottler::updateThrottleStateNow):
(WebKit::ProcessThrottler::assertionTypeForState):
(WebKit::ProcessThrottler::setThrottleState):
(WebKit::ProcessThrottler::updateThrottleStateIfNeeded):
(WebKit::ProcessThrottler::didConnectToProcess):
(WebKit::ProcessThrottler::prepareToSuspendTimeoutTimerFired):
(WebKit::ProcessThrottler::processReadyToSuspend):
(WebKit::ProcessThrottler::sendPrepareToSuspendIPC):
(WebKit::ProcessThrottler::enableFullSuspension):
(WebKit::ProcessThrottler::expectedAssertionType): Deleted.
(WebKit::ProcessThrottler::updateAssertionTypeNow): Deleted.
(WebKit::ProcessThrottler::setAssertionType): Deleted.
(WebKit::ProcessThrottler::updateAssertionIfNeeded): Deleted.
* Source/WebKit/UIProcess/ProcessThrottler.h:
* Source/WebKit/UIProcess/ProcessThrottlerClient.h:
(WebKit::ProcessThrottlerClient::didChangeThrottleState):
(WebKit::ProcessThrottlerClient::didSetAssertionType): Deleted.
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createWebPage):
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didChangeThrottleState):
(WebKit::WebProcessProxy::didSetAssertionType): Deleted.
* Source/WebKit/UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::setAssertionTypeForTesting):

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




More information about the webkit-changes mailing list