Bug 28800 - Inspected tab crashes in Chrome on inspected page refresh.
Summary: Inspected tab crashes in Chrome on inspected page refresh.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore JavaScript (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Windows XP
: P2 Normal
Assignee: Yury Semikhatsky
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-08-28 01:47 PDT by Yury Semikhatsky
Modified: 2009-09-01 13:14 PDT (History)
1 user (show)

See Also:


Attachments
Set DOM agent document to 0 when inspector closes (7.94 KB, patch)
2009-08-28 03:10 PDT, Yury Semikhatsky
no flags Details | Formatted Diff | Diff
Check that DOM agent and inspector frontend are not nulls when accessing them from InspectorBackend. (6.74 KB, patch)
2009-08-28 06:44 PDT, Yury Semikhatsky
no flags Details | Formatted Diff | Diff
Check that DOM agent and inspector frontend are not nulls when accessing them from InspectorBackend. (6.74 KB, patch)
2009-08-28 06:47 PDT, Yury Semikhatsky
timothy: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yury Semikhatsky 2009-08-28 01:47:56 PDT
Steps to reproduce:
1. Navigate to a page.
2. Open devtools window.
3. Refresh inspected page.
4. While the page is reloading close DevTools window.


	chrome.dll!v8::internal::OS::DebugBreak()  Line 882	C++
 	chrome.dll!v8::internal::OS::Abort()  Line 877	C++
 	chrome.dll!V8_Fatal(const char * file=0x0407715c, int line=48, const char * format=0x040712d8, ...)  Line 57	C++
 	chrome.dll!CheckHelper(const char * file=0x0407715c, int line=48, const char * source=0x040771d0, bool condition=false)  Line 62 + 0x16 bytes	C++
 	chrome.dll!v8::internal::Handle<v8::internal::Context>::operator*()  Line 48 + 0x1b bytes	C++
 	chrome.dll!v8::Context::Enter()  Line 431 + 0x8 bytes	C++
 	chrome.dll!v8::Context::Scope::Scope(v8::Handle<v8::Context> context={...})  Line 2511	C++
 	chrome.dll!WebCore::ScriptScope::ScriptScope(WebCore::ScriptState * scriptState=0x00eeb280, bool reportExceptions=true)  Line 49 + 0x46 bytes	C++
 	chrome.dll!WebCore::ScriptObject::createNew(WebCore::ScriptState * scriptState=0x00eeb280)  Line 110	C++
 	chrome.dll!WebCore::InspectorFrontend::newScriptObject()  Line 71 + 0x10 bytes	C++
 	chrome.dll!WebCore::InspectorDOMAgent::buildObjectForNode(WebCore::Node * node=0x01254000, int depth=2, WTF::HashMap<WTF::RefPtr<WebCore::Node>,long,WTF::PtrHash<WTF::RefPtr<WebCore::Node> >,WTF::HashTraits<WTF::RefPtr<WebCore::Node> >,WTF::HashTraits<long> > * nodesMap=0x0184b790)  Line 380	C++
 	chrome.dll!WebCore::InspectorDOMAgent::pushDocumentToFrontend()  Line 242 + 0x19 bytes	C++
>	chrome.dll!WebCore::InspectorDOMAgent::handleEvent(WebCore::Event * event=0x01942dc0, bool __formal=false)  Line 180 + 0x8 bytes	C++
 	chrome.dll!WebCore::Node::handleLocalEvents(WebCore::Event * event=0x01942dc0, bool useCapture=false)  Line 2466 + 0x20 bytes	C++
 	chrome.dll!WebCore::Node::dispatchGenericEvent(WTF::PassRefPtr<WebCore::Event> prpEvent={...})  Line 2587 + 0x1d bytes	C++
 	chrome.dll!WebCore::Node::dispatchEvent(WTF::PassRefPtr<WebCore::Event> e={...}, int & ec=0)  Line 2520 + 0x12 bytes	C++
 	chrome.dll!WebCore::Document::finishedParsing()  Line 3944	C++
 	chrome.dll!WebCore::HTMLParser::finished()  Line 1635 + 0x1a bytes	C++
 	chrome.dll!WebCore::HTMLTokenizer::end()  Line 1847	C++
 	chrome.dll!WebCore::HTMLTokenizer::write(const WebCore::SegmentedString & str={...}, bool appendData=true)  Line 1791	C++
 	chrome.dll!WebCore::HTMLTokenizer::timerFired(WebCore::Timer<WebCore::HTMLTokenizer> * __formal=0x012fe578)  Line 1824 + 0x1a bytes	C++
 	chrome.dll!WebCore::Timer<WebCore::HTMLTokenizer>::fired()  Line 98 + 0x29 bytes	C++
 	chrome.dll!WebCore::ThreadTimers::fireTimers(double fireTime=1251446396.6920252, const WTF::Vector<WebCore::TimerBase *,0> & firingTimers={...})  Line 111 + 0xf bytes	C++
 	chrome.dll!WebCore::ThreadTimers::sharedTimerFiredInternal()  Line 143	C++
 	chrome.dll!WebCore::ThreadTimers::sharedTimerFired()  Line 123	C++
 	chrome.dll!webkit_glue::WebKitClientImpl::DoTimeout()  Line 66 + 0xa bytes	C++
 	chrome.dll!DispatchToMethod<webkit_glue::WebKitClientImpl,void (__thiscall webkit_glue::WebKitClientImpl::*)(void)>(webkit_glue::WebKitClientImpl * obj=0x00e289c0, void (void)* method=0x0258d320, const Tuple0 & arg={...})  Line 412 + 0x8 bytes	C++
 	chrome.dll!base::BaseTimer<webkit_glue::WebKitClientImpl,0>::TimerTask::Run()  Line 160 + 0x1c bytes	C++
 	chrome.dll!MessageLoop::RunTask(Task * task=0x01847f00)  Line 314 + 0xf bytes	C++
 	chrome.dll!MessageLoop::DeferOrRunPendingTask(const MessageLoop::PendingTask & pending_task={...})  Line 325	C++
 	chrome.dll!MessageLoop::DoWork()  Line 429 + 0xc bytes	C++
 	chrome.dll!base::MessagePumpDefault::Run(base::MessagePump::Delegate * delegate=0x0012f580)  Line 23 + 0xf bytes	C++
 	chrome.dll!MessageLoop::RunInternal()  Line 199 + 0x2a bytes	C++
 	chrome.dll!MessageLoop::RunHandler()  Line 182	C++
 	chrome.dll!MessageLoop::Run()  Line 156	C++
 	chrome.dll!RendererMain(const MainFunctionParams & parameters={...})  Line 164	C++
 	chrome.dll!ChromeMain(HINSTANCE__ * instance=0x00400000, sandbox::SandboxInterfaceInfo * sandbox_info=0x0012fe9c, wchar_t * command_line=0x000209b4)  Line 539 + 0xc bytes	C++
 	chrome.exe!wWinMain(HINSTANCE__ * instance=0x00400000, HINSTANCE__ * prev_instance=0x00000000, wchar_t * command_line=0x000209b4, int __formal=10)  Line 102 + 0x14 bytes	C++
 	chrome.exe!__tmainCRTStartup()  Line 324 + 0x35 bytes	C
 	chrome.exe!wWinMainCRTStartup()  Line 196	C
 	kernel32.dll!7c817077() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
Comment 1 Yury Semikhatsky 2009-08-28 03:10:31 PDT
Created attachment 38725 [details]
Set DOM agent document to 0 when inspector closes
Comment 2 Pavel Feldman 2009-08-28 06:42:38 PDT
Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/InspectorController.h
Committed r47862
Comment 3 Yury Semikhatsky 2009-08-28 06:44:38 PDT
Created attachment 38729 [details]
Check that DOM agent and inspector frontend are not nulls when accessing them from InspectorBackend.
Comment 4 Yury Semikhatsky 2009-08-28 06:47:43 PDT
Created attachment 38730 [details]
Check that DOM agent and inspector frontend are not nulls when accessing them from InspectorBackend. 

(removed an empty line from getChildNodes)
Comment 5 Yury Semikhatsky 2009-08-31 06:37:03 PDT
We need to check that front-end and DOM agent exist when they are acccessed from InspectorBackand. A patch is already prepared.
Comment 6 Yury Semikhatsky 2009-08-31 06:37:43 PDT
We need to check that front-end and DOM agent exist when they are acccessed from InspectorBackand. A patch is already prepared.
Comment 7 Eric Seidel (no email) 2009-09-01 03:02:45 PDT
Comment on attachment 38725 [details]
Set DOM agent document to 0 when inspector closes

Looks like this was landed.  Removing Tim's r+ so that it doesn't appear in the commit-queue since this bug seems to be being re-used for a second patch.
Comment 8 Pavel Feldman 2009-09-01 13:14:50 PDT
Committing to http://svn.webkit.org/repository/webkit/trunk ...
    M    WebCore/ChangeLog
    M    WebCore/inspector/InspectorBackend.cpp
    M    WebCore/inspector/InspectorBackend.h
Committed r47944