New issue
Advanced search Search tips

Issue 805011 link

Starred by 1 user

Issue metadata

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

Blocking:
issue 805007



Sign in to add a comment

Redundant pen pointerleave events when pen supports hover

Project Member Reported by nzolghadr@chromium.org, Jan 23 2018

Issue description

After switching to the direct manipulation model for pen on the latest Windows, Chrome started sending leave events when pen un-touch the screen but is still in the range of the digitizer.
Instead, it should only send a pointerup and only send the leave when pen goes out of the boundary of the element or leaves the range of the digitizer.

Failing test:
w3c-test.org/pointerevents/pointerevent_attributes_hoverable_pointers-manual.html
 
Blocking: 805007
Labels: Hotlist-Input-Dev

Comment 3 by mustaq@chromium.org, Jan 23 2018

Am I correct that external digitizers (say Wacom Intuos Pro) are fine (IIRC they are perhaps considered indirect-manipulation device in CrOS)?

If I am wrong, this would mean we have practically stopped supporting hovering pens altogether even though browser-side event plumbing is there!  We would need to raise the priority to P1 then.

This test is also failing due to the same situation:
w3c-test.org/pointerevents/pointerevent_sequence_at_implicit_release_on_click-manual.html

Owner: nzolghadr@chromium.org
Status: Assigned (was: Available)
Navid I believe you are working on this right?
I am and I don't know why I hadn't assigned it. Thanks.
Project Member

Comment 7 by bugdroid1@chromium.org, Feb 7 2018

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

commit abfb81cc59e040553b09254c5a08a186f9700f74
Author: Navid Zolghadr <nzolghadr@chromium.org>
Date: Wed Feb 07 15:59:05 2018

Indicate whether a WebTouchEvent is hovering or not

When pen is touching the digitizer we send touch events
instead of mouse events to get the direct manipulation
behavior such as scroll on drag. However, as oppose to
normal touch when pointerup (or touchend) happens the
pen might still be in the range of the digitizer and
Blink shouldn't just send the out/leave events right
after the up event. So this CL comminucates this
information from the browser to Blink so that it only
sends boundary events after up event when it does not
support hover.

Bug:  805011 
Change-Id: Ifab24950e22a55835ed069955228236d2ec84c9b
Reviewed-on: https://chromium-review.googlesource.com/893802
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Rick Byers <rbyers@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Navid Zolghadr <nzolghadr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535015}
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/content/browser/renderer_host/input/motion_event_web_unittest.cc
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/content/browser/renderer_host/input/web_input_event_util_unittest.cc
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/content/browser/renderer_host/render_widget_host_view_event_handler.cc
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/content/common/input/input_event_struct_traits.cc
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/content/common/input/input_handler.mojom
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/content/shell/test_runner/event_sender.cc
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/third_party/WebKit/Source/core/events/PointerEventFactory.cpp
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/third_party/WebKit/Source/core/events/PointerEventFactory.h
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/third_party/WebKit/Source/core/events/PointerEventFactoryTest.cpp
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/third_party/WebKit/Source/core/input/PointerEventManager.cpp
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/third_party/WebKit/Source/core/input/PointerEventManager.h
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/third_party/WebKit/Source/platform/WebPointerEvent.cpp
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/third_party/WebKit/public/platform/WebPointerEvent.h
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/third_party/WebKit/public/platform/WebTouchEvent.h
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/ui/events/blink/blink_event_util.cc
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/ui/events/blink/blink_event_util.h
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/ui/events/blink/web_input_event_traits.cc
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/ui/events/event.cc
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/ui/events/event.h
[modify] https://crrev.com/abfb81cc59e040553b09254c5a08a186f9700f74/ui/views/win/pen_event_processor.cc

Status: Fixed (was: Assigned)

Sign in to add a comment