New issue
Advanced search Search tips

Issue 852022 link

Starred by 9 users

Issue metadata

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

Blocked on:
issue 865462



Sign in to add a comment

Need to cancel selected touch-points (vs all) to support palm rejection

Project Member Reported by mustaq@chromium.org, Jun 12 2018

Issue description

Most (all?) of the event handling code in browser/blink treats low-level "touch-cancel event" equivalent to "beginning of scroll" because it is what Android MotionEvent does and it supported our use cases so far.
https://developer.android.com/reference/android/view/MotionEvent.html#ACTION_CANCEL

Therefore, any use case where low-level "touch-cancel events" is NOT related to beginning of scroll is currently broken.

Palm rejection is one such case.  If a user rests his hand on the touch screen first and then starts drawing with a pen, the device driver can possibly detect the first contact as a "palm" /after/ sending the touch-start, in which case it should cancel the first touch-point only while letting the second touch-point (for the pen) go ahead as usual.

Looks like quite a bit of work to me.

Adding RVG because it came up internally in b/110092372.  Not sure if it's okay to remove this label.

 

Comment 1 by mustaq@chromium.org, Jun 12 2018

Note that both PointerEvents and TouchEvents support canceling individual touch points, so we are okay from Web platform perspective.

Comment 2 by mustaq@chromium.org, Jun 12 2018

Labels: -Restrict-View-Google
Cc: seobrien@chromium.org

Comment 4 by mustaq@chromium.org, Jun 12 2018

Cc: -seobrien@chromium.org
Summary: Need to cancel selected touch-points (vs all) to support palm rejection (was: Need to cancel selected point-points (vs all) to support palm rejection)

Comment 5 by mustaq@chromium.org, Jun 12 2018

Cc: seobrien@chromium.org
Oops, accidentally removed seobrien@ from cc.
Blockedon: 865462
Cc: mustaq@chromium.org napper@chromium.org
Labels: -Pri-3 Pri-2
napper@ has been working on touchscreen palm rejection and has a working prototype implemented in ozone.

Single-touch cancellation would improve the experience- is there someone who can work on this?

Thanks!
friendly ping
Status: Untriaged (was: Available)
Marking as untriaged so this gets looked at. nzolghadr@ should prioritize this but is out this week so we may need to wait until he returns.
Owner: nzolghadr@chromium.org
Status: Assigned (was: Untriaged)
The whole pipeline for touch events are grouped. So it certainly is tricky to solve the issue without refactoring the whole pipeline and migrate it to individual pointer events. napper@ what does your timeline look like?
We are targeting a launch in M74 (or if not then M75).
Is your work behind the flag that we can enable and try?
I'll try to schedule this for 2019 Q1.
We don't have something you can enable yet, but it shouldn't be far off. I will let you know when a flag is available. 
Fantastic. Also I was wondering how your palm rejection logic is going to work. So if we have multiple finger type pointers on the screen as soon as we start interacting with pen do you cancel all those finger type pointers or do you selectively figure which one was palm and only cancel that? So in other words when palm rejection kicks in can I still have some touch pointers and some pen pointers alive and page should react to those or will all touch pointers get canceled and only pen one remains?
The palm detection works on individual touches, so it can identify which touches are palm / spurious and which ones are valid. Ideally we should be able to just cancel just the touches identified as palm and allow all the others through.
napper@ we were planning to work on the bug this quarter. I was wondering whether you got to a place that we can enable that feature from your side in Chrome?

Comment 17 by napper@chromium.org, Jan 21 (2 days ago)

nzolghadr@ that is great news. We are working toward having a flag you can enable. I will let you know when it is available.

Sign in to add a comment