Bug 136804

Summary: Should call [BKSProcessAssertion invalidate]
Product: WebKit Reporter: Gavin Barraclough <barraclough>
Component: WebKit2Assignee: Gavin Barraclough <barraclough>
Status: RESOLVED FIXED    
Severity: Normal CC: ddkilzer, mitz, sam
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Fix darin: review+

Description Gavin Barraclough 2014-09-13 09:55:34 PDT
<rdar://problem/17897780>

We should invalidate the process assertion before releasing it. Fortunately this is really easy, since there is a simple 1:1 relationship with ProcessAssertion, with their lifetimes matching exactly.
Comment 1 Gavin Barraclough 2014-09-13 09:58:22 PDT
Created attachment 238087 [details]
Fix
Comment 2 Sam Weinig 2014-09-13 11:49:53 PDT
Why do we need to do this? What does it fix?
Comment 3 Gavin Barraclough 2014-09-13 18:52:07 PDT
(In reply to comment #2)
> Why do we need to do this? What does it fix?

See <rdar://problem/17897780>.
Comment 4 David Kilzer (:ddkilzer) 2014-09-15 09:29:46 PDT
(In reply to comment #2)
> Why do we need to do this? What does it fix?

It fixes a race condition that can cause a crash when closing a tab in MobileSafari.
Comment 5 Gavin Barraclough 2014-09-15 10:10:37 PDT
Committed revision 173623.
Comment 6 mitz 2014-09-15 10:28:49 PDT
I wish this bug (and the ChangeLog entry) had a title that explained why we were doing this. Something like “Safari crashed when closing a tab in -[BKSProcessAssertionClient _handleDestroy:]”.