Investigate why a target RenderWidgetHostView may be outside of the specified root view |
|
Issue descriptionChrome 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) ......
,
Jul 10
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 |
|
Comment 1 by mcnee@chromium.org
, Jul 9