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

Issue 727853 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Feature

Blocking:
issue 716668



Sign in to add a comment

Change blink's logic of computing touch action bits

Project Member Reported by xidac...@chromium.org, May 30 2017

Issue description

Right now blink needs to do a tree walk, in order to determine the touch action bit. We should change the logic such that blink won't need to do a tree walk for every node, instead retrieving the touch action bits should be constant access.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 13 2017

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

commit 4d9c0082acd8bd604a1a44260dc6f62a400e5ddb
Author: sunxd <sunxd@chromium.org>
Date: Thu Jul 13 14:03:28 2017

Compute effective touch action in StyleAdjuster.

We used to store touch action bits in ComputedStyle and recompute the
effective touch action in TouchActionUtil whenever we need to use it.

In order to process touch action info in cc, we need to adjust this
method as cc has no access to TouchActionUtil. We can compute them when
recomputing styles or in cc. As cc lacks hit testing information, it is
more feasible to do it in StyleAdjuster. Pre-computing the style also
saves time by avoiding tree walks.

This CL adds the EffectiveTouchAction to non-css RareInheritedData and
uses it when computing styles. There are also special cases where touch
action is not supported in atomic inline level elements and there are
exceptions if an element is an iframe or scrolls.

BUG= 727853 

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

[modify] https://crrev.com/4d9c0082acd8bd604a1a44260dc6f62a400e5ddb/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/4d9c0082acd8bd604a1a44260dc6f62a400e5ddb/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/4d9c0082acd8bd604a1a44260dc6f62a400e5ddb/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
[add] https://crrev.com/4d9c0082acd8bd604a1a44260dc6f62a400e5ddb/third_party/WebKit/Source/core/css/resolver/StyleAdjusterTest.cpp
[modify] https://crrev.com/4d9c0082acd8bd604a1a44260dc6f62a400e5ddb/third_party/WebKit/Source/core/dom/StyleChangeReason.cpp
[modify] https://crrev.com/4d9c0082acd8bd604a1a44260dc6f62a400e5ddb/third_party/WebKit/Source/core/dom/StyleChangeReason.h
[modify] https://crrev.com/4d9c0082acd8bd604a1a44260dc6f62a400e5ddb/third_party/WebKit/Source/core/input/TouchActionUtil.cpp
[modify] https://crrev.com/4d9c0082acd8bd604a1a44260dc6f62a400e5ddb/third_party/WebKit/Source/core/layout/LayoutBox.h
[modify] https://crrev.com/4d9c0082acd8bd604a1a44260dc6f62a400e5ddb/third_party/WebKit/Source/core/style/ComputedStyle.h

Status: Fixed (was: Started)

Sign in to add a comment