[webkit-changes] [WebKit/WebKit] 0420e9: [macOS] background tab suspension - 3.5% MBA8, 2 me...
Miguel Salinas
noreply at github.com
Fri Apr 21 14:35:47 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0420e99f106002c9da9e4803154ae715289a3087
https://github.com/WebKit/WebKit/commit/0420e99f106002c9da9e4803154ae715289a3087
Author: Miguel Salinas <miguel_salinas at apple.com>
Date: 2023-04-21 (Fri, 21 Apr 2023)
Changed paths:
M Source/WebKit/UIProcess/ProcessThrottler.cpp
M Source/WebKit/UIProcess/ProcessThrottler.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
Log Message:
-----------
[macOS] background tab suspension - 3.5% MBA8,2 membuster regression
https://bugs.webkit.org/show_bug.cgi?id=255226
rdar://106969950
Reviewed by Chris Dumez.
Membuster sends a low memory signal to web content processes to measure
the memory impact of our low memory handler. When runningboard
throttling is enabled on MBA8,2 the web content process never gets
scheduled due to the machine only having 2 cores and the web content
process having a priority of darwin_bg. This fix holds the foreground
assertion for 8 minutes after the last foreground activity is released
to ensure we have enough time to handle the low memory signal in
membuster. I also tried having the web content process take an assertion
on itself for the duration of the low memory handler but that did not
fix the regression.
* Source/WebKit/UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottlerTimedActivity::ProcessThrottlerTimedActivity):
(WebKit::ProcessThrottlerTimedActivity::operator=):
(WebKit::ProcessThrottlerTimedActivity::activityTimedOut):
(WebKit::ProcessThrottlerTimedActivity::updateTimer):
(WebKit::ProcessThrottler::TimedActivity::TimedActivity): Deleted.
(WebKit::ProcessThrottler::TimedActivity::operator=): Deleted.
(WebKit::ProcessThrottler::TimedActivity::activityTimedOut): Deleted.
(WebKit::ProcessThrottler::TimedActivity::updateTimer): Deleted.
* Source/WebKit/UIProcess/ProcessThrottler.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::ProcessActivityState::ProcessActivityState):
(WebKit::WebPageProxy::ProcessActivityState::takeVisibleActivity):
(WebKit::WebPageProxy::ProcessActivityState::takeAudibleActivity):
(WebKit::WebPageProxy::ProcessActivityState::takeCapturingActivity):
(WebKit::WebPageProxy::ProcessActivityState::reset):
(WebKit::WebPageProxy::ProcessActivityState::dropVisibleActivity):
(WebKit::WebPageProxy::ProcessActivityState::dropAudibleActivity):
(WebKit::WebPageProxy::ProcessActivityState::dropCapturingActivity):
(WebKit::WebPageProxy::ProcessActivityState::hasValidVisibleActivity const):
(WebKit::WebPageProxy::ProcessActivityState::hasValidAudibleActivity const):
(WebKit::WebPageProxy::ProcessActivityState::hasValidCapturingActivity const):
(WebKit::WebPageProxy::ProcessActivityState::takeOpeningAppLinkActivity):
(WebKit::WebPageProxy::ProcessActivityState::dropOpeningAppLinkActivity):
(WebKit::WebPageProxy::ProcessActivityState::hasValidOpeningAppLinkActivity const):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::updateThrottleState):
(WebKit::WebPageProxy::clearAudibleActivity):
(WebKit::WebPageProxy::waitForDidUpdateActivityState):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::willOpenAppLink):
Canonical link: https://commits.webkit.org/263264@main
More information about the webkit-changes
mailing list