Bug 42642

Summary: [v8] Web Inspector: inspected page renderer crashes when inspected page has JS syntax error
Product: WebKit Reporter: Andrey Kosyakov <caseq>
Component: Web Inspector (Deprecated)Assignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: pfeldman, yurys
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 42831    
Attachments:
Description Flags
test page
none
Patch none

Description Andrey Kosyakov 2010-07-20 08:00:36 PDT
Created attachment 62076 [details]
test page

1. Load a page with syntax error (sample attached)
2. Open inspector
3. Reload page
4. Observe crash in inspected page renderer

Call stack:
>	chrome.dll!WTF::Vector<WTF::OwnPtr<WebCore::ScriptCallFrame>,0>::at(unsigned int i=0)  Line 533 + 0x29 bytes	C++
 	chrome.dll!WebCore::ScriptCallStack::at(unsigned int index=0)  Line 119 + 0xf bytes	C++
 	chrome.dll!WebCore::ConsoleMessage::ConsoleMessage(WebCore::MessageSource s=JSMessageSource, WebCore::MessageType t=UncaughtExceptionMessageType, WebCore::MessageLevel l=ErrorMessageLevel, const WebCore::String & m="Uncaught SyntaxError: Unexpected token )", WebCore::ScriptCallStack * callStack=0x0c238fc0, unsigned int g=0, bool storeTrace=true)  Line 95 + 0x56 bytes	C++
 	chrome.dll!WebCore::InspectorController::addMessageToConsole(WebCore::MessageSource source=JSMessageSource, WebCore::MessageType type=UncaughtExceptionMessageType, WebCore::MessageLevel level=ErrorMessageLevel, WebCore::ScriptCallStack * callStack=0x0c238fc0, const WebCore::String & message="Uncaught SyntaxError: Unexpected token )")  Line 346 + 0x53 bytes	C++
 	chrome.dll!WebCore::Console::addMessage(WebCore::MessageSource source=JSMessageSource, WebCore::MessageType type=UncaughtExceptionMessageType, WebCore::MessageLevel level=ErrorMessageLevel, const WebCore::String & message="Uncaught SyntaxError: Unexpected token )", unsigned int lineNumber=2, const WebCore::String & sourceURL="file:///E:/caseq/wip/syntxerr.html湨潴映汩᭸揳", WebCore::ScriptCallStack * callStack=0x0c238fc0)  Line 159	C++
 	chrome.dll!WebCore::V8ConsoleMessage::dispatchNow(WebCore::Page * page=0x0a64d1e0, WebCore::ScriptCallStack * callStack=0x0c238fc0)  Line 142	C++
 	chrome.dll!WebCore::V8ConsoleMessage::handler(v8::Handle<v8::Message> message={...}, v8::Handle<v8::Value> data={...})  Line 129	C++
 	chrome.dll!v8::internal::MessageHandler::ReportMessage(v8::internal::MessageLocation * loc=0x07bbea04, v8::internal::Handle<v8::internal::Object> message={...})  Line 146 + 0x28 bytes	C++
 	chrome.dll!v8::internal::Top::ReportPendingMessages()  Line 928 + 0xd bytes	C++
 	chrome.dll!v8::internal::Compiler::Compile(v8::internal::Handle<v8::internal::String> source={...}, v8::internal::Handle<v8::internal::Object> script_name={...}, int line_offset=1, int column_offset=0, v8::Extension * extension=0x00000000, v8::internal::ScriptDataImpl * input_pre_data=0x00000000, v8::internal::Handle<v8::internal::Object> script_data={...}, v8::internal::NativesFlag natives=NOT_NATIVES_CODE)  Line 350	C++
 	chrome.dll!v8::Script::New(v8::Handle<v8::String> source={...}, v8::ScriptOrigin * origin=0x07bbec20, v8::ScriptData * pre_data=0x00000000, v8::Handle<v8::String> script_data={...})  Line 1184 + 0x40 bytes	C++
 	chrome.dll!v8::Script::Compile(v8::Handle<v8::String> source={...}, v8::ScriptOrigin * origin=0x07bbec20, v8::ScriptData * pre_data=0x00000000, v8::Handle<v8::String> script_data={...})  Line 1205 + 0x19 bytes	C++
 	chrome.dll!WebCore::V8Proxy::compileScript(v8::Handle<v8::String> code={...}, const WebCore::String & fileName="file:///E:/caseq/wip/syntxerr.html", int baseLine=1, v8::ScriptData * scriptData=0x00000000)  Line 244 + 0x20 bytes	C++
 	chrome.dll!WebCore::V8Proxy::evaluate(const WebCore::ScriptSourceCode & source={...}, WebCore::Node * node=0x00000000)  Line 399 + 0x38 bytes	C++
 	chrome.dll!WebCore::ScriptController::evaluate(const WebCore::ScriptSourceCode & sourceCode={...}, WebCore::ShouldAllowXSS shouldAllowXSS=DoNotAllowXSS)  Line 241	C++
 	chrome.dll!WebCore::ScriptController::executeScript(const WebCore::ScriptSourceCode & sourceCode={...}, WebCore::ShouldAllowXSS shouldAllowXSS=DoNotAllowXSS)  Line 62	C++
Comment 1 Yury Semikhatsky 2010-07-20 08:09:46 PDT
Created attachment 62078 [details]
Patch
Comment 2 Yury Semikhatsky 2010-07-20 08:17:48 PDT
Comment on attachment 62078 [details]
Patch

Clearing flags on attachment: 62078

Committed r63746: <http://trac.webkit.org/changeset/63746>
Comment 3 Yury Semikhatsky 2010-07-20 08:17:58 PDT
All reviewed patches have been landed.  Closing bug.