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

Reply via email to