* STEPS TO REPRODUCE 1. Open 1st Inspector. 2. Inspect Inspector (opens 2nd inspector) 3. Close 2nd inspector. 4. Resize 1st Inspector. => CRASH. Log below Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 WebCore::InspectorController::inspectedPage() const + 4 (InspectorController.cpp:314) 1 WebCore::InspectorFrontendClientLocal::canAttachWindow() + 19 (OwnPtr.h:57) 2 WebKit::WebInspector::updateDockingAvailability() + 30 (WebInspector.cpp:236) 3 WebCore::FrameView::layout(bool) + 2483 (FrameView.cpp:1128) 4 WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive() + 128 (HashTable.h:327) 5 WebKit::WebPage::layoutIfNeeded() + 34 (RefPtr.h:72) Patch to follow.
Created attachment 131207 [details] [PATCH] Clear Weak Pointers when Frontend is Closed • I named the new function destroyInspectorPage for lack of a better name. It balances createInspectorPage. • This matches the WK1 side, which clears its weak references when handling closeInspectorFrontend
Created attachment 131208 [details] [PATCH] Clear Weak Pointers when Frontend is Closed (With ASSERTs) I added asserts in WebInspector::createInspectorPage that these values are null. What was happening before was that these values were just getting stale and overwritten.
Comment on attachment 131208 [details] [PATCH] Clear Weak Pointers when Frontend is Closed (With ASSERTs) Clearing flags on attachment: 131208 Committed r110390: <http://trac.webkit.org/changeset/110390>
All reviewed patches have been landed. Closing bug.