New issue
Advanced search Search tips

Issue 644514 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Yesterday
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug


Sign in to add a comment

[SPV2] Add a scroll paint property tree

Project Member Reported by pdr@chromium.org, Sep 6 2016

Issue description

In slimming paint v2 (SPV2) we will need a blink-side auxiliary tree for scrolling data to support compositor-thread scrolling. This tree should match up with the existing cc scroll tree.
 

Comment 1 Deleted

Project Member

Comment 2 by bugdroid1@chromium.org, Sep 7 2016

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

commit 227d9305559686377e566989ae24b8656acad15e
Author: pdr <pdr@chromium.org>
Date: Wed Sep 07 22:01:04 2016

Add comments describing the cc ScrollNode members

This patch adds some comments to describe the cc ScrollNode members.

BUG= 644514 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

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

[modify] https://crrev.com/227d9305559686377e566989ae24b8656acad15e/cc/trees/scroll_node.h

Project Member

Comment 3 by bugdroid1@chromium.org, Sep 11 2016

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

commit d1a5fe1b572bf7b446d45558823ac7a8d759628c
Author: pdr <pdr@chromium.org>
Date: Sun Sep 11 00:12:48 2016

[SPV2] Implement the blink-side scroll property tree

Blink's scroll tree stores auxiliary scrolling information for
compositor-thread scrolling. This includes the hierarchy of scrolling
(which areas scroll relative to which other areas), whether an area
is user-scrollable in the x or y axes, and the extent that an area
can be scrolled. This patch is an initial implementation of the
blink scroll paint property tree with documentation, a followup will
plumb this to the compositor.

A proof-of-concept for the end-to-end design is available at:
https://codereview.chromium.org/2299533002

BUG= 644514 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

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

[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/core/paint/BlockPainter.cpp
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/core/paint/FramePainter.cpp
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/core/paint/PaintPropertyTreePrinter.cpp
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/core/paint/PaintPropertyTreePrinter.h
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/core/paint/test_data/fixed-position.html
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/core/paint/test_data/position-and-scroll.html
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/platform/BUILD.gn
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/platform/graphics/paint/ClipPaintPropertyNode.h
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/platform/graphics/paint/EffectPaintPropertyNode.h
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/platform/graphics/paint/PaintChunkProperties.h
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.h
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/platform/graphics/paint/README.md
[add] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/platform/graphics/paint/ScrollPaintPropertyNode.h
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/platform/testing/PaintPrinters.cpp
[modify] https://crrev.com/d1a5fe1b572bf7b446d45558823ac7a8d759628c/third_party/WebKit/Source/platform/testing/PaintPrinters.h

Project Member

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

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

commit f6a421a86c049a12317f866b0577354fd02c69f9
Author: pdr <pdr@chromium.org>
Date: Wed Sep 14 16:46:44 2016

Add scroll_offset and scroll_snap to transform_node's traced value

BUG= 644514 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

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

[modify] https://crrev.com/f6a421a86c049a12317f866b0577354fd02c69f9/cc/trees/transform_node.cc

Project Member

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

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

commit a82582195998dc7862dbdac6209965b7d51840da
Author: pdr <pdr@chromium.org>
Date: Wed Sep 14 20:10:46 2016

Construct cc scroll tree from blink [spv2]

This patch updates PaintArtifactCompositor to create cc's scroll tree
from blink's scroll tree.

PropertyTreeManager::updateScrollOffset is an interesting part of this
patch and is where we resolve the differences between cc's trees and
blink's trees. For example, cc's transform node currently stores
scroll offset in a separate vector, and cc's scroll tree maintains a
separate map of scroll offsets for handling synchronization.

A followup patch will add main thread scrolling reasons. Until then,
a couple simple tests have been added verifying the cc scroll tree
structure. The existing layout tests currently exercise the new scroll
tree code end-to-end.

CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
BUG= 644514 

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

[modify] https://crrev.com/a82582195998dc7862dbdac6209965b7d51840da/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp
[modify] https://crrev.com/a82582195998dc7862dbdac6209965b7d51840da/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp
[modify] https://crrev.com/a82582195998dc7862dbdac6209965b7d51840da/third_party/WebKit/Source/platform/testing/TestPaintArtifact.cpp
[modify] https://crrev.com/a82582195998dc7862dbdac6209965b7d51840da/third_party/WebKit/Source/platform/testing/TestPaintArtifact.h

Project Member

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

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

commit 6da0810c8c2362fc73d911750400ccd5c33cd6ca
Author: pdr <pdr@chromium.org>
Date: Tue Sep 20 00:50:55 2016

Add background attachment fixed main thread scrolling reason [spv2]

This patch adds main thread scrolling reasons to blink's scroll nodes
and plumbs them to the compositor.

The approach taken in this patch is to match the semantics of cc's
scroll_tree so that main thread scrolling reasons are propagated up
the scroll tree.

Incremental updates are not yet possible but TODOs and tests have been
updated to ensure the main thread scroll reasons are recomputed.

CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
BUG= 644514 

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

[modify] https://crrev.com/6da0810c8c2362fc73d911750400ccd5c33cd6ca/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/6da0810c8c2362fc73d911750400ccd5c33cd6ca/third_party/WebKit/Source/core/layout/LayoutObject.h
[modify] https://crrev.com/6da0810c8c2362fc73d911750400ccd5c33cd6ca/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
[modify] https://crrev.com/6da0810c8c2362fc73d911750400ccd5c33cd6ca/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h
[modify] https://crrev.com/6da0810c8c2362fc73d911750400ccd5c33cd6ca/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp
[modify] https://crrev.com/6da0810c8c2362fc73d911750400ccd5c33cd6ca/third_party/WebKit/Source/core/paint/PaintPropertyTreePrinter.cpp
[modify] https://crrev.com/6da0810c8c2362fc73d911750400ccd5c33cd6ca/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp
[modify] https://crrev.com/6da0810c8c2362fc73d911750400ccd5c33cd6ca/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp
[modify] https://crrev.com/6da0810c8c2362fc73d911750400ccd5c33cd6ca/third_party/WebKit/Source/platform/graphics/paint/ScrollPaintPropertyNode.h

Comment 7 by pdr@chromium.org, Sep 20 2016

Blockedon: 648487
Project Member

Comment 8 by bugdroid1@chromium.org, Sep 20 2016

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

commit d87b686a8b9e559c1f39d8f5cf445c079773e288
Author: pdr <pdr@chromium.org>
Date: Tue Sep 20 19:47:50 2016

Add "threaded scrolling disabled" main thread scrolling reason [spv2]

This patch builds on [1] and adds a main thread scrolling reason for
when threaded scrolling is disabled. This setting is likely temporary
(see: https://crbug.com/410974#c45) but has been implemented for
completeness.

[1] https://crrev.com/6da0810c8c2362fc73d911750400ccd5c33cd6ca

BUG= 644514 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

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

[modify] https://crrev.com/d87b686a8b9e559c1f39d8f5cf445c079773e288/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
[modify] https://crrev.com/d87b686a8b9e559c1f39d8f5cf445c079773e288/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp

Project Member

Comment 9 by bugdroid1@chromium.org, Sep 21 2016

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

commit f89757bc09255f07e6d1f2f3738ccff29e3ba374
Author: pdr <pdr@chromium.org>
Date: Wed Sep 21 02:06:01 2016

Add position sticky main thread scrolling reason [spv2]

This patch builds on [1] and adds position: sticky main thread scrolling
reasons to the blink and cc scroll property trees. Position: sticky
disables threaded scrolling because the compositor is not yet
able to update these.

Incremental updates are not yet possible but TODOs and tests have been
updated to ensure the main thread scroll reasons are recomputed.

[1] https://crrev.com/6da0810c8c2362fc73d911750400ccd5c33cd6ca
BUG= 644514 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

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

[modify] https://crrev.com/f89757bc09255f07e6d1f2f3738ccff29e3ba374/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp
[modify] https://crrev.com/f89757bc09255f07e6d1f2f3738ccff29e3ba374/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/f89757bc09255f07e6d1f2f3738ccff29e3ba374/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
[modify] https://crrev.com/f89757bc09255f07e6d1f2f3738ccff29e3ba374/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp

Comment 10 by pdr@chromium.org, Sep 21 2016

Blockedon: 649096

Comment 11 by pdr@chromium.org, Sep 21 2016

Blockedon: 649112

Comment 12 by pdr@chromium.org, Sep 21 2016

Blockedon: 649126
Project Member

Comment 13 by bugdroid1@chromium.org, Sep 22 2016

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

commit 0a17da78678ef631de7583ced1be9c749fcdfbda
Author: pdr <pdr@chromium.org>
Date: Thu Sep 22 20:45:43 2016

Remove cc's MainThreadScrollingReason::kEventHandlers

This patch removes MainThreadScrollingReason::kEventHandlers which was
only used in tests.

BUG= 644514 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

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

[modify] https://crrev.com/0a17da78678ef631de7583ced1be9c749fcdfbda/cc/input/main_thread_scrolling_reason.h
[modify] https://crrev.com/0a17da78678ef631de7583ced1be9c749fcdfbda/cc/layers/layer_unittest.cc
[modify] https://crrev.com/0a17da78678ef631de7583ced1be9c749fcdfbda/cc/trees/layer_tree_host_unittest_scroll.cc
[modify] https://crrev.com/0a17da78678ef631de7583ced1be9c749fcdfbda/ui/events/blink/input_handler_proxy_unittest.cc

Comment 14 by pdr@chromium.org, May 5 2017

Blockedon: 718971
Fixed right?

Comment 16 by pdr@chromium.org, Yesterday (36 hours ago)

Status: Fixed (was: Started)
Fixed as part of BlinkGenPropertyTrees

Sign in to add a comment