New issue
Advanced search Search tips

Issue 836905 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 3
Type: Feature


Sign in to add a comment

(PaintTouchActionRects ) Implement touch action regions, non-fast scrollable regions, main thread scrolling reasons independent of compositing decisions

Project Member Reported by pdr@chromium.org, Apr 25 2018

Issue description

This is a tracking bug for implementing the following ScrollingCoordinator hit test regions in blink property trees:
1) Touch action regions
2) non-fast scrollable regions
3) main thread scrolling reasons
 

Comment 1 by flackr@chromium.org, Apr 26 2018

Labels: -Pri-2 Pri-3
Owner: sunxd@chromium.org
Status: Assigned (was: Untriaged)

Comment 2 by pdr@chromium.org, May 10 2018

I think the subtasks for the scroll hit test regions are roughly:
1) Add rects to blink's scroll node (ScrollPaintPropertyNode) and set them in PaintPropertyTreeBuilder which is run during the pre-paint tree walk. This needs to be done without querying compositing state.
2) We then need to collect all rects for a given composited layer, including the descendant scroll node rects that were not composited. With --enable-blink-gen-property-trees, we know compositing decisions in PaintArtifactCompositor. When walking paint chunks for a given composited layer in PAC, collect all descendant non-composited scroll nodes in a vector. Then, map all of the scroll rects into the transform space of the composited layer using GeometryMapper.
3) Finally, set the combined scroll rect for a composited layer on either cc's scroll node or cc::Layer.

Tests.. Are there existing layout tests that cover these rects? If so, they need to pass with --enable-blink-gen-property-trees and third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees should be updated to reflect that the test passes. Maybe as a sanity check, DCHECK that the rects produced with this process are equal to the rects currently produced by ScrollingCoordinator?

Comment 3 by pdr@chromium.org, May 11 2018

I learned that we need to design this in a way that works with and without blink-gen-property-trees in order to not block Viz.

I think we'll need to slightly modify the above design. We'll still add the hit test structure to ScrollPaintPropertyNode (and later TransformPaintPropertyNode) but we'll need to implement the blink->cc hookup twice: once for the current codepath (ScrollingCoordinator), and a second time for the PaintArtifactCompositor codepath.

Looking on the bright side, this will let us test the new approach even before launching blink-gen-property-trees.
Project Member

Comment 4 by bugdroid1@chromium.org, May 18 2018

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

commit 257b9948e3d820f481ffc8af859536c10545b2ba
Author: Xida Chen <xidachen@chromium.org>
Date: Fri May 18 18:23:14 2018

Create a hit testing data structure

This CL creates a new data structure for hit testing, and stores it in
PaintChunk. For now it contains four things only:
1. a border rect (will be empty it there is a pointer_events: none)
2. touch action rect
3. whee event handler region
4. non-fast scrollable area

We aim to build this data structure during the paint phase, using the
property trees that are built from the pre-paint walk. This data
structure will eventually be shipped to CC when paint chunks are
converted to cc::Layers.

Bug: 836905
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2;luci.chromium.try:linux-blink-gen-property-trees
Change-Id: I4629e8b69f1e4e657fa40957763cc98368620650
Reviewed-on: https://chromium-review.googlesource.com/1054444
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Xida Chen <xidachen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559962}
[modify] https://crrev.com/257b9948e3d820f481ffc8af859536c10545b2ba/third_party/blink/renderer/core/paint/block_painter_test.cc
[modify] https://crrev.com/257b9948e3d820f481ffc8af859536c10545b2ba/third_party/blink/renderer/core/paint/paint_layer_painter_test.cc
[modify] https://crrev.com/257b9948e3d820f481ffc8af859536c10545b2ba/third_party/blink/renderer/platform/BUILD.gn
[modify] https://crrev.com/257b9948e3d820f481ffc8af859536c10545b2ba/third_party/blink/renderer/platform/graphics/compositing/composited_layer_raster_invalidator_test.cc
[add] https://crrev.com/257b9948e3d820f481ffc8af859536c10545b2ba/third_party/blink/renderer/platform/graphics/paint/hit_test_data.h
[modify] https://crrev.com/257b9948e3d820f481ffc8af859536c10545b2ba/third_party/blink/renderer/platform/graphics/paint/paint_artifact.cc
[modify] https://crrev.com/257b9948e3d820f481ffc8af859536c10545b2ba/third_party/blink/renderer/platform/graphics/paint/paint_chunk.cc
[modify] https://crrev.com/257b9948e3d820f481ffc8af859536c10545b2ba/third_party/blink/renderer/platform/graphics/paint/paint_chunk.h
[modify] https://crrev.com/257b9948e3d820f481ffc8af859536c10545b2ba/third_party/blink/renderer/platform/graphics/paint/paint_chunker.cc
[modify] https://crrev.com/257b9948e3d820f481ffc8af859536c10545b2ba/third_party/blink/renderer/platform/graphics/paint/paint_chunker_test.cc
[modify] https://crrev.com/257b9948e3d820f481ffc8af859536c10545b2ba/third_party/blink/renderer/platform/graphics/paint/paint_controller.cc
[modify] https://crrev.com/257b9948e3d820f481ffc8af859536c10545b2ba/third_party/blink/renderer/platform/graphics/paint/paint_controller_test.cc
[modify] https://crrev.com/257b9948e3d820f481ffc8af859536c10545b2ba/third_party/blink/renderer/platform/graphics/touch_action_rect.h

Comment 5 by pdr@chromium.org, May 21 2018

I have a patch [1] that force-enables BlinkGenPropertyTrees and found several tests that fail[2]. We should make sure these tests pass.

Here are some tests that fail due to no touch action support:
SitePerProcessHitTestBrowserTest.MainframeTouchEventRouting/2
../../content/browser/site_per_process_hit_test_browsertest.cc:2691: Failure
Expected equality of these values:
  cc::kTouchActionNone
    Which is: 0
  render_widget_host->input_router()->AllowedTouchAction()
    Which is: 63

SitePerProcessHitTestBrowserTest.SubframeTouchEventRouting/2
Expected equality of these values:
  cc::kTouchActionNone
    Which is: 0
  child_render_widget_host->input_router()->AllowedTouchAction()
    Which is: 63


Similarly, here's a failure due to non-fast scrolling regions:
SitePerProcessInternalsHitTestBrowserTest.ScrollNestedLocalNonFastScrollableDiv/0../../content/browser/site_per_process_hit_test_browsertest.cc:680: Failure
Expected: (div_scroll_top_start) != (div_scroll_top), actual: 0 vs 0


[1] https://chromium-review.googlesource.com/c/chromium/src/+/1058604
[2] https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux_chromium_rel_ng/98353
Project Member

Comment 6 by bugdroid1@chromium.org, Jun 4 2018

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

commit a677dbcc62d15f21314618dca0027f3da951118d
Author: Philip Rogers <pdr@chromium.org>
Date: Mon Jun 04 17:39:18 2018

Do not downgrade full paint invalidation reasons

If a display item client is invalidated twice, we should not overwrite a
full paint invalidation reason with a non-full paint invalidation
reason. Full paint invalidations imply raster invalidation and we do not
want to lose raster invalidation due to a later non-full invalidation.

This patch required re-implementing https://crrev.com/538135 which
issued a full paint invalidation on graphics layer resizes. Instead of
doing a full paint invalidation on all graphics layer resizes,
composited layer mapping now uses SetNeedsDisplay when the child
clipping mask layer resizes.

This patch also updates frame-set-rotation-hit and frame-set-scaling-hit
which use internal APIs to change the page scale factor to 0.5 which
no longer causes an invalidation on its own. These tests have been
refactored to set the initial page scale factor instead of changing it.

Bug: 836905
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I233d0617bd1b01d19e51695b88f9530615ada0c1
Reviewed-on: https://chromium-review.googlesource.com/1083132
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564140}
[modify] https://crrev.com/a677dbcc62d15f21314618dca0027f3da951118d/third_party/WebKit/LayoutTests/fast/frames/frame-set-rotation-hit.html
[modify] https://crrev.com/a677dbcc62d15f21314618dca0027f3da951118d/third_party/WebKit/LayoutTests/fast/frames/frame-set-scaling-hit.html
[modify] https://crrev.com/a677dbcc62d15f21314618dca0027f3da951118d/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc
[modify] https://crrev.com/a677dbcc62d15f21314618dca0027f3da951118d/third_party/blink/renderer/platform/graphics/graphics_layer.cc
[modify] https://crrev.com/a677dbcc62d15f21314618dca0027f3da951118d/third_party/blink/renderer/platform/graphics/paint/display_item_client.h

Comment 7 by pdr@chromium.org, Jun 11 2018

Blockedon: 851513
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 11 2018

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

commit 58ed87d92176e72d01339fd9e02f1f2fc6a865a2
Author: Philip Rogers <pdr@chromium.org>
Date: Mon Jun 11 21:06:13 2018

Update touch action rects during paint

Touch action rects are currently updated in ScrollingCoordinator (see:
ComputeTouchEventTargetRects) and can result in a full layout tree walk. This
patch introduces a new mode, PaintTouchActionRects, that produces touch action
rects during the existing paint treewalk and then collects them after
compositing to update the cc Layer.

This approach is compatible with SPV2 and uses paint-rect mapping logic instead
of custom logic. This approach also fixes a bug with touch action rects on the
non-scrolling graphics layer.

Description of the changes here:
*) LayoutObject::InsideBlockingTouchEventHandler() has been added which tracks
whether a layout object is inside a blocking touch event handler. This is
updated during the PrePaint tree walk phase.
*) Changes to InsideBlockingTouchEventHandler or effective touch action styles
invalidate paint.
*) In paint, hit test display items are emitted in the background phase if
touch action rects are needed for an object. This ensures a paint chunk exists.
Then, touch action rects are stored on the paint chunk.
*) After paint, ScrollingCoordinator::UpdateTouchActionRects walks the paint
chunks of each graphics layer, collects the touch action rects, maps them into
the space of the graphics layer, and sets the touch action region on the cc layer.

Bug: 836905
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I8d7c6f4ee28642a6fdd09318a5f898214a325e7d
Reviewed-on: https://chromium-review.googlesource.com/1069699
Commit-Queue: Philip Rogers <pdr@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Xida Chen <xidachen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566144}
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/frame/event_handler_registry.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/frame/local_frame_view.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/layout/layout_object.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/layout/layout_object.h
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_test.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/paint/README.md
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/paint/block_painter.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/paint/block_painter.h
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/paint/block_painter_test.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/paint/paint_invalidator.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/paint/paint_phase.h
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/paint/pre_paint_tree_walk.h
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/paint/pre_paint_tree_walk_test.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/core/testing/data/touch-action-blocking-handler.html
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/platform/BUILD.gn
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/platform/graphics/paint/display_item.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/platform/graphics/paint/display_item.h
[add] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/platform/graphics/paint/hit_test_data.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/platform/graphics/paint/hit_test_data.h
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/platform/graphics/paint/paint_chunk.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/platform/graphics/paint/paint_chunk.h
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/platform/graphics/paint/paint_controller.h
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/platform/graphics/paint_invalidation_reason.cc
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h
[modify] https://crrev.com/58ed87d92176e72d01339fd9e02f1f2fc6a865a2/third_party/blink/renderer/platform/runtime_enabled_features.json5

Comment 9 by pdr@chromium.org, Jun 11 2018

Blockedon: 851660

Comment 10 by pdr@chromium.org, Jun 11 2018

Blockedon: 851674
Project Member

Comment 11 by bugdroid1@chromium.org, Jun 12 2018

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

commit e0f0a1925c4512ea9c984089e328522abc01a8ce
Author: Mostyn Bramley-Moore <mostynb@vewd.com>
Date: Tue Jun 12 00:11:08 2018

[jumbo] avoid MockEventListener symbol clash in blink/renderer/core/paint

Followup to https://chromium-review.googlesource.com/c/chromium/src/+/1069699

Bug: 836905
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Id11d4c4a086e5160174eb94eb55948a47f513321
Reviewed-on: https://chromium-review.googlesource.com/1096237
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Cr-Commit-Position: refs/heads/master@{#566217}
[modify] https://crrev.com/e0f0a1925c4512ea9c984089e328522abc01a8ce/third_party/blink/renderer/core/paint/block_painter_test.cc
[modify] https://crrev.com/e0f0a1925c4512ea9c984089e328522abc01a8ce/third_party/blink/renderer/core/paint/pre_paint_tree_walk_test.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Jun 13 2018

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

commit 33acc1ce6e24169847e37200f680dc7e451a12a1
Author: Philip Rogers <pdr@chromium.org>
Date: Wed Jun 13 18:43:19 2018

Update inline touch action rects during paint

This patch extends support for painting touch action rects (behind the
PaintTouchActionRects flag) to inline painting. With this patch, the
inline box's background hit test rect is painted. To reduce duplicate
code, InlineFlowBoxPainter::AdjustedPaintRect was introduced.

Because touch action rects are painted the same way as backgrounds, this
approach correctly handles vertical-rl writing modes.

Bug: 836905,  852013 
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I53296e0fc6e939e220a90fee40e07492a9da113a
Reviewed-on: https://chromium-review.googlesource.com/1097562
Commit-Queue: Philip Rogers <pdr@chromium.org>
Reviewed-by: Xida Chen <xidachen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566932}
[modify] https://crrev.com/33acc1ce6e24169847e37200f680dc7e451a12a1/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_test.cc
[modify] https://crrev.com/33acc1ce6e24169847e37200f680dc7e451a12a1/third_party/blink/renderer/core/paint/inline_flow_box_painter.cc
[modify] https://crrev.com/33acc1ce6e24169847e37200f680dc7e451a12a1/third_party/blink/renderer/core/paint/inline_flow_box_painter.h
[add] https://crrev.com/33acc1ce6e24169847e37200f680dc7e451a12a1/third_party/blink/renderer/core/testing/data/touch-action-on-inline.html
[add] https://crrev.com/33acc1ce6e24169847e37200f680dc7e451a12a1/third_party/blink/renderer/core/testing/data/touch-action-with-vertical-rl-writing-mode.html

Comment 13 by pdr@chromium.org, Jun 18 2018

Blockedon: 853824

Comment 14 by pdr@chromium.org, Jun 18 2018

Blockedon: 853912
Blockedon: 864567
Summary: Implement touch action regions, non-fast scrollable regions, main thread scrolling reasons independent of compositing decisions (was: Implement touch action regions, non-fast scrollable regions, main thread scrolling reasons in blink property trees)
Adjusting the title a bit. The goal of PaintTouchActionRects is really to make ScrollingCoordinator work independently of compositing decisions. Today (pre-PaintTouchActionRects), ScrollingCoordinator sets data on GraphicsLayers which depend on compositing. We want to make ScrollingCoordinator work independently of compositing because in SPV2, we do not know compositing until after ScrollingCoordinator's work is done. PaintTouchActionRects is the project to move touch action regions and non-fast scrollable regions to paint.
Summary: (PaintTouchActionRects ) Implement touch action regions, non-fast scrollable regions, main thread scrolling reasons independent of compositing decisions (was: Implement touch action regions, non-fast scrollable regions, main thread scrolling reasons independent of compositing decisions)
Blockedon: 881890
Blockedon: 881894
Project Member

Comment 20 by bugdroid1@chromium.org, Sep 21

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

commit 45013dfcc8f928d8e95c94378393fa06272df868
Author: Xida Chen <xidachen@chromium.org>
Date: Fri Sep 21 18:05:42 2018

Promote PaintTouchActionRects to stable

This change enables PaintTouchActionRects by default. This is a
new implementation of how the blink->cc logic works for the css
touch-action feature. The big idea behind PaintTouchActionRects is to
compute touch-action rects during paint, in paint order, as part of the
background paint phase.

With this change we expect better performance (primarily a drop in
ScrollingCoordinator time: Blink.ScrollingCoordinator.UpdateTime) as
well as observable bug fixes (e.g.,  https://crbug.com/826746 ).

Bug: 836905,  881894 
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I47a26250bad4c9e208b4f9b11e8eea3cf4d182aa
Reviewed-on: https://chromium-review.googlesource.com/1233114
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Xida Chen <xidachen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593255}
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-global-expected.txt
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-many-expected.txt
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-non-composited-scroll-expected.txt
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-non-composited-scroll-overflow-with-handler-expected.txt
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-scroll-expected.txt
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-container-expected.txt
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-expected.txt
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-image-expected.txt
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-root-expected.txt
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-text-expected.txt
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/fullscreen/compositor-touch-hit-rects-fullscreen-video-controls-expected.txt
[add] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/platform/linux/fast/events/touch/compositor-touch-hit-rects-svg-container-expected.txt
[add] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/platform/linux/fast/events/touch/compositor-touch-hit-rects-svg-text-expected.txt
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/compositor-touch-hit-rects-fullscreen-video-controls-expected.txt
[modify] https://crrev.com/45013dfcc8f928d8e95c94378393fa06272df868/third_party/blink/renderer/platform/runtime_enabled_features.json5

Blockedon: 888269
Project Member

Comment 22 by bugdroid1@chromium.org, Sep 24

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

commit c5a7fbb92f549ec56e22541634b613b3177ce2ed
Author: Philip Rogers <pdr@chromium.org>
Date: Mon Sep 24 15:15:31 2018

Revert "Promote PaintTouchActionRects to stable"

This reverts commit 45013dfcc8f928d8e95c94378393fa06272df868.

Reason for revert: Performance regressions on touch_handler_scrolling.html

This patch turned up a few performance regressions, primarily:
tough_scheduling_cases/touch_handler_scrolling.html
(see:  https://crbug.com/888269 ).

Other performance regressions:
https://chromeperf.appspot.com/group_report?rev=593255

Original change's description:
> Promote PaintTouchActionRects to stable
>
> This change enables PaintTouchActionRects by default. This is a
> new implementation of how the blink->cc logic works for the css
> touch-action feature. The big idea behind PaintTouchActionRects is to
> compute touch-action rects during paint, in paint order, as part of the
> background paint phase.
>
> With this change we expect better performance (primarily a drop in
> ScrollingCoordinator time: Blink.ScrollingCoordinator.UpdateTime) as
> well as observable bug fixes (e.g.,  https://crbug.com/826746 ).
>
> Bug: 836905,  881894 
> Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: I47a26250bad4c9e208b4f9b11e8eea3cf4d182aa
> Reviewed-on: https://chromium-review.googlesource.com/1233114
> Reviewed-by: Philip Rogers <pdr@chromium.org>
> Commit-Queue: Xida Chen <xidachen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#593255}

TBR=pdr@chromium.org,xidachen@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 836905,  881894 
Change-Id: I775e60074f4d5bca5a907a1da104f5441212769a
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/1240184
Commit-Queue: Philip Rogers <pdr@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Xida Chen <xidachen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593540}
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-global-expected.txt
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-many-expected.txt
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-non-composited-scroll-expected.txt
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-non-composited-scroll-overflow-with-handler-expected.txt
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-scroll-expected.txt
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-container-expected.txt
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-expected.txt
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-image-expected.txt
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-root-expected.txt
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-text-expected.txt
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/fullscreen/compositor-touch-hit-rects-fullscreen-video-controls-expected.txt
[delete] https://crrev.com/8f3cb30f77b4f4156a11e6ca3ab2ab3e7562edc2/third_party/WebKit/LayoutTests/platform/linux/fast/events/touch/compositor-touch-hit-rects-svg-container-expected.txt
[delete] https://crrev.com/8f3cb30f77b4f4156a11e6ca3ab2ab3e7562edc2/third_party/WebKit/LayoutTests/platform/linux/fast/events/touch/compositor-touch-hit-rects-svg-text-expected.txt
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/compositor-touch-hit-rects-fullscreen-video-controls-expected.txt
[modify] https://crrev.com/c5a7fbb92f549ec56e22541634b613b3177ce2ed/third_party/blink/renderer/platform/runtime_enabled_features.json5

Blockedon: 897186
Project Member

Comment 24 by bugdroid1@chromium.org, Nov 6

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

commit 564c80e84a5c6ec370e85ce1890446da108687c4
Author: Philip Rogers <pdr@chromium.org>
Date: Tue Nov 06 16:37:45 2018

Promote PaintTouchActionRects to stable

This change enables PaintTouchActionRects by default. This is a
new implementation of how the blink->cc logic works for the css
touch-action feature. The big idea behind PaintTouchActionRects is to
compute touch-action rects during paint, in paint order, as part of the
background paint phase.

With this change we expect better performance (primarily a drop in
ScrollingCoordinator time: Blink.ScrollingCoordinator.UpdateTime) as
well as observable bug fixes (e.g.,  https://crbug.com/826746 ).

This patch has several small parts:
1) runtime_enabled_features.json5 makes PaintTouchActionRects as stable.
2) The paint-touchaction-rects expectations have been made the default.
3) The paint-touchaction-rects virtual test suite has been removed.
4) 6 tests have been marked as passing (fixed with this feature).

Bug: 836905
Change-Id: I2bc12b335e8762eafde882bc475982df7e74a7d1
Reviewed-on: https://chromium-review.googlesource.com/c/1313051
Reviewed-by: Xida Chen <xidachen@chromium.org>
Reviewed-by: Xianda Sun <sunxd@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605710}
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/VirtualTestSuites
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-global-expected.txt
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-many-expected.txt
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-non-composited-scroll-expected.txt
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-non-composited-scroll-overflow-with-handler-expected.txt
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-scroll-expected.txt
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-container-expected.txt
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-expected.txt
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-image-expected.txt
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/fast/events/touch/compositor-touch-hit-rects-svg-text-expected.txt
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/fullscreen/compositor-touch-hit-rects-fullscreen-video-controls-expected.txt
[add] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/platform/linux/fast/events/touch/compositor-touch-hit-rects-svg-container-expected.txt
[add] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/platform/linux/fast/events/touch/compositor-touch-hit-rects-svg-text-expected.txt
[delete] https://crrev.com/72a5a899cbd4fc3a035cfb927a497b1e2db68ba7/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/compositor-touch-hit-rects-fullscreen-video-controls-expected.txt
[add] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/platform/linux/virtual/mouseevent_fractional/fast/events/touch/compositor-touch-hit-rects-svg-container-expected.txt
[add] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/platform/linux/virtual/mouseevent_fractional/fast/events/touch/compositor-touch-hit-rects-svg-text-expected.txt
[add] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/platform/linux/virtual/scroll_customization/fast/events/touch/compositor-touch-hit-rects-svg-container-expected.txt
[add] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/platform/linux/virtual/scroll_customization/fast/events/touch/compositor-touch-hit-rects-svg-text-expected.txt
[add] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/platform/linux/virtual/user-activation-v2/fast/events/touch/compositor-touch-hit-rects-svg-container-expected.txt
[add] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/platform/linux/virtual/user-activation-v2/fast/events/touch/compositor-touch-hit-rects-svg-text-expected.txt
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/virtual/android/fullscreen/compositor-touch-hit-rects-fullscreen-video-controls-expected.txt
[rename] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/virtual/mouseevent_fractional/fast/events/touch/compositor-touch-hit-rects-svg-container-expected.txt
[rename] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/virtual/mouseevent_fractional/fast/events/touch/compositor-touch-hit-rects-svg-text-expected.txt
[delete] https://crrev.com/72a5a899cbd4fc3a035cfb927a497b1e2db68ba7/third_party/WebKit/LayoutTests/virtual/paint-touchaction-rects/fast/events/touch/README.txt
[delete] https://crrev.com/72a5a899cbd4fc3a035cfb927a497b1e2db68ba7/third_party/WebKit/LayoutTests/virtual/paint-touchaction-rects/fast/events/touch/compositor-touch-hit-rects-global-expected.txt
[delete] https://crrev.com/72a5a899cbd4fc3a035cfb927a497b1e2db68ba7/third_party/WebKit/LayoutTests/virtual/paint-touchaction-rects/fast/events/touch/compositor-touch-hit-rects-many-expected.txt
[delete] https://crrev.com/72a5a899cbd4fc3a035cfb927a497b1e2db68ba7/third_party/WebKit/LayoutTests/virtual/paint-touchaction-rects/fast/events/touch/compositor-touch-hit-rects-non-composited-scroll-expected.txt
[delete] https://crrev.com/72a5a899cbd4fc3a035cfb927a497b1e2db68ba7/third_party/WebKit/LayoutTests/virtual/paint-touchaction-rects/fast/events/touch/compositor-touch-hit-rects-non-composited-scroll-overflow-with-handler-expected.txt
[delete] https://crrev.com/72a5a899cbd4fc3a035cfb927a497b1e2db68ba7/third_party/WebKit/LayoutTests/virtual/paint-touchaction-rects/fast/events/touch/compositor-touch-hit-rects-scroll-expected.txt
[delete] https://crrev.com/72a5a899cbd4fc3a035cfb927a497b1e2db68ba7/third_party/WebKit/LayoutTests/virtual/paint-touchaction-rects/fast/events/touch/compositor-touch-hit-rects-svg-expected.txt
[delete] https://crrev.com/72a5a899cbd4fc3a035cfb927a497b1e2db68ba7/third_party/WebKit/LayoutTests/virtual/paint-touchaction-rects/fast/events/touch/compositor-touch-hit-rects-svg-image-expected.txt
[delete] https://crrev.com/72a5a899cbd4fc3a035cfb927a497b1e2db68ba7/third_party/WebKit/LayoutTests/virtual/paint-touchaction-rects/fast/events/touch/compositor-touch-hit-rects-svg-root-expected.txt
[copy] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/virtual/scroll_customization/fast/events/touch/compositor-touch-hit-rects-svg-container-expected.txt
[copy] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/virtual/scroll_customization/fast/events/touch/compositor-touch-hit-rects-svg-text-expected.txt
[copy] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/virtual/user-activation-v2/fast/events/touch/compositor-touch-hit-rects-svg-container-expected.txt
[copy] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/WebKit/LayoutTests/virtual/user-activation-v2/fast/events/touch/compositor-touch-hit-rects-svg-text-expected.txt
[modify] https://crrev.com/564c80e84a5c6ec370e85ce1890446da108687c4/third_party/blink/renderer/platform/runtime_enabled_features.json5

Cc: wangxianzhu@chromium.org
 Issue 674655  has been merged into this issue.

Sign in to add a comment