New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 732949 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

DCheck failed: input_handler_->handling_input_event()

Project Member Reported by bokan@chromium.org, Jun 13 2017

Issue description

Chrome Version: ToT (61.0.3130.0) commit {#478884}
OS: Android

What steps will reproduce the problem?
(1) Open web-platform-test runner (that's where I'm seeing this)
(2) Tap on the "Run tests under path" textbox

Crash with DCHECK. Here's the stack trace:

[FATAL:render_widget.cc(2189)] Check failed: input_handler_->handling_input_event()..

Stack Trace:
  RELADDR   FUNCTION                                                                                                FILE:LINE
  000c6e9b  StackTrace                                                                                              /home/bokan/chrome/src/base/debug/stack_trace.cc:199
  001002c5  ~LogMessage                                                                                             /home/bokan/chrome/src/base/logging.cc:552
  016a4b53  content::RenderWidget::ShowUnhandledTapUIIfNeeded(blink::WebPoint const&, blink::WebNode const&, bool)  /home/bokan/chrome/src/content/renderer/render_widget.cc:2189

-----------------------------------------------------

    r0 00000000  r1 00007f85  r2 00000006  r3 9ec81978
    r4 9ec81980  r5 9ec81930  r6 00000002  r7 0000010c
    r8 8ff868c8  r9 9a0d3e6e  sl 12cc2840  fp b06b74f0
    ip 00000006  sp 9ec7b250  lr b6cebb79  pc b6cedf68

Stack Trace:
  RELADDR   FUNCTION
  00041f68  tgkill+12
  0003fb75  pthread_kill+32
  0001c30f  raise+10
  000194c1  __libc_android_abort+34
  000174ac  abort+4
  000c6e27  base::debug::(anonymous namespace)::DebugBreak()
  000c6e0d  base::debug::BreakDebugger()
  001009a3  ~LogMessage
  016a4b51  content::RenderWidget::ShowUnhandledTapUIIfNeeded(blink::WebPoint const&, blink::WebNode const&, bool)
  01691c1d  content::RenderViewImpl::ShowUnhandledTapUIIfNeeded(blink::WebPoint const&, blink::WebNode const&, bool)
  00056cb9  blink::ChromeClientImpl::ShowUnhandledTapUIIfNeeded(blink::IntPoint, blink::Node*, bool)
  00e1009b  blink::GestureManager::HandleGestureTap(blink::EventWithHitTestResults<blink::WebGestureEvent> const&)
  00e0f7bd  blink::GestureManager::HandleGestureEventInFrame(blink::EventWithHitTestResults<blink::WebGestureEvent> const&)
  00e0a117  blink::EventHandler::HandleGestureEventInFrame(blink::EventWithHitTestResults<blink::WebGestureEvent> const&)
  00e09d09  blink::EventHandler::HandleGestureEvent(blink::EventWithHitTestResults<blink::WebGestureEvent> const&)
  000e4973  blink::WebViewImpl::HandleGestureEvent(blink::WebGestureEvent const&)
  000e51e3  blink::WebViewImpl::ResolveTapDisambiguation(double, blink::WebPoint, bool)
  0168e049  content::RenderViewImpl::OnResolveTapDisambiguation(double, gfx::Point, bool)
  01694ae1  void base::DispatchToMethodImpl<content::RenderViewImpl*, void (content::RenderViewImpl::*)(double, gfx::Point, bool), std::__ndk1::tuple<double, gfx::Point, bool> const&, 0u,
  01694a23  void base::DispatchToMethod<content::RenderViewImpl*, void (content::RenderViewImpl::*)(double, gfx::Point, bool), std::__ndk1::tuple<double, gfx::Point, bool> const&>(content:
  016949d9  void IPC::DispatchToMethod<content::RenderViewImpl, void (content::RenderViewImpl::*)(double, gfx::Point, bool), void, std::__ndk1::tuple<double, gfx::Point, bool> >(content::R
  0168df7b  bool IPC::MessageT<ViewMsg_ResolveTapDisambiguation_Meta, std::__ndk1::tuple<double, gfx::Point, bool>, void>::Dispatch<content::RenderViewImpl, content::RenderViewImpl, void,
  0168aea3  content::RenderViewImpl::OnMessageReceived(IPC::Message const&)


 

Comment 1 by bokan@chromium.org, Jun 13 2017

Components: Blink>Input
Labels: Hotlist-Input-Dev
Cc: aelias@chromium.org dtapu...@chromium.org
aelias@ do you have any context of why this DCHECK is there?

The callstack certainly doesn't set that it is handling an input event. (ie; OnResolveTapDisambiguation doesn't call https://cs.chromium.org/chromium/src/content/renderer/input/render_widget_input_handler.h?q=set_handling_in+package:%5Echromium$&l=55 at all.

So it is clear this call stack is correct for the DCHECK. I just don't know why the DCHECK is necessary in the first place. Seems it was added in https://chromium.googlesource.com/chromium/src/+/a070f3cec462c97e8e6945623432cd0f939856b8 a few years back and I believe it would have happened there too.

We can either fix it two ways
!) Remove the dcheck
2) Add set_handling_input_event around the OnResolveTapDisambiguation IPC.

Comment 3 by aelias@chromium.org, Jun 15 2017

Seems fine to remove the dcheck.
Owner: dtapu...@chromium.org
Status: Assigned (was: Untriaged)
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f73ee9f71d87e3deb732db3b9ebe16a8c8d23821

commit f73ee9f71d87e3deb732db3b9ebe16a8c8d23821
Author: Dave Tapuska <dtapuska@chromium.org>
Date: Thu Jun 15 21:34:36 2017

Remove failing bogus DCHECK on ShowUnhandledTapUIIfNeeded

A dcheck was in place to determine if handling event was set or not.
This clearly isn't the case when this code is called. It was decided
that this dcheck isn't needed.

BUG= 732949 

Change-Id: Ic7cf8546efcf4349f0b399d4cb6a9e1a3d924d9d
Reviewed-on: https://chromium-review.googlesource.com/537453
Reviewed-by: Alexandre Elias <aelias@chromium.org>
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#479845}
[modify] https://crrev.com/f73ee9f71d87e3deb732db3b9ebe16a8c8d23821/content/renderer/render_widget.cc

Status: Fixed (was: Assigned)

Sign in to add a comment