Crash when clicking a link in desktop G+

Bug #1477760 reported by Alexandre Abreu
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Oxide
Fix Released
Critical
Alexandre Abreu
1.8
Won't Fix
Critical
Unassigned
1.9
Fix Released
Critical
Unassigned

Bug Description

There is an oxide crash when clicking on a link when in g+, any link that should popup externally seems to trigger it.

The responsible is a NULL entry pointer (NavigationEntry) as the LoadSucceeded call is being issued. The URL browsed to is a transient "about:blank" right before the actual target url is hit.

Here is a small stacktrace:

0x00007fffc040ade5 in oxide::WebView::DidFinishLoad (this=0x129ab30, render_frame_host=<optimized out>, validated_url=...)
    at ../../../../trunk/shared/browser/oxide_web_view.cc:1031
1031 client_->LoadSucceeded(validated_url, entry->GetHttpStatusCode());
(gdb) bt
#0 0x00007fffc040ade5 in oxide::WebView::DidFinishLoad (this=0x129ab30, render_frame_host=<optimized out>, validated_url=...)
    at ../../../../trunk/shared/browser/oxide_web_view.cc:1031
#1 0x00007fffc077b7a7 in content::WebContentsImpl::OnDidFinishLoad (this=<optimized out>, url=...)
    at ../../../../trunk/third_party/chromium/src/content/browser/web_contents/web_contents_impl.cc:3001
#2 0x00007fffc07836d1 in DispatchToMethodImpl<content::WebContentsImpl, void (content::WebContentsImpl::*)(GURL const&), GURL, 0ul> (arg=..., method=<optimized out>,
    obj=0x1272090) at ../../../../trunk/third_party/chromium/src/base/tuple.h:254
#3 DispatchToMethod<content::WebContentsImpl, void (content::WebContentsImpl::*)(GURL const&), GURL> (arg=..., method=
    (void (content::WebContentsImpl::*)(content::WebContentsImpl * const, const GURL &)) 0x7fffc077b6e0 <content::WebContentsImpl::OnDidFinishLoad(GURL const&)>, obj=0x1272090)
    at ../../../../trunk/third_party/chromium/src/base/tuple.h:261
#4 Dispatch<content::WebContentsImpl, content::WebContentsImpl, void, void (content::WebContentsImpl::*)(GURL const&)> (sender=<optimized out>, parameter=0x0, func=
    (void (content::WebContentsImpl::*)(content::WebContentsImpl * const, const GURL &)) 0x7fffc077b6e0 <content::WebContentsImpl::OnDidFinishLoad(GURL const&)>, obj=0x1272090,
    msg=0x7fff884c47e0) at ../../../../trunk/third_party/chromium/src/content/common/frame_messages.h:730
#5 content::WebContentsImpl::OnMessageReceived (this=0x1272090, render_view_host=0x0, render_frame_host=<optimized out>, message=...)
    at ../../../../trunk/third_party/chromium/src/content/browser/web_contents/web_contents_impl.cc:579
#6 0x00007fffc05a8b33 in content::RenderFrameHostImpl::OnMessageReceived (this=0x1267690, msg=...)
    at ../../../../trunk/third_party/chromium/src/content/browser/frame_host/render_frame_host_impl.cc:367
#7 0x00007fffc06c9aae in content::RenderProcessHostImpl::OnMessageReceived (this=0x11bff70, msg=...)
    at ../../../../trunk/third_party/chromium/src/content/browser/renderer_host/render_process_host_impl.cc:1565
#8 0x00007fffc1047620 in IPC::ChannelProxy::Context::OnDispatchMessage (this=0x10a6f60, message=...) at ../../../../trunk/third_party/chromium/src/ipc/ipc_channel_proxy.cc:294
#9 0x00007fffc0433d41 in Run (this=0x7fffffffd378) at ../../../../trunk/third_party/chromium/src/base/callback.h:396
#10 base::debug::TaskAnnotator::RunTask (this=this@entry=0xfe2f10, queue_function=queue_function@entry=0x7fffc31828c6 "MessageLoop::PostTask",
    run_function=run_function@entry=0x7fffc31828e5 "MessageLoop::RunTask", pending_task=...) at ../../../../trunk/third_party/chromium/src/base/debug/task_annotator.cc:62
#11 0x00007fffc0450044 in base::MessageLoop::RunTask (this=this@entry=0xfe2db0, pending_task=...)
    at ../../../../trunk/third_party/chromium/src/base/message_loop/message_loop.cc:473
#12 0x00007fffc0450321 in base::MessageLoop::DeferOrRunPendingTask (this=this@entry=0xfe2db0, pending_task=...)
    at ../../../../trunk/third_party/chromium/src/base/message_loop/message_loop.cc:482
#13 0x00007fffc04509fb in base::MessageLoop::DoWork (this=0xfe2db0) at ../../../../trunk/third_party/chromium/src/base/message_loop/message_loop.cc:594
#14 0x00007fffc03c7158 in oxide::qt::MessagePump::RunOneTask (this=0xfe1d70) at ../../../../trunk/qt/core/browser/oxide_qt_message_pump.cc:67
#15 0x00007ffff7ba96f3 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007ffff6f17b2c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff6f1d000 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff7b77c2b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007ffff7b79c9b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007ffff7bd0843 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007ffff4699c3d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007ffff4699f20 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007ffff4699fcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007ffff7bd0c57 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff7b753e2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007ffff7b7d02c in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x000000000045ec4c in BrowserApplication::run() ()
#28 0x0000000000452ebb in main ()

Changed in oxide:
assignee: nobody → Alexandre Abreu (abreu-alexandre)
importance: Undecided → High
status: New → In Progress
Changed in oxide:
milestone: none → branch-1.10
importance: High → Critical
Revision history for this message
Jamie Strandboge (jdstrand) wrote :

What is the status of this bug?

Changed in oxide:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.