Bug 152867 - Web Inspector: Error when closing page with WebInspector open
Summary: Web Inspector: Error when closing page with WebInspector open
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Web Inspector (show other bugs)
Version: WebKit Nightly Build
Hardware: All All
: P2 Normal
Assignee: Timothy Hatcher
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2016-01-07 16:14 PST by Devin Rousso
Modified: 2016-02-06 09:35 PST (History)
9 users (show)

See Also:


Attachments
Patch (1.79 KB, patch)
2016-02-05 10:29 PST, Timothy Hatcher
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Devin Rousso 2016-01-07 16:14:22 PST
* STEPS TO REPRODUCE
1. Go to <https://www.apple.com/>
2. Open the inspector via context menu "Inspect Element"
3. Close the tab via Cmd-W

* CRASH
thread #1: tid = 0xc5ef59, 0x0000000100f7bf76 WebKit`WebKit::WebPageProxy::inspectorAttachmentView(this=0x0000000000000000) + 4 at WebPageProxyMac.mm:590, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x38)
    frame #0: 0x0000000100f7bf76 WebKit`WebKit::WebPageProxy::inspectorAttachmentView(this=0x0000000000000000) + 4 at WebPageProxyMac.mm:590
   587 	#if WK_API_ENABLED
   588 	NSView *WebPageProxy::inspectorAttachmentView()
   589 	{
-> 590 	    return m_pageClient.inspectorAttachmentView();
   591 	}
   592 	
   593 	_WKRemoteObjectRegistry *WebPageProxy::remoteObjectRegistry()

* BACKTRACE
thread #1: tid = 0xc5ef59, 0x0000000100f7bf76 WebKit`WebKit::WebPageProxy::inspectorAttachmentView(this=0x0000000000000000) + 4 at WebPageProxyMac.mm:590, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x38)
  * frame #0: 0x0000000100f7bf76 WebKit`WebKit::WebPageProxy::inspectorAttachmentView(this=0x0000000000000000) + 4 at WebPageProxyMac.mm:590
    frame #1: 0x0000000100f25e70 WebKit`WebKit::WebInspectorProxy::platformDetach(this=0x00000001054a66f8) + 30 at WebInspectorProxyMac.mm:752
    frame #2: 0x0000000100f222d3 WebKit`WebKit::WebInspectorProxy::didClose(this=0x00000001054a66f8) + 109 at WebInspectorProxy.cpp:592
    frame #3: 0x0000000100f22255 WebKit`WebKit::WebInspectorProxy::invalidate(this=0x00000001054a66f8) + 139 at WebInspectorProxy.cpp:120
    frame #4: 0x0000000100f5dc3e WebKit`WebKit::WebPageProxy::resetState(this=0x00000001080a8c18, resetStateReason=PageInvalidated) + 132 at WebPageProxy.cpp:4934
    frame #5: 0x0000000100f5c77d WebKit`WebKit::WebPageProxy::close(this=0x00000001080a8c18) + 129 at WebPageProxy.cpp:822
    frame #6: 0x00007fff8e6301d5 Safari`Safari::SearchableWebContentViewController::close() + 205
    frame #7: 0x00007fff8e34c9b5 Safari`Safari::BrowserContentViewController::close() + 1129
    frame #8: 0x00007fff8e3e4ab6 Safari`-[BrowserWindowControllerMac _closeTabWithoutConfirming:allowUndo:] + 1389
    frame #9: 0x00007fff8e3e4547 Safari`-[BrowserWindowControllerMac _closeTabWithoutConfirming:] + 34
    frame #10: 0x00007fff8e3d555a Safari`-[BrowserWindowControllerMac closeTabOrWindowWithoutConfirming:] + 327
    frame #11: 0x00007fff8e3aab2a Safari`Safari::BrowserTab::closeWithoutConfirming() + 56
    frame #12: 0x00007fff8e589cf5 Safari`Safari::WK::closePage(OpaqueWKPage const*, void const*) + 39
    frame #13: 0x0000000100f7e948 WebKit`WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&) [inlined] void IPC::callMemberFunctionImpl<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(bool), std::__1::tuple<bool>, 0ul>(object=0x00000001080a8c18, function=0x0000000000000000)(bool), std::__1::tuple<bool>&&, std::index_sequence<0ul>) + 12 at HandleMessage.h:16
    frame #14: 0x0000000100f7e93c WebKit`WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&) [inlined] void IPC::callMemberFunction<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(bool), std::__1::tuple<bool>, std::make_index_sequence<1ul> >(function=0x0000000000000000)(bool)) at HandleMessage.h:22
    frame #15: 0x0000000100f7e93c WebKit`WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&) [inlined] void IPC::handleMessage<Messages::WebPageProxy::ClosePage, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(bool)>(function=0x0000000000000000)(bool)) + 24 at HandleMessage.h:92
    frame #16: 0x0000000100f7e924 WebKit`WebKit::WebPageProxy::didReceiveMessage(this=0x00000001080a8c18, connection=<unavailable>, decoder=<unavailable>) + 1474 at WebPageProxyMessageReceiver.cpp:232
    frame #17: 0x0000000100de94b7 WebKit`IPC::MessageReceiverMap::dispatchMessage(this=<unavailable>, connection=0x000000010a3522b0, decoder=0x000000010a3d4088) + 113 at MessageReceiverMap.cpp:102
    frame #18: 0x0000000100fc1686 WebKit`WebKit::WebProcessProxy::didReceiveMessage(this=0x000000010a36c5c0, connection=0x000000010a3522b0, decoder=0x000000010a3d4088) + 24 at WebProcessProxy.cpp:488
    frame #19: 0x0000000100d9e1e7 WebKit`IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >) [inlined] IPC::Connection::dispatchMessage(this=<unavailable>, decoder=<unavailable>) + 127 at Connection.cpp:891
    frame #20: 0x0000000100d9e1da WebKit`IPC::Connection::dispatchMessage(this=0x000000010a3522b0, message=unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> > @ 0x00007fff5fbfde80) + 114 at Connection.cpp:922
    frame #21: 0x0000000100da0b06 WebKit`IPC::Connection::dispatchOneMessage(this=0x000000010a3522b0) + 126 at Connection.cpp:953
    frame #22: 0x0000000100866b85 JavaScriptCore`WTF::RunLoop::performWork() [inlined] std::__1::function<void ()>::operator(this=0x000000000000000a)() const + 437 at functional:1793
    frame #23: 0x0000000100866b7b JavaScriptCore`WTF::RunLoop::performWork(this=0x000000010a3f9000) + 427 at RunLoop.cpp:104
    frame #24: 0x0000000100866f32 JavaScriptCore`WTF::RunLoop::performWork(context=<unavailable>) + 34 at RunLoopCF.cpp:38
    frame #25: 0x00007fff94c3f5c1 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #26: 0x00007fff94c3141c CoreFoundation`__CFRunLoopDoSources0 + 556
    frame #27: 0x00007fff94c3093f CoreFoundation`__CFRunLoopRun + 927
    frame #28: 0x00007fff94c30338 CoreFoundation`CFRunLoopRunSpecific + 296
    frame #29: 0x00007fff8ada8935 HIToolbox`RunCurrentEventLoopInMode + 235
    frame #30: 0x00007fff8ada876f HIToolbox`ReceiveNextEventCommon + 432
    frame #31: 0x00007fff8ada85af HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 71
    frame #32: 0x00007fff9200e0ee AppKit`_DPSNextEvent + 1067
    frame #33: 0x00007fff923da943 AppKit`-[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
    frame #34: 0x00007fff8e32f37f Safari`-[BrowserApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 252
    frame #35: 0x00007fff92003fc8 AppKit`-[NSApplication run] + 682
    frame #36: 0x00007fff91f86520 AppKit`NSApplicationMain + 1176
    frame #37: 0x00007fff950ab5ad libdyld.dylib`start + 1
    frame #38: 0x00007fff950ab5ad libdyld.dylib`start + 1
Comment 1 Radar WebKit Bug Importer 2016-01-07 16:14:41 PST
<rdar://problem/24099423>
Comment 2 Timothy Hatcher 2016-02-05 10:29:27 PST
Created attachment 270751 [details]
Patch
Comment 3 BJ Burg 2016-02-05 10:32:49 PST
Comment on attachment 270751 [details]
Patch

r=me but please test under debug build if possible before committing. This change may have been included in my attempted fix for https://bugs.webkit.org/show_bug.cgi?id=152080.
Comment 4 Timothy Hatcher 2016-02-05 12:31:20 PST
Comment on attachment 270751 [details]
Patch

Debug build is good. No test failures locally.
Comment 5 WebKit Commit Bot 2016-02-05 13:19:09 PST
Comment on attachment 270751 [details]
Patch

Clearing flags on attachment: 270751

Committed r196183: <http://trac.webkit.org/changeset/196183>
Comment 6 WebKit Commit Bot 2016-02-05 13:19:13 PST
All reviewed patches have been landed.  Closing bug.