Bug 59210

Summary: WebKit2: Stop Responsiveness Timer when WebPageProxy closes or WebProcess crashes
Product: WebKit Reporter: Brian Weinstein <bweinstein>
Component: WebKit2Assignee: Brian Weinstein <bweinstein>
Status: RESOLVED FIXED    
Severity: Normal CC: aroben, sam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: OS X 10.5   
Attachments:
Description Flags
[PATCH] Fix
sam: review-
[PATCH] Fix v2 sam: review+

Description Brian Weinstein 2011-04-22 10:30:36 PDT
We should stop the responsiveness timer when a WebPageProxy closes or when the WebProcess crashes.
Comment 1 Brian Weinstein 2011-04-22 10:33:22 PDT
Created attachment 90721 [details]
[PATCH] Fix
Comment 2 Sam Weinig 2011-04-22 10:35:58 PDT
Comment on attachment 90721 [details]
[PATCH] Fix

View in context: https://bugs.webkit.org/attachment.cgi?id=90721&action=review

> Source/WebKit2/UIProcess/WebPageProxy.cpp:182
> +    process()->responsivenessTimer()->stop();

This should probably be in close(), not the destructor.
Comment 3 Brian Weinstein 2011-04-22 10:43:03 PDT
Created attachment 90723 [details]
[PATCH] Fix v2
Comment 4 Sam Weinig 2011-04-22 10:45:03 PDT
Comment on attachment 90723 [details]
[PATCH] Fix v2

View in context: https://bugs.webkit.org/attachment.cgi?id=90723&action=review

> Source/WebKit2/UIProcess/WebPageProxy.cpp:357
> +    process()->responsivenessTimer()->stop();

The remove webpage thing call should be last, please move this above the call to process()->send(Messages::WebPage::Close(), m_pageID) to keep consistency.
Comment 5 Brian Weinstein 2011-04-22 10:47:36 PDT
Landed in r84643.
Comment 6 Adam Roben (:aroben) 2011-04-29 11:25:36 PDT
For posterity's sake:

The issue this was trying to fix was: clicking the "close" button in the docked Web Inspector would cause the UI process to think the web process had become unresponsive. Our theory for why this was happening was that the Web Inspector's WebPage wasn't having time to send the DidHandleEvent message back to the UI process before it was closed. Thus we tried to fix the issue by always stopping the responsiveness timer whenever a WebPage gets closed.