Bug 145291

Summary: Networking process sometimes suspended while WebContent runnable
Product: WebKit Reporter: Gavin Barraclough <barraclough>
Component: WebKit2Assignee: Gavin Barraclough <barraclough>
Status: RESOLVED FIXED    
Severity: Normal CC: ddkilzer
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Fix kling: review+

Gavin Barraclough
Reported 2015-05-21 20:06:49 PDT
There is an asymetry is how the Networking process suspension is managed. We drop the assertion (& suspend the process) whenever the WebProcess says it is ready to suspend, but we only take the assertion (& resume execution) when the WebContent process is actually resumed. This leaves a race – where the WebContent process was willing to be suspended, but the UI app cahnged its mind suspending it. Since the WebContent process never actually suspended (we only prepared it to), we never send a resume, and since we never resume, we never wake the Networking process.
Attachments
Fix (9.91 KB, patch)
2015-05-21 20:14 PDT, Gavin Barraclough
kling: review+
Gavin Barraclough
Comment 1 2015-05-21 20:14:31 PDT
Andreas Kling
Comment 2 2015-05-21 21:15:34 PDT
Comment on attachment 253574 [details] Fix View in context: https://bugs.webkit.org/attachment.cgi?id=253574&action=review r=me > Source/WebKit2/ChangeLog:9 > + There is an asymetry is how the Networking process suspension is managed. asymmetry is -> asymmetry in > Source/WebKit2/ChangeLog:13 > + the WebContent process was willing to be suspended, but the UI app cahnged cahnged -> changed > Source/WebKit2/UIProcess/WebProcessProxy.cpp:918 > +void WebProcessProxy::didSetAssertionState(AssertionState state) I feel like some build will break because "state" is unused unless PLATFORM(IOS) && ENABLE(NETWORK_PROCESS).
Gavin Barraclough
Comment 3 2015-05-22 10:19:56 PDT
Committed revision 184774.
David Kilzer (:ddkilzer)
Comment 4 2015-05-23 04:56:34 PDT
Note You need to log in before you can comment on or make changes to this bug.