Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2f2fe47009094437126a5cf55d07b429fae71fff
      
https://github.com/WebKit/WebKit/commit/2f2fe47009094437126a5cf55d07b429fae71fff
  Author: Chris Dumez <[email protected]>
  Date:   2023-05-08 (Mon, 08 May 2023)

  Changed paths:
    M Source/WebKit/UIProcess/ProcessThrottler.cpp
    M Source/WebKit/UIProcess/ProcessThrottlerClient.h
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h
    M Source/WebKit/WebProcess/WebProcess.cpp
    M Source/WebKit/WebProcess/WebProcess.h
    M Source/WebKit/WebProcess/WebProcess.messages.in

  Log Message:
  -----------
  [macOS] Release memory in WebProcesses before fully suspending them
https://bugs.webkit.org/show_bug.cgi?id=256332
rdar://108625394

Reviewed by Geoffrey Garen.

Before dropping the last assertion for a WebProcess on macOS, send
a ReleaseMemory IPC to it and slim down the process as much as possible
before suspension.

We don't do this for processes in the WebProcessCache for performance
reasons. These processes exit on memory pressure anyway.

* Source/WebKit/UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::setThrottleState):
(WebKit::ProcessThrottler::dropNearSuspendedAssertionTimerFired):
(WebKit::ProcessThrottler::numberOfPagesAllowedToRunInTheBackgroundChanged):
* Source/WebKit/UIProcess/ProcessThrottlerClient.h:
(WebKit::ProcessThrottlerClient::prepareToDropLastAssertion):
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::prepareToDropLastAssertion):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::releaseMemory):
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/WebProcess.messages.in:

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to