New issue
Advanced search Search tips

Issue 625693 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 642368



Sign in to add a comment

VSync align touchmove, mousemove, mousewheel events on the main thread.

Project Member Reported by dtapu...@chromium.org, Jul 4 2016

Issue description

Process touchmove, mousemove, mousewheel as part of the document lifecycle.

Add RAF aligned input to the main thread by processing movement events
during the document life cycle.

The goal of this is to provide the developer with as much time in a frame to handle the input by sending it early after the RAF callback.

Initial version should be implemented as an experiment.
 
Status: Assigned (was: Untriaged)
Project Member

Comment 2 by bugdroid1@chromium.org, Aug 30 2016

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

commit 3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67
Author: dtapuska <dtapuska@chromium.org>
Date: Tue Aug 30 04:34:00 2016

Introduce the concept of RAF aligned input events to the MainThreadEventQueue.
Currently behind a feature flag and is disabled.

Short Design Doc:

https://docs.google.com/document/d/1aM9AqyYuceRHOmsJZXFKcgi_D4jvFAymYvI36OEwIpI/edit?usp=sharing

BUG= 625693 

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

[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/common/input/web_input_event_queue.h
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/public/common/content_features.cc
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/public/common/content_features.h
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/input/input_event_filter.cc
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/input/input_event_filter.h
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/input/input_event_filter_unittest.cc
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/input/input_handler_manager.cc
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/input/input_handler_manager.h
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/input/input_handler_manager_client.h
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/input/input_handler_wrapper.cc
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/input/input_handler_wrapper.h
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/input/main_thread_event_queue.cc
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/input/main_thread_event_queue.h
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/input/main_thread_event_queue_unittest.cc
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/mus/compositor_mus_connection_unittest.cc
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/render_widget.cc
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/content/renderer/render_widget.h
[modify] https://crrev.com/3d5624d3a3aa88e0fafe5bd09b5725b1b3f25d67/tools/metrics/histograms/histograms.xml

Status: Fixed (was: Assigned)
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 31 2016

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

commit bcdbb3fba1e0cebab4757384fde69d909295622c
Author: dtapuska <dtapuska@chromium.org>
Date: Wed Aug 31 15:33:44 2016

Don't RAF align touch moves that are blocking.

It doesn't make sense to wait arbitrary for touch events that are blocking.
So make them appear as non-continuous events.

BUG= 625693 

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

[modify] https://crrev.com/bcdbb3fba1e0cebab4757384fde69d909295622c/content/renderer/input/main_thread_event_queue.cc
[modify] https://crrev.com/bcdbb3fba1e0cebab4757384fde69d909295622c/content/renderer/input/main_thread_event_queue_unittest.cc

Blocking: 642368
Project Member

Comment 6 by bugdroid1@chromium.org, Sep 14 2016

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

commit ed255334e459137808c04ede96e8a3253ca3dde5
Author: dtapuska <dtapuska@chromium.org>
Date: Wed Sep 14 18:33:51 2016

Don't process more than the queued events during rAF.

There was potential that a stream events could enter rAF while it was being
processed. This was an initial design consideration but after talking with
an external partner it appears that probably we should just process what
is queued. This gives the benefit that only one type of a given event
will be processed during the callback.

BUG= 625693 

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

[modify] https://crrev.com/ed255334e459137808c04ede96e8a3253ca3dde5/content/renderer/input/main_thread_event_queue.cc
[modify] https://crrev.com/ed255334e459137808c04ede96e8a3253ca3dde5/content/renderer/input/main_thread_event_queue_unittest.cc

Sign in to add a comment