RESOLVED FIXED209825
[iOS] Replace UIKit background task with a RunningBoard FinishTaskInterruptable assertion
https://bugs.webkit.org/show_bug.cgi?id=209825
Summary [iOS] Replace UIKit background task with a RunningBoard FinishTaskInterruptab...
Chris Dumez
Reported 2020-03-31 11:59:25 PDT
Replace UIKit background task with a RunningBoard FinishTask assertion on iOS. Our UIProcess gets terminated too frequently when the UIKit background task expires when the UIProcess holds it for longer than 30 seconds in the background. The RunningBoard FinishTask assertion is supposed to be equivalent but would cause suspension of our UIProcess on expiration, instead of termination.
Attachments
Patch (12.17 KB, patch)
2020-03-31 12:21 PDT, Chris Dumez
no flags
Patch (12.75 KB, patch)
2020-03-31 14:57 PDT, Chris Dumez
no flags
Patch (12.83 KB, patch)
2020-03-31 15:25 PDT, Chris Dumez
no flags
Patch (12.98 KB, patch)
2020-03-31 17:15 PDT, Chris Dumez
no flags
Radar WebKit Bug Importer
Comment 1 2020-03-31 11:59:39 PDT
Chris Dumez
Comment 2 2020-03-31 12:21:47 PDT
Chris Dumez
Comment 3 2020-03-31 14:07:20 PDT
Looks like I need to fix up the open source build. Will look into it shortly.
Chris Dumez
Comment 4 2020-03-31 14:57:24 PDT
Chris Dumez
Comment 5 2020-03-31 15:25:22 PDT
Darin Adler
Comment 6 2020-03-31 16:30:20 PDT
Comment on attachment 395098 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=395098&action=review > Source/WTF/wtf/PlatformHave.h:461 > +#if PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000 > +#define HAVE_RUNNINGBOARD_WEBKIT_ASSERTIONS 1 > +#endif This doesn’t work as you’d expect. It‘s the thing Tim has been reminding us about. IOS_FAMILY plus __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000 gives iOS *without* watchOS and tvOS.
Chris Dumez
Comment 7 2020-03-31 17:15:06 PDT
(In reply to Darin Adler from comment #6) > Comment on attachment 395098 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=395098&action=review > > > Source/WTF/wtf/PlatformHave.h:461 > > +#if PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000 > > +#define HAVE_RUNNINGBOARD_WEBKIT_ASSERTIONS 1 > > +#endif > > This doesn’t work as you’d expect. It‘s the thing Tim has been reminding us > about. IOS_FAMILY plus __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000 gives iOS > *without* watchOS and tvOS. I had copied an existing example in our code hoping bad things in the code base had been fixed.
Chris Dumez
Comment 8 2020-03-31 17:15:24 PDT
Chris Dumez
Comment 9 2020-04-02 09:10:28 PDT
Ping review?
Geoffrey Garen
Comment 10 2020-04-02 13:22:45 PDT
Comment on attachment 395109 [details] Patch r=me
EWS
Comment 11 2020-04-02 13:49:09 PDT
Committed r259414: <https://trac.webkit.org/changeset/259414> All reviewed patches have been landed. Closing bug and clearing flags on attachment 395109 [details].
Note You need to log in before you can comment on or make changes to this bug.