Summary: | [WK2] REGRESSION r122966: Crash when closing tab with Web Inspector open in WebKit::PageOverlay | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Kevin M. Dean <kevin> | ||||||
Component: | Web Inspector (Deprecated) | Assignee: | Andrey Kosyakov <caseq> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Critical | CC: | caseq, pfeldman, rogulenko, timothy, webkit.review.bot | ||||||
Priority: | P1 | Keywords: | Regression | ||||||
Version: | 528+ (Nightly build) | ||||||||
Hardware: | Mac (Intel) | ||||||||
OS: | OS X 10.7 | ||||||||
Attachments: |
|
Description
Kevin M. Dean
2012-07-19 14:11:31 PDT
Ok, here's how to reproduce. Open a site. Open the web inspector. I'm using Command-Option-I. Click in the web page portion of the screen so the Inspector portion lightens and becomes inactive. Then click in the Inspector portion again so it darkens and becomes active. Then close the window or tab. Crash. Clarification - The Web Inspector needs to be opened to the Elements tab when clicking back and forth. The other tabs seem to handle the clicking fine. More than likely this was caused by: http://trac.webkit.org/changeset/122966 Created attachment 153665 [details]
Patch
Comment on attachment 153665 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=153665&action=review > Source/WebCore/inspector/DOMNodeHighlighter.cpp:536 > + update(); This change will only mask the crash - it will still happen in case there was a highlighted node upon page destruction. > Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp:70 > + if (!frameView) So this seems to be fixing crash, but we should not be getting here from the page destructor. The proper fix would be to mute InspectorOverlay from within InspectorController::inspectedPageDestroyed(). Created attachment 153667 [details]
Patch
> The proper fix would be to mute InspectorOverlay from within InspectorController::inspectedPageDestroyed().
I take this back - we would still need to report hideHighlight to the client upon destruction. Submitted a proper fix.
Comment on attachment 153667 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=153667&action=review > Source/WebCore/inspector/DOMNodeHighlighter.cpp:567 > + if ((m_highlightData && (m_highlightData->rect || m_highlightData->node)) || !m_pausedInDebuggerMessage.isNull()) Consider extracting this logic into hasHighlightData() as it is used used in InspectorOverlay::drawHighlight as well. Comment on attachment 153667 [details] Patch Clearing flags on attachment: 153667 Committed r123328: <http://trac.webkit.org/changeset/123328> All reviewed patches have been landed. Closing bug. |