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.
<rdar://problem/61118503>
Created attachment 395077 [details] Patch
Looks like I need to fix up the open source build. Will look into it shortly.
Created attachment 395095 [details] Patch
Created attachment 395098 [details] Patch
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.
(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.
Created attachment 395109 [details] Patch
Ping review?
Comment on attachment 395109 [details] Patch r=me
Committed r259414: <https://trac.webkit.org/changeset/259414> All reviewed patches have been landed. Closing bug and clearing flags on attachment 395109 [details].