Title: [110390] trunk/Source/WebKit2
- Revision
- 110390
- Author
- [email protected]
- Date
- 2012-03-11 03:11:52 -0700 (Sun, 11 Mar 2012)
Log Message
<http://webkit.org/b/80782> Web Inspector: Crash using released frontendClient when resizing window with closed inspector
The WebInspectorFrontendClient reference should be cleared when the
WebInspectorClient::closeInspectorFrontend is called. This adds a
destroyInspectorPage to mirror createInspectorPage and clear the weak
pointers that are no longer valid.
Patch by Joseph Pecoraro <[email protected]> on 2012-03-11
Reviewed by Pavel Feldman.
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::closeInspectorFrontend):
(WebKit::WebInspectorClient::didResizeMainFrame):
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::destroyInspectorPage):
* WebProcess/WebPage/WebInspector.h:
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (110389 => 110390)
--- trunk/Source/WebKit2/ChangeLog 2012-03-11 09:11:58 UTC (rev 110389)
+++ trunk/Source/WebKit2/ChangeLog 2012-03-11 10:11:52 UTC (rev 110390)
@@ -1,3 +1,21 @@
+2012-03-11 Joseph Pecoraro <[email protected]>
+
+ <http://webkit.org/b/80782> Web Inspector: Crash using released frontendClient when resizing window with closed inspector
+
+ The WebInspectorFrontendClient reference should be cleared when the
+ WebInspectorClient::closeInspectorFrontend is called. This adds a
+ destroyInspectorPage to mirror createInspectorPage and clear the weak
+ pointers that are no longer valid.
+
+ Reviewed by Pavel Feldman.
+
+ * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
+ (WebKit::WebInspectorClient::closeInspectorFrontend):
+ (WebKit::WebInspectorClient::didResizeMainFrame):
+ * WebProcess/WebPage/WebInspector.cpp:
+ (WebKit::WebInspector::destroyInspectorPage):
+ * WebProcess/WebPage/WebInspector.h:
+
2012-03-11 Viatcheslav Ostapenko <[email protected]>
[Qt] [WK2] Support threaded renderer in WK2
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp (110389 => 110390)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp 2012-03-11 09:11:58 UTC (rev 110389)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp 2012-03-11 10:11:52 UTC (rev 110390)
@@ -51,8 +51,10 @@
void WebInspectorClient::closeInspectorFrontend()
{
- if (m_page->inspector())
+ if (m_page->inspector()) {
m_page->inspector()->didClose();
+ m_page->inspector()->destroyInspectorPage();
+ }
}
void WebInspectorClient::bringFrontendToFront()
@@ -62,7 +64,8 @@
void WebInspectorClient::didResizeMainFrame(Frame*)
{
- m_page->inspector()->updateDockingAvailability();
+ if (m_page->inspector())
+ m_page->inspector()->updateDockingAvailability();
}
void WebInspectorClient::highlight()
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp (110389 => 110390)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp 2012-03-11 09:11:58 UTC (rev 110389)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp 2012-03-11 10:11:52 UTC (rev 110390)
@@ -59,6 +59,9 @@
if (!m_page)
return 0;
+ ASSERT(!m_inspectorPage);
+ ASSERT(!m_frontendClient);
+
uint64_t inspectorPageID = 0;
WebPageCreationParameters parameters;
@@ -81,6 +84,12 @@
return m_inspectorPage;
}
+void WebInspector::destroyInspectorPage()
+{
+ m_inspectorPage = 0;
+ m_frontendClient = 0;
+}
+
// Called from WebInspectorFrontendClient
void WebInspector::didLoadInspectorPage()
{
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.h (110389 => 110390)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.h 2012-03-11 09:11:58 UTC (rev 110389)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.h 2012-03-11 10:11:52 UTC (rev 110390)
@@ -75,6 +75,7 @@
// Called from WebInspectorClient
WebPage* createInspectorPage();
+ void destroyInspectorPage();
// Called from WebInspectorFrontendClient
void didLoadInspectorPage();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes