New issue
Advanced search Search tips

Issue 843059 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

NOTREACHED hit in WebFrameWidgetBase::PointerLockMouseEvent

Project Member Reported by grt@chromium.org, May 15 2018

Issue description

Looks like an unexpected type of event is being seen. From https://chromium-swarm.appspot.com/task?id=3d7be59f98d6c110&refresh=10&show_raw=1:

...WebViewPointerLockInteractiveTest.PointerLock_PointerLockLostWithFocus...

[9160:6748:0515/021547.951:FATAL:web_frame_widget_base.cc(346)] Check failed: false. 
Backtrace:
	base::debug::StackTrace::StackTrace [0x0000000141642BC4+36]
	logging::LogMessage::~LogMessage [0x000000014165F542+98]
	blink::WebFrameWidgetBase::PointerLockMouseEvent [0x0000000143E61FBC+450]
	blink::WebViewImpl::HandleInputEvent [0x0000000142FA2375+437]
	content::RenderWidgetInputHandler::HandleInputEvent [0x000000014403501C+728]
	content::RenderWidget::HandleInputEvent [0x000000014319A39C+76]
	content::RenderViewImpl::HandleInputEvent [0x000000014218160D+125]
	content::MainThreadEventQueue::HandleEventOnMainThread [0x0000000144033F70+82]
	content::QueuedWebInputEvent::Dispatch [0x00000001440342C5+261]
	content::MainThreadEventQueue::DispatchEvents [0x0000000144033B90+298]
	base::debug::TaskAnnotator::RunTask [0x000000014164359E+382]
 

Comment 1 by lfg@chromium.org, May 16 2018

Cc: kenrb@chromium.org wjmaclean@chromium.org riajiang@chromium.org lfg@chromium.org
Owner: ----
Status: Available (was: Assigned)
I was not able to repro, but I suspect this is some kind of race where the browser ends up sending events to the renderer out-of-order/not synchronized with the request to lock the mouse. It could also be a synthesized event (enter/leave or maybe from touch gestures).

Adding more people who are familiar with mouse event routing on the RenderWidgetHostInputEventRouter.

Project Member

Comment 3 by bugdroid1@chromium.org, May 17 2018

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

commit dd6eafc0150f9b5e37eb2629a51e63b9996f38bf
Author: Greg Thompson <grt@chromium.org>
Date: Thu May 17 15:48:16 2018

Log the event type when unexpected events are seen.

This is to help diagnose a DCHECK being hit when unexpected pointer lock
mouse events arise.

BUG= 843059 
R=lfg@chromium.org

Change-Id: Ifffe9300d763135ff9b95b98e7054d6360e7ee4f
Reviewed-on: https://chromium-review.googlesource.com/1063710
Reviewed-by: Lucas Gadani <lfg@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Commit-Queue: Jeremy Roman <jbroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559549}
[modify] https://crrev.com/dd6eafc0150f9b5e37eb2629a51e63b9996f38bf/third_party/blink/renderer/core/frame/web_frame_widget_base.cc

Comment 4 by grt@chromium.org, May 18 2018

Cc: -lfg@chromium.org
Owner: lfg@chromium.org
I think it's a kMouseLeave event:

[4616:4740:0517/223844.322:FATAL:web_frame_widget_base.cc(343)] Check failed: false. 4

does that help?

There's nothing more I can do to help. Please take action. You could disable the test in debug configurations, remove the NOTREACHED and add relevant handling to the default case, add a new case for kMouseLeave that handles it appropriately, etc. The NOTREACHED is clearly being reached somehow, so something must be done. Thanks.
Project Member

Comment 5 by bugdroid1@chromium.org, May 23 2018

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

commit 1d1955f522e8d467ab4fe05ef6e8bf0b6932a7bc
Author: Lucas Gadani <lfg@chromium.org>
Date: Wed May 23 23:02:48 2018

Speculative fix for NOTREACHED in WebFrameWidgetBase::PointerLockMouseEvent.

WebViewPointerLockInteractiveTest.PointerLock_PointerLockLostWithFocus
started failing recently, where WebFrameWidgetBase::PointerLockMouseEvent
was receiving mouse leave events unexpectedly.

This CL ensures that mouse enter/leave events don't get sent while
the mouse is locked.

Bug:  843059 
Change-Id: I05cb7d7cfba2732cb56ff1bda8901ae9999c57e5
Reviewed-on: https://chromium-review.googlesource.com/1066113
Commit-Queue: Lucas Gadani <lfg@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561298}
[modify] https://crrev.com/1d1955f522e8d467ab4fe05ef6e8bf0b6932a7bc/content/browser/renderer_host/render_widget_host_input_event_router.cc

Comment 6 by lfg@chromium.org, May 24 2018

Status: Fixed (was: Available)

Comment 7 by grt@chromium.org, May 24 2018

Great! Thank you for getting to the bottom of this.

Sign in to add a comment