apimall / chromiumembedded

Automatically exported from code.google.com/p/chromiumembedded
0 stars 1 forks source link

cefclient.exe crashes when loading a web page #1513

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. download the CEF3 binary distribution for windows 32bit, I did tests on 
version 3.2171.1979 and 3.2171.1949.
2. build the cefclient example with VS2010, run cefclient.exe. In the 
application main window, input url 
"http://www.forbes.com/sites/gordonkelly/2015/01/26/windows-10-attacks-microsoft
/" in the address textbox and press ENTER key.
3. It will load the "http://www.forbes.com/fdc/welcome_mjx.shtml" page firstly, 
this is an advertisement page. After a few seconds, it then go on to load our 
target page. In the middle of the page loading, it will crash and seems that 
the browser restarted automatically.

What is the expected output? What do you see instead?
It should load the target web page successfully as in a standalone Chrome 
browser, it even loads well with IE9 and IE11.

What version of the product are you using? On what operating system?
I use 3.2171.1979 and 3.2171.1949.

Please provide any additional information below.
I attached the log file of cefclient application.

Original issue reported on code.google.com by liang.ha...@gmail.com on 29 Jan 2015 at 8:44

Attachments:

GoogleCodeExporter commented 9 years ago
I tested on both 64-bit and 32-bit Windows 7.

Original comment by liang.ha...@gmail.com on 29 Jan 2015 at 8:46

GoogleCodeExporter commented 9 years ago
It's likely a crash or debug assertion in the renderer process. Are you using a 
Debug or Release build of libcef? Try using the Release build to see if that 
avoids the problem.

Original comment by magreenb...@gmail.com on 29 Jan 2015 at 5:57

GoogleCodeExporter commented 9 years ago
Thanks. The Release build can display the web page successfully. But, it will 
crash when close the cefclient application. Attached are new log files.

I think even the debug build shouldn't crash, crash means critical issues 
happened.

Original comment by liang.ha...@gmail.com on 30 Jan 2015 at 2:49

Attachments:

GoogleCodeExporter commented 9 years ago
@#3: Can you post the stack trace for the renderer process crash? Debug symbols 
are available from http://cefbuilds.com. See 
http://www.chromium.org/developers/how-tos/debugging for debugging tips.

Original comment by magreenb...@gmail.com on 30 Jan 2015 at 2:25

GoogleCodeExporter commented 9 years ago
I find that the release build will crash sometimes if I close the cefclient 
while the target page is still loading some dynamic contents. i.e. videos for 
advertisement. Today I got only about 3 crashes in 10 times on average. The 
stack is below.

 libcef.dll!base::debug::BreakDebugger()  Line 20   
 libcef.dll!logging::LogMessage::~LogMessage()  Line 647    
 libcef.dll!net::URLRequestContext::AssertNoURLRequests()  Line 109 
 libcef.dll!net::URLRequestContext::~URLRequestContext()  Line 40   
 libcef.dll!net::URLRequestContext::`scalar deleting destructor'()  + 0xb bytes
 libcef.dll!CefURLRequestContextGetter::~CefURLRequestContextGetter()  Line 127 + 0xa1 bytes
 libcef.dll!CefURLRequestContextGetter::`scalar deleting destructor'()  + 0xb bytes
 libcef.dll!net::URLRequestContextGetter::OnDestruct()  Line 24
 libcef.dll!content::P2PSocketDispatcherHost::~P2PSocketDispatcherHost()  Line 189 + 0x6f bytes
 libcef.dll!content::P2PSocketDispatcherHost::`scalar deleting destructor'()  + 0xb bytes
 libcef.dll!base::DeleteHelper<content::VideoCaptureHost>::DoDelete(const void * object)  Line 41
 libcef.dll!base::internal::Invoker<1,base::internal::BindState<base::internal::RunnableAdapter<void (__cdecl*)(`anonymous namespace'::ShowDevToolsHelper *)>,void __cdecl(`anonymous namespace'::ShowDevToolsHelper *),void __cdecl(`anonymous namespace'::ShowDevToolsHelper *)>,void __cdecl(`anonymous namespace'::ShowDevToolsHelper *)>::Run(base::internal::BindStateBase * base)  Line 1169 + 0xb bytes
 libcef.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function, const char * run_function, const base::PendingTask & pending_task)  Line 62 + 0x8 bytes
 libcef.dll!base::MessageLoop::RunTask(const base::PendingTask & pending_task)  Line 448
 libcef.dll!base::MessageLoop::DoWork()  Line 565
 libcef.dll!base::MessagePumpForIO::DoRunLoop()  Line 479 + 0xc bytes
 libcef.dll!base::MessagePumpWin::Run(base::MessagePump::Delegate * delegate)  Line 34 + 0x3d bytes
 libcef.dll!base::MessageLoop::RunHandler()  Line 414 + 0x9 bytes
 libcef.dll!base::RunLoop::Run()  Line 55
 libcef.dll!base::MessageLoop::Run()  Line 308
 libcef.dll!base::Thread::Run(base::MessageLoop * message_loop)  Line 175
 libcef.dll!content::BrowserThreadImpl::IOThreadRun(base::MessageLoop * message_loop)  Line 220
 libcef.dll!content::BrowserThreadImpl::Run(base::MessageLoop * message_loop)  Line 254 + 0xa bytes
 libcef.dll!base::Thread::ThreadMain()  Line 232
 libcef.dll!base::`anonymous namespace'::ThreadFunc(void * params)  Line 80

Original comment by liang.ha...@gmail.com on 2 Feb 2015 at 5:45

GoogleCodeExporter commented 9 years ago
@#5: The AssertNoURLRequests crash is issue 1037.

Below is the call stack for the renderer crash at CEF trunk revision 2020. This 
is a bug in Blink, possibly http://crbug.com/433468 or http://crbug.com/345814. 
It will need to be fixed in Blink and then CEF will get the fix after updating.

ASSERTION FAILED: !needsLayout()

>   libcef.dll!error_handler(int reportType) Line 264   C++
    libcef.dll!_CrtDbgReport(int reportType, const char * __formal, int __formal, const char * __formal, const char * __formal, ...) Line 286   C++
    libcef.dll!printCallSite(const char * file, int line, const char * function) Line 189   C++
    libcef.dll!WTFReportAssertionFailure(const char * file, int line, const char * function, const char * assertion) Line 204   C++
    libcef.dll!blink::RenderObject::assertRendererLaidOut() Line 226    C++
    libcef.dll!blink::RenderObject::assertSubtreeIsLaidOut() Line 232   C++
    libcef.dll!blink::FrameView::layout(bool allowSubtree) Line 1067    C++
    libcef.dll!blink::Document::updateLayout() Line 1902    C++
    libcef.dll!blink::Document::updateLayoutIgnorePendingStylesheets(blink::Document::RunPostLayoutTasks runPostLayoutTasks) Line 1958  C++
    libcef.dll!blink::Element::offsetWidth() Line 534   C++
    libcef.dll!blink::ElementV8Internal::offsetWidthAttributeGetter(const v8::PropertyCallbackInfo<v8::Value> & info) Line 241  C++
    libcef.dll!blink::ElementV8Internal::offsetWidthAttributeGetterCallback(v8::Local<v8::String> __formal, const v8::PropertyCallbackInfo<v8::Value> & info) Line 247  C++
    libcef.dll!v8::internal::PropertyCallbackArguments::Call(void (v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Value> &) * f, v8::Local<v8::Name> arg1) Line 87 C++
    libcef.dll!v8::internal::Object::GetPropertyWithAccessor(v8::internal::Handle<v8::internal::Object> receiver, v8::internal::Handle<v8::internal::Name> name, v8::internal::Handle<v8::internal::JSObject> holder, v8::internal::Handle<v8::internal::Object> structure) Line 311    C++
    libcef.dll!v8::internal::Object::GetProperty(v8::internal::LookupIterator * it) Line 133    C++
    libcef.dll!v8::internal::LoadIC::Load(v8::internal::Handle<v8::internal::Object> object, v8::internal::Handle<v8::internal::Name> name) Line 749    C++
    libcef.dll!v8::internal::__RT_impl_LoadIC_Miss(v8::internal::Arguments args, v8::internal::Isolate * isolate) Line 2321 C++
    [External Code] 
    [Frames below may be incorrect and/or missing]  
    libcef.dll!v8::internal::Invoke(bool is_construct, v8::internal::Handle<v8::internal::JSFunction> function, v8::internal::Handle<v8::internal::Object> receiver, int argc, v8::internal::Handle<v8::internal::Object> * args) Line 128  C++
    libcef.dll!v8::internal::Execution::Call(v8::internal::Isolate * isolate, v8::internal::Handle<v8::internal::Object> callable, v8::internal::Handle<v8::internal::Object> receiver, int argc, v8::internal::Handle<v8::internal::Object> * argv, bool convert_receiver) Line 180    C++
    libcef.dll!v8::Script::Run() Line 1552  C++
    libcef.dll!blink::V8ScriptRunner::runCompiledScript(v8::Isolate * isolate, v8::Handle<v8::Script> script, blink::ExecutionContext * context) Line 416   C++
    libcef.dll!blink::ScriptController::executeScriptAndReturnValue(v8::Handle<v8::Context> context, const blink::ScriptSourceCode & source, blink::AccessControlStatus corsStatus, double * compilationFinishTime) Line 196    C++
    libcef.dll!blink::ScriptController::evaluateScriptInMainWorld(const blink::ScriptSourceCode & sourceCode, blink::AccessControlStatus corsStatus, blink::ScriptController::ExecuteScriptPolicy policy, double * compilationFinishTime) Line 573  C++
    libcef.dll!blink::ScriptController::executeScriptInMainWorld(const blink::ScriptSourceCode & sourceCode, blink::AccessControlStatus corsStatus, double * compilationFinishTime) Line 541    C++
    libcef.dll!blink::ScriptLoader::executeScript(const blink::ScriptSourceCode & sourceCode, double * compilationFinishTime) Line 381  C++
    libcef.dll!blink::ScriptLoader::prepareScript(const WTF::TextPosition & scriptStartPosition, blink::ScriptLoader::LegacyTypeSupport supportLegacyTypes) Line 269    C++
    libcef.dll!blink::HTMLScriptRunner::runScript(blink::Element * script, const WTF::TextPosition & scriptStartPosition) Line 350  C++
    libcef.dll!blink::HTMLScriptRunner::execute(WTF::PassRefPtr<blink::Element> scriptElement, const WTF::TextPosition & scriptStartPosition) Line 212  C++
    libcef.dll!blink::HTMLDocumentParser::runScriptsForPausedTreeBuilder() Line 315 C++
    libcef.dll!blink::HTMLDocumentParser::processParsedChunkFromBackgroundParser(WTF::PassOwnPtr<blink::HTMLDocumentParser::ParsedChunk> popChunk) Line 499 C++
    libcef.dll!blink::HTMLDocumentParser::pumpPendingSpeculations() Line 561    C++
    libcef.dll!blink::HTMLDocumentParser::resumeParsingAfterScriptExecution() Line 993  C++
    libcef.dll!blink::HTMLDocumentParser::notifyScriptLoaded(blink::Resource * cachedResource) Line 1029    C++
    libcef.dll!blink::HTMLScriptRunner::notifyFinished(blink::Resource * cachedResource) Line 196   C++
    libcef.dll!blink::Resource::checkNotify() Line 213  C++
    libcef.dll!blink::Resource::finishOnePart() Line 265    C++
    libcef.dll!blink::Resource::finish() Line 272   C++
    libcef.dll!blink::ResourceLoader::didFinishLoading(blink::WebURLLoader * __formal, double finishTime, __int64 encodedDataLength) Line 455   C++
    libcef.dll!content::WebURLLoaderImpl::Context::OnCompletedRequest(int error_code, bool was_ignored_by_handler, bool stale_copy_in_cache, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & security_info, const base::TimeTicks & completion_time, __int64 total_transfer_size) Line 764 C++
    libcef.dll!content::ResourceDispatcher::OnRequestComplete(int request_id, const ResourceMsg_RequestCompleteData & request_complete_data) Line 588   C++
    libcef.dll!DispatchToMethodImpl<content::ResourceDispatcher,void (__thiscall content::ResourceDispatcher::*)(int,ResourceMsg_RequestCompleteData const &),int,ResourceMsg_RequestCompleteData,0,1>(content::ResourceDispatcher * obj, void (int, const ResourceMsg_RequestCompleteData &) * method, const Tuple<int,ResourceMsg_RequestCompleteData> & arg, IndexSequence<0,1> __formal) Line 246   C++
    libcef.dll!DispatchToMethod<content::ResourceDispatcher,void (__thiscall content::ResourceDispatcher::*)(int,ResourceMsg_RequestCompleteData const &),int,ResourceMsg_RequestCompleteData>(content::ResourceDispatcher * obj, void (int, const ResourceMsg_RequestCompleteData &) * method, const Tuple<int,ResourceMsg_RequestCompleteData> & arg) Line 253    C++
    libcef.dll!ResourceMsg_RequestComplete::Dispatch<content::ResourceDispatcher,content::ResourceDispatcher,void,void (__thiscall content::ResourceDispatcher::*)(int,ResourceMsg_RequestCompleteData const &)>(const IPC::Message * msg, content::ResourceDispatcher * obj, content::ResourceDispatcher * sender, void * parameter, void (int, const ResourceMsg_RequestCompleteData &) * func) Line 351  C++
    libcef.dll!content::ResourceDispatcher::DispatchMessageW(const IPC::Message & message) Line 729 C++
    libcef.dll!content::ResourceDispatcher::OnMessageReceived(const IPC::Message & message) Line 343    C++
    libcef.dll!content::ResourceSchedulingFilter::DispatchMessageW(const IPC::Message & message) Line 42    C++
    libcef.dll!base::internal::RunnableAdapter<void (__thiscall content::ResourceSchedulingFilter::*)(IPC::Message const &)>::Run(content::ResourceSchedulingFilter * object, const IPC::Message & <args_0>) Line 185   C++
    libcef.dll!base::internal::InvokeHelper<1,void,base::internal::RunnableAdapter<void (__thiscall content::ResourceSchedulingFilter::*)(IPC::Message const &)>,void __cdecl(base::WeakPtr<content::ResourceSchedulingFilter> const &,IPC::Message const &)>::MakeItSo(base::internal::RunnableAdapter<void (__thiscall content::ResourceSchedulingFilter::*)(IPC::Message const &)> runnable, const base::WeakPtr<content::ResourceSchedulingFilter> & weak_ptr, const IPC::Message & <args_0>) Line 392  C++
    libcef.dll!base::internal::Invoker<2,base::internal::BindState<base::internal::RunnableAdapter<void (__thiscall content::ResourceSchedulingFilter::*)(IPC::Message const &)>,void __cdecl(content::ResourceSchedulingFilter *,IPC::Message const &),void __cdecl(base::WeakPtr<content::ResourceSchedulingFilter>,IPC::Message)>,void __cdecl(content::ResourceSchedulingFilter *,IPC::Message const &)>::Run(base::internal::BindStateBase * base) Line 562    C++
    libcef.dll!base::Callback<void __cdecl(void)>::Run() Line 396   C++
    libcef.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function, const char * run_function, const base::PendingTask & pending_task) Line 65  C++
    libcef.dll!content::TaskQueueManager::ProcessTaskFromWorkQueue(unsigned int queue_index) Line 373   C++
    libcef.dll!content::TaskQueueManager::DoWork(bool posted_from_main_thread) Line 345 C++
    libcef.dll!base::internal::RunnableAdapter<void (__thiscall content::TaskQueueManager::*)(bool)>::Run(content::TaskQueueManager * object, const bool & <args_0>) Line 185   C++
    libcef.dll!base::internal::InvokeHelper<1,void,base::internal::RunnableAdapter<void (__thiscall content::TaskQueueManager::*)(bool)>,void __cdecl(base::WeakPtr<content::TaskQueueManager> const &,bool const &)>::MakeItSo(base::internal::RunnableAdapter<void (__thiscall content::TaskQueueManager::*)(bool)> runnable, const base::WeakPtr<content::TaskQueueManager> & weak_ptr, const bool & <args_0>) Line 392  C++
    libcef.dll!base::internal::Invoker<2,base::internal::BindState<base::internal::RunnableAdapter<void (__thiscall content::TaskQueueManager::*)(bool)>,void __cdecl(content::TaskQueueManager *,bool),void __cdecl(base::WeakPtr<content::TaskQueueManager>,bool)>,void __cdecl(content::TaskQueueManager *,bool)>::Run(base::internal::BindStateBase * base) Line 562    C++
    libcef.dll!base::Callback<void __cdecl(void)>::Run() Line 396   C++
    libcef.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function, const char * run_function, const base::PendingTask & pending_task) Line 65  C++
    libcef.dll!base::MessageLoop::RunTask(const base::PendingTask & pending_task) Line 460  C++
    libcef.dll!base::MessageLoop::DeferOrRunPendingTask(const base::PendingTask & pending_task) Line 470    C++
    libcef.dll!base::MessageLoop::DoWork() Line 579 C++
    libcef.dll!base::MessagePumpDefault::Run(base::MessagePump::Delegate * delegate) Line 32    C++
    libcef.dll!base::MessageLoop::RunHandler() Line 423 C++
    libcef.dll!base::RunLoop::Run() Line 56 C++
    libcef.dll!base::MessageLoop::Run() Line 317    C++
    libcef.dll!content::RendererMain(const content::MainFunctionParams & parameters) Line 229   C++
    libcef.dll!content::RunNamedProcessTypeMain(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & process_type, const content::MainFunctionParams & main_function_params, content::ContentMainDelegate * delegate) Line 423  C++
    libcef.dll!content::ContentMainRunnerImpl::Run() Line 803   C++
    libcef.dll!content::ContentMain(const content::ContentMainParams & params) Line 19  C++
    libcef.dll!CefExecuteProcess(const CefMainArgs & args, CefRefPtr<CefApp> application, void * windows_sandbox_info) Line 94  C++
    libcef.dll!cef_execute_process(const _cef_main_args_t * args, _cef_app_t * application, void * windows_sandbox_info) Line 136   C++
    cefclient.exe!CefExecuteProcess(const CefMainArgs & args, CefRefPtr<CefApp> application, void * windows_sandbox_info) Line 138  C++
    cefclient.exe!client::`anonymous namespace'::RunMain(HINSTANCE__ * hInstance, int nCmdShow) Line 61 C++
    cefclient.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpCmdLine, int nCmdShow) Line 122    C++

Original comment by magreenb...@gmail.com on 5 Feb 2015 at 7:30