Assertion failure in WebInspectorProxy::platformClose closing main window when inspec...
authorbweinstein@apple.com <bweinstein@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Feb 2011 20:33:01 +0000 (20:33 +0000)
committerbweinstein@apple.com <bweinstein@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Feb 2011 20:33:01 +0000 (20:33 +0000)
window, or when running regression tests.
https://bugs.webkit.org/show_bug.cgi?id=53798
<rdar://problem/8814364>

Reviewed by Adam Roben.

Only assert about the state of m_inspectorWindow and m_inspectorView if the inspector is visible.
Also, only call ::DestroyWindow if the HWND is non-null, just to be safe.

* UIProcess/win/WebInspectorProxyWin.cpp:
(WebKit::WebInspectorProxy::platformClose):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@77655 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/win/WebInspectorProxyWin.cpp

index 5e290a37e2bce0178d59c4ed149f4f97c712b3f3..41e1615fc4b6090794cbaa3c8a9b38e894e356f6 100644 (file)
@@ -1,3 +1,18 @@
+2011-02-04  Brian Weinstein  <bweinstein@apple.com>
+
+        Reviewed by Adam Roben.
+
+        Assertion failure in WebInspectorProxy::platformClose closing main window when inspecting a popup 
+        window, or when running regression tests.
+        https://bugs.webkit.org/show_bug.cgi?id=53798
+        <rdar://problem/8814364>
+        
+        Only assert about the state of m_inspectorWindow and m_inspectorView if the inspector is visible.
+        Also, only call ::DestroyWindow if the HWND is non-null, just to be safe.
+
+        * UIProcess/win/WebInspectorProxyWin.cpp:
+        (WebKit::WebInspectorProxy::platformClose):
+
 2011-02-04  Anders Carlsson  <andersca@apple.com>
 
         Reviewed by Dan Bernstein.
index a43f042ec8c7cb47a68871bd5bd3e02752b678a7..35d73ac31834171ddbdbbe14ffb777ad4bc6e71c 100644 (file)
@@ -172,10 +172,13 @@ void WebInspectorProxy::platformOpen()
 
 void WebInspectorProxy::platformClose()
 {
-    ASSERT(m_inspectorWindow);
-    ASSERT(m_inspectorView);
+    ASSERT(!m_isVisible || m_inspectorWindow);
+    ASSERT(!m_isVisible || m_inspectorView);
 
-    ::DestroyWindow(m_inspectorWindow);
+    if (m_inspectorWindow) {
+        ASSERT(::IsWindow(m_inspectorWindow));
+        ::DestroyWindow(m_inspectorWindow);
+    }
 
     m_inspectorWindow = 0;
     m_inspectorView = 0;