Title: [295383] branches/safari-7614.1.16-branch/Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm
- Revision
- 295383
- Author
- [email protected]
- Date
- 2022-06-08 10:20:42 -0700 (Wed, 08 Jun 2022)
Log Message
Cherry-pick r295254. rdar://problem/94314081
Regression (r294405): missing tiles during scrolling after foregrounding app
https://bugs.webkit.org/show_bug.cgi?id=241280
Reviewed by Chris Dumez.
Partially revert r294405 to disable ProcessStateMonitor that can make UI process fail to take foreground assertion after
app is foregrounded.
* Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKProcessAssertionBackgroundTaskManager init]):
(-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]):
Canonical link: https://commits.webkit.org/251302@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@295254 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modified Paths
Diff
Modified: branches/safari-7614.1.16-branch/Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm (295382 => 295383)
--- branches/safari-7614.1.16-branch/Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm 2022-06-08 16:31:21 UTC (rev 295382)
+++ branches/safari-7614.1.16-branch/Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm 2022-06-08 17:20:42 UTC (rev 295383)
@@ -29,7 +29,6 @@
#if PLATFORM(IOS_FAMILY)
#import "Logging.h"
-#import "ProcessStateMonitor.h"
#import "RunningBoardServicesSPI.h"
#import "WebProcessPool.h"
#import <UIKit/UIApplication.h>
@@ -74,7 +73,6 @@
std::atomic<bool> _backgroundTaskWasInvalidated;
WeakHashSet<ProcessAndUIAssertion> _assertionsNeedingBackgroundTask;
dispatch_block_t _pendingTaskReleaseTask;
- std::unique_ptr<WebKit::ProcessStateMonitor> m_processStateMonitor;
}
+ (WKProcessAssertionBackgroundTaskManager *)shared
@@ -94,20 +92,11 @@
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationWillEnterForegroundNotification object:[UIApplication sharedApplication] queue:nil usingBlock:^(NSNotification *) {
[self _cancelPendingReleaseTask];
[self _updateBackgroundTask];
-
- m_processStateMonitor = nullptr;
}];
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidEnterBackgroundNotification object:[UIApplication sharedApplication] queue:nil usingBlock:^(NSNotification *) {
if (![self _hasBackgroundTask])
WebKit::WebProcessPool::notifyProcessPoolsApplicationIsAboutToSuspend();
-
- if (!m_processStateMonitor) {
- m_processStateMonitor = makeUnique<WebKit::ProcessStateMonitor>([](bool suspended) {
- for (auto& processPool : WebKit::WebProcessPool::allProcessPools())
- processPool->setProcessesShouldSuspend(suspended);
- });
- }
}];
return self;
@@ -253,11 +242,8 @@
return;
RELEASE_LOG(ProcessSuspension, "%p - WKProcessAssertionBackgroundTaskManager: endBackgroundTask", self);
- if (processHasActiveRunTimeLimitation()) {
+ if (processHasActiveRunTimeLimitation())
WebKit::WebProcessPool::notifyProcessPoolsApplicationIsAboutToSuspend();
- if (m_processStateMonitor)
- m_processStateMonitor->processWillBeSuspendedImmediately();
- }
[_backgroundTask removeObserver:self];
[_backgroundTask invalidate];
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes