New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 661601 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocking:
issue 625689



Sign in to add a comment

[Compositor VSync Aligned Input] Support coalescing events across interleaved boundaries

Project Member Reported by chongz@chromium.org, Nov 2 2016

Issue description

There might be multiple sequences of GestureScroll/Pinch in one frame, e.g.
```
scroll => pinch => scroll
```
(In addition to coalescing individual sequences) We want to coalesce the second scroll into the first one, and recalculate pinch data accordingly.

An alternative approach is to use matrix transformations but will require more investigation. 


 
Project Member

Comment 1 by bugdroid1@chromium.org, Dec 14 2016

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

commit 058c4c7ec00da18c90214ecaa956a84e229548ad
Author: chongz <chongz@chromium.org>
Date: Wed Dec 14 16:58:28 2016

[Compositor event queue] Coalesce gesture scroll&pinch of the same sequence

It is possible to have |GestureScrollUpdate| and |GesturePinchUpdate| in the same
|GestureScrollBegin/End| sequence. This CL coalesces multiple GSUs and GPUs into 1
GSU and 1 GPU using matrix transformation.

e.g.
|GSB| -> |GSU| -> |GSU| -> |GPU| -> |GSU| -> |GSE|
becomes
|GSB| -> |GSU|* -> |GPU|* -> |GSE|

* means coalesced events.

Note that we have to go through the matrix when there are 2 adjacent pinch events
with different pinch point as they would coalesce to 1 scroll event and 1 pinch event.

BUG= 661601 

Review-Url: https://codereview.chromium.org/2552853002
Cr-Commit-Position: refs/heads/master@{#438534}

[modify] https://crrev.com/058c4c7ec00da18c90214ecaa956a84e229548ad/content/browser/renderer_host/input/gesture_event_queue.cc
[modify] https://crrev.com/058c4c7ec00da18c90214ecaa956a84e229548ad/content/browser/renderer_host/input/gesture_event_queue.h
[modify] https://crrev.com/058c4c7ec00da18c90214ecaa956a84e229548ad/ui/events/blink/BUILD.gn
[modify] https://crrev.com/058c4c7ec00da18c90214ecaa956a84e229548ad/ui/events/blink/DEPS
[modify] https://crrev.com/058c4c7ec00da18c90214ecaa956a84e229548ad/ui/events/blink/blink_event_util.cc
[modify] https://crrev.com/058c4c7ec00da18c90214ecaa956a84e229548ad/ui/events/blink/blink_event_util.h
[modify] https://crrev.com/058c4c7ec00da18c90214ecaa956a84e229548ad/ui/events/blink/compositor_thread_event_queue.cc
[modify] https://crrev.com/058c4c7ec00da18c90214ecaa956a84e229548ad/ui/events/blink/event_with_callback.cc
[modify] https://crrev.com/058c4c7ec00da18c90214ecaa956a84e229548ad/ui/events/blink/event_with_callback.h
[modify] https://crrev.com/058c4c7ec00da18c90214ecaa956a84e229548ad/ui/events/blink/input_handler_proxy_unittest.cc

Comment 2 by chongz@chromium.org, Feb 14 2017

Labels: M-57
Status: Fixed (was: Assigned)

Sign in to add a comment