New issue
Advanced search Search tips

Issue 861933 link

Starred by 1 user

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

Investigate why a target RenderWidgetHostView may be outside of the specified root view

Project Member Reported by mcnee@chromium.org, Jul 9

Issue description

Chrome Version: 69.0.3472.0
OS: Windows

In issue 851958, it was found that in a few calls to RenderWidgetHostInputEventRouter::SendMouseEnterOrLeaveEvents, the specified target view is not within the specified root view.

See https://crash.corp.google.com/browse?q=expanded_custom_data.ChromeCrashProto.magic_signature_1.name%3D%27%5BDump+without+crash%5D+content%3A%3ARenderWidgetHostInputEventRouter%3A%3AReportMouseTargetNotInRoot%27 

This DumpWithoutCrashing has since been removed, but it indicates that:
- the specified root is indeed a root view
- the specified root is not mouse locked
- the root of the target is not mouse locked

The stack trace is as follows:
0x6878d6b0	(chrome.dll -render_widget_host_input_event_router.cc:799 )	content::RenderWidgetHostInputEventRouter::ReportMouseTargetNotInRoot(content::RenderWidgetHostViewBase *,content::RenderWidgetHostViewBase *)
0x67ef51ab	(chrome.dll -render_widget_host_input_event_router.cc:693 )	content::RenderWidgetHostInputEventRouter::SendMouseEnterOrLeaveEvents(blink::WebMouseEvent const &,content::RenderWidgetHostViewBase *,content::RenderWidgetHostViewBase *)
0x67ef505c	(chrome.dll -render_widget_host_input_event_router.cc:405 )	content::RenderWidgetHostInputEventRouter::DispatchMouseEvent(content::RenderWidgetHostViewBase *,content::RenderWidgetHostViewBase *,blink::WebMouseEvent const &,ui::LatencyInfo const &,base::Optional<gfx::PointF> const &)
0x67ef4ec4	(chrome.dll -render_widget_host_input_event_router.cc:1443 )	content::RenderWidgetHostInputEventRouter::DispatchEventToTarget(content::RenderWidgetHostViewBase *,content::RenderWidgetHostViewBase *,blink::WebInputEvent const &,ui::LatencyInfo const &,base::Optional<gfx::PointF> const &)
0x68795e90	(chrome.dll -render_widget_targeter.cc:276 )	content::RenderWidgetTargeter::FoundTarget(content::RenderWidgetHostViewBase *,content::RenderWidgetHostViewBase *,blink::WebInputEvent const &,ui::LatencyInfo const &,base::Optional<gfx::PointF> const &,bool)
0x67ef4858	(chrome.dll -render_widget_targeter.cc:167 )	content::RenderWidgetTargeter::FindTargetAndDispatch(content::RenderWidgetHostViewBase *,blink::WebInputEvent const &,ui::LatencyInfo const &)
0x67ef3ba6	(chrome.dll -render_widget_host_view_event_handler.cc:399 )	content::RenderWidgetHostViewEventHandler::OnMouseEvent(ui::MouseEvent *)
0x67ef38cf	(chrome.dll -render_widget_host_view_aura.cc:1620 )	content::RenderWidgetHostViewAura::OnMouseEvent(ui::MouseEvent *)
0x67ef28ec	(chrome.dll -event_handler.cc:27 )	ui::EventHandler::OnEvent(ui::Event *)
0x67ef286a	(chrome.dll -event_dispatcher.cc:191 )	ui::EventDispatcher::DispatchEvent(ui::EventHandler *,ui::Event *)
0x67ef24d6	(chrome.dll -event_dispatcher.cc:139 )	ui::EventDispatcher::ProcessEvent(ui::EventTarget *,ui::Event *)
0x67ef23bd	(chrome.dll -event_dispatcher.cc:86 )	ui::EventDispatcherDelegate::DispatchEventToTarget(ui::EventTarget *,ui::Event *)
0x67ef1849	(chrome.dll -event_dispatcher.cc:58 )	ui::EventDispatcherDelegate::DispatchEvent(ui::EventTarget *,ui::Event *)
0x67ef07c4	(chrome.dll -event_processor.cc:57 )	ui::EventProcessor::OnEventFromSource(ui::Event *)
0x68e3997e	(chrome.dll -event_source.cc:84 )	ui::EventSource::SendEventToSinkFromRewriter(ui::Event *,ui::EventRewriter const *)
0x67ef0699	(chrome.dll -event_source.cc:44 )	ui::EventSource::SendEventToSink(ui::Event *)
0x691f62e6	(chrome.dll -desktop_window_tree_host_win.cc:880 )	views::DesktopWindowTreeHostWin::HandleGestureEvent(ui::GestureEvent *)
0x67eeff71	(chrome.dll -hwnd_message_handler.cc:2821 )	views::HWNDMessageHandler::HandleMouseEventInternal(unsigned int,unsigned int,long,bool)
0x67eefc36	(chrome.dll -hwnd_message_handler.cc:999 )	views::HWNDMessageHandler::HandleMouseMessage(unsigned int,unsigned int,long,bool *)
0x67eefba4	(chrome.dll -legacy_render_widget_host_win.cc:319 )	content::LegacyRenderWidgetHostHWND::OnMouseRange(unsigned int,unsigned int,long,int &)
0x67e8e3d4	(chrome.dll -legacy_render_widget_host_win.h:84 )	content::LegacyRenderWidgetHostHWND::_ProcessWindowMessage(HWND__ *,unsigned int,unsigned int,long,long &,unsigned long)
0x67e8e282	(chrome.dll -legacy_render_widget_host_win.h:78 )	content::LegacyRenderWidgetHostHWND::ProcessWindowMessage(HWND__ *,unsigned int,unsigned int,long,long &,unsigned long)
0x67e8e19f	(chrome.dll -atlwin.h:3543 )	ATL::CWindowImplBaseT<ATL::CWindow,ATL::CWinTraits<1073741824,0> >::WindowProc(HWND__ *,unsigned int,unsigned int,long)
......
 
Cc: riajiang@chromium.org
Adding riajiang@ for any ideas, since the stack trace seems to indicate that the target is just the synchronous hit test result.
When the target is not in the subtree of the current root-view, it should be caught here https://cs.chromium.org/chromium/src/content/browser/renderer_host/render_widget_host_input_event_router.cc?l=349, so when we reach DispatchMouseEvent it shouldn't have this mismatch I think. Do we enter this case (target not inside root-view) in RenderWidgetHostInputEventRouter::FindViewAtLocation when this crash happens?

Sign in to add a comment