I am building webview_instrumentation_apk at ToT and when running it hits a DCHECK in EventHandler.cpp pretty consistently.
https://cs.chromium.org/chromium/src/third_party/WebKit/Source/core/input/EventHandler.cpp?l=1377&rcl=ccad60c435f44c43ba7b7f51ed46aa289c393e0b
Steps to reproduce:
$ gn args out/droid
dcheck_always_on = true
is_debug = false
target_os = "android"
use_goma = true
$ ninja -C out/droid webview_instrumentation_apk
$ out/droid/bin/webview_instrumentation_apk install
$ out/droid/bin/webview_instrumentation_apk launch
I was navigating to www.cbc.ca/news/ and then interacting with the page. Clicking on a link seems to always hit the DCHECK but other touch events also hit the DCHECK sometimes. Here is the symbolized stack trace from logcat.
signal 6 (SIGABRT), code -6 in tid 19000 (Chrome_InProcRe), pid 18946 (d_webview.shell)
pid: 18946, tid: 19000, name: Chrome_InProcRe >>> org.chromium.android_webview.shell <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
[FATAL:EventHandler.cpp(1377)] Check failed: result.IsRectBasedTest().
Stack Trace:
RELADDR FUNCTION FILE:LINE
002e0d3d logging::LogMessage::~LogMessage() /usr/local/google/data/chrome/src/base/logging.cc:581:29
02568ea1 blink::EventHandler::BestClickableNodeForHitTestResult(blink::HitTestResult const&, blink::IntPoint&, blink::Node*&) /usr/local/google/data/chrome/src/third_party/WebKit/Source/core/input/EventHandler.cpp:1377:3
0256942d blink::EventHandler::ApplyTouchAdjustment(blink::WebGestureEvent*, blink::HitTestResult*) /usr/local/google/data/chrome/src/third_party/WebKit/Source/core/input/EventHandler.cpp:1718:18
-----------------------------------------------------
r0 00000000 r1 00004a38 r2 00000006 r3 00000008
r4 00004a02 r5 00004a38 r6 cee00bbc r7 0000010c
r8 00000000 r9 f062e1b8 sl 00000047 fp cd402160
ip 00000001 sp cee00ba8 lr f05b79e7 pc f05b1418
Stack Trace:
RELADDR FUNCTION FILE:LINE
0001a418 <UNKNOWN> /system/lib/libc.so
v------> base::debug::(anonymous namespace)::DebugBreak() /usr/local/google/data/chrome/src/base/debug/debugger_posix.cc:228:5
002d0081 base::debug::BreakDebugger() /usr/local/google/data/chrome/src/base/debug/debugger_posix.cc:258:0
002e0fc7 logging::LogMessage::~LogMessage() /usr/local/google/data/chrome/src/base/logging.cc:844:7
02568e9f blink::EventHandler::BestClickableNodeForHitTestResult(blink::HitTestResult const&, blink::IntPoint&, blink::Node*&) /usr/local/google/data/chrome/src/third_party/WebKit/Source/core/input/EventHandler.cpp:1377:3
0256942b blink::EventHandler::ApplyTouchAdjustment(blink::WebGestureEvent*, blink::HitTestResult*) /usr/local/google/data/chrome/src/third_party/WebKit/Source/core/input/EventHandler.cpp:1718:18
02569317 blink::EventHandler::HitTestResultForGestureEvent(blink::WebGestureEvent const&, unsigned int) /usr/local/google/data/chrome/src/third_party/WebKit/Source/core/input/EventHandler.cpp:1677:3
023d3183 blink::WebViewImpl::HitTestResultForTap(blink::WebPoint const&, blink::WebSize const&) /usr/local/google/data/chrome/src/third_party/WebKit/Source/core/exported/WebViewImpl.cpp:3524:12
002c0363 android_webview::AwRenderFrameExt::OnDoHitTest(gfx::PointF const&, gfx::SizeF const&) /usr/local/google/data/chrome/src/android_webview/renderer/aw_render_frame_ext.cc:250:51
v------> void base::DispatchToMethod<android_webview::AwRenderFrameExt*, void (android_webview::AwRenderFrameExt::*)(gfx::PointF const&, gfx::SizeF const&), std::__ndk1::tuple<gfx::PointF, gfx::SizeF> >(android_webview::AwRenderFrameExt* const&, void (android_webview::AwRenderFrameExt::*)(gfx::PointF const&, gfx::SizeF const&), std::__ndk1::tuple<gfx::PointF, gfx::SizeF>&&) /usr/local/google/data/chrome/src/base/tuple.h:60:3
002c0e8b void IPC::DispatchToMethod<android_webview::AwRenderFrameExt, void (android_webview::AwRenderFrameExt::*)(gfx::PointF const&, gfx::SizeF const&), void, std::__ndk1::tuple<gfx::PointF, gfx::SizeF> >(android_webview::AwRenderFrameExt*, void (android_webview::AwRenderFrameExt::*)(gfx::PointF const&, gfx::SizeF const&), void*, std::__ndk1::tuple<gfx::PointF, gfx::SizeF>&&) /usr/local/google/data/chrome/src/ipc/ipc_message_templates.h:51:0
002c02b3 bool IPC::MessageT<AwViewMsg_DoHitTest_Meta, std::__ndk1::tuple<gfx::PointF, gfx::SizeF>, void>::Dispatch<android_webview::AwRenderFrameExt, android_webview::AwRenderFrameExt, void, void (android_webview::AwRenderFrameExt::*)(gfx::PointF const&, gfx::SizeF const&)>(IPC::Message const*, android_webview::AwRenderFrameExt*, android_webview::AwRenderFrameExt*, void*, void (android_webview::AwRenderFrameExt::*)(gfx::PointF const&, gfx::SizeF const&)) /usr/local/google/data/chrome/src/ipc/ipc_message_templates.h:146:7
002c0073 android_webview::AwRenderFrameExt::OnMessageReceived(IPC::Message const&) /usr/local/google/data/chrome/src/android_webview/renderer/aw_render_frame_ext.cc:193:5
02ba69df content::RenderFrameImpl::OnMessageReceived(IPC::Message const&) /usr/local/google/data/chrome/src/content/renderer/render_frame_impl.cc:1700:20
01fbe15f content::ChildThreadImpl::ChildThreadMessageRouter::RouteMessage(IPC::Message const&) /usr/local/google/data/chrome/src/content/child/child_thread_impl.cc:366:38
009c26b5 IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const&) /usr/local/google/data/chrome/src/ipc/ipc_channel_proxy.cc:320:14
v------> base::OnceCallback<void ()>::Run() && /usr/local/google/data/chrome/src/base/callback.h:65:12
002d0841 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) /usr/local/google/data/chrome/src/base/debug/task_annotator.cc:55:0
01b8c57d blink::scheduler::TaskQueueManager::ProcessTaskFromWorkQueue(blink::scheduler::internal::WorkQueue*, blink::scheduler::LazyNow, base::TimeTicks*) /usr/local/google/data/chrome/src/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc:519:21
01b8c1cf blink::scheduler::TaskQueueManager::DoWork(blink::scheduler::internal::Sequence::WorkType) /usr/local/google/data/chrome/src/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc:330:13
v------> base::OnceCallback<void ()>::Run() && /usr/local/google/data/chrome/src/base/callback.h:65:12
002d0841 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) /usr/local/google/data/chrome/src/base/debug/task_annotator.cc:55:0
01b8f743 blink::scheduler::internal::ThreadControllerImpl::DoWork(blink::scheduler::internal::Sequence::WorkType) /usr/local/google/data/chrome/src/third_party/WebKit/Source/platform/scheduler/base/thread_controller_impl.cc:99:19
v------> base::OnceCallback<void ()>::Run() && /usr/local/google/data/chrome/src/base/callback.h:65:12
002d0841 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) /usr/local/google/data/chrome/src/base/debug/task_annotator.cc:55:0
002e6c1b base::internal::IncomingTaskQueue::RunTask(base::PendingTask*) /usr/local/google/data/chrome/src/base/message_loop/incoming_task_queue.cc:123:19
002e9341 base::MessageLoop::RunTask(base::PendingTask*) /usr/local/google/data/chrome/src/base/message_loop/message_loop.cc:399:25
002e95bf base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) /usr/local/google/data/chrome/src/base/message_loop/message_loop.cc:411:5
002e9747 base::MessageLoop::DoWork() /usr/local/google/data/chrome/src/base/message_loop/message_loop.cc:455:16
002eaf13 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) /usr/local/google/data/chrome/src/base/message_loop/message_pump_default.cc:37:31
002e8ea5 base::MessageLoop::Run(bool) /usr/local/google/data/chrome/src/base/message_loop/message_loop.cc:350:12
002ffacf base::RunLoop::Run() /usr/local/google/data/chrome/src/base/run_loop.cc:130:14
00324da3 base::Thread::Run(base::RunLoop*) /usr/local/google/data/chrome/src/base/threading/thread.cc:255:13
003250b9 base::Thread::ThreadMain() /usr/local/google/data/chrome/src/base/threading/thread.cc:338:3
003201a3 base::(anonymous namespace)::ThreadFunc(void*) /usr/local/google/data/chrome/src/base/threading/platform_thread_posix.cc:75:13
00047b2b <UNKNOWN> /system/lib/libc.so
0001aff3 <UNKNOWN> /system/lib/libc.so
Comment 1 by nzolghadr@chromium.org
, Jan 12 2018Labels: -Pri-3 Hotlist-Input-Dev Pri-2