Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(192)

Issue 2676923002: End-to-end prototype of compositor scrolling with slimming paint v2 (Closed)

Created:
3 years, 10 months ago by pdr.
Modified:
3 years, 10 months ago
Reviewers:
ajuma, wkorman
CC:
ajuma+watch_chromium.org, blink-layers+watch_chromium.org, blink-reviews, blink-reviews-api_chromium.org, blink-reviews-paint_chromium.org, blink-reviews-platform-graphics_chromium.org, Rik, cc-bugs_chromium.org, chromium-reviews, danakj+watch_chromium.org, dglazkov+blink, dshwang, drott+blinkwatch_chromium.org, krit, f(malita), jbauman+watch_chromium.org, jbroman, Justin Novosad, kalyank, kinuko+watch, pdr+graphicswatchlist_chromium.org, piman+watch_chromium.org, rwlbuis, Stephen Chennney, tfarina, Ian Vollick
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

End-to-end prototype of compositor scrolling with slimming paint v2 This is an end-to-end prototype of compositor scrolling with slimming paint v2. This patch has two large changes (which can be split up): 1) cc->blink: scroll offset callbacks now go straight to the associated ScrollableArea, bypassing GraphicsLayers which are not used in SPV2. This is done by moving didScroll (called by Layer::SetScrollOffsetFromImplSide) from GraphicsLayer to ScrollableArea. Instead of having the GraphicsLayer callback lookup the new scroll offset and pass it to ScrollableArea, the scroll offset is now passed as a parameter in the callback. This approach lets us share the cc->blink logic between SPV1 and SPV2, as well as avoiding looking up the ScrollableArea from the cc::scroll_node's compositor element id. 2) blink->cc: PaintArtifactCompositor now sets both the scroll tree's scroll offset and the cc scroll_node's owning_layer_id (temporarily, until cc's scroll node is refactored to not need it). The SPV2 didScroll callback (linking Blink's ScrollableArea to cc's Layer) is also set through PaintArtifactCompositor::update, though there may be a cleaner place for setting this compositor-related information which will also include touch event regions. BUG=667946 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Patch Set 1 #

Patch Set 2 : Fix cc_unittests compile #

Patch Set 3 : Use correct ScrollableArea in CompositorScrollIsUserScrollLongPage #

Patch Set 4 : Add SPV2 test of didScroll callback #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+144 lines, -65 lines) Patch
M cc/blink/web_layer_impl.cc View 1 chunk +2 lines, -1 line 0 comments Download
M cc/layers/layer.h View 2 chunks +3 lines, -2 lines 0 comments Download
M cc/layers/layer.cc View 1 1 chunk +2 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host_unittest_scroll.cc View 1 8 chunks +9 lines, -9 lines 2 comments Download
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 chunk +23 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/GraphicsLayer.h View 3 chunks +1 line, -7 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp View 1 chunk +3 lines, -12 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/GraphicsLayerTest.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.h View 3 chunks +7 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp View 1 4 chunks +15 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp View 1 chunk +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PropertyTreeManager.h View 2 chunks +6 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PropertyTreeManager.cpp View 2 chunks +26 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/platform/scroll/ScrollableArea.h View 3 chunks +6 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp View 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/web/tests/WebFrameTest.cpp View 1 2 3 5 chunks +20 lines, -5 lines 0 comments Download
M third_party/WebKit/public/platform/WebLayerScrollClient.h View 1 chunk +1 line, -1 line 0 comments Download
M ui/compositor/layer.h View 1 chunk +3 lines, -1 line 0 comments Download
M ui/compositor/layer.cc View 1 chunk +3 lines, -2 lines 0 comments Download
M ui/views/controls/scroll_view.h View 1 chunk +1 line, -1 line 0 comments Download
M ui/views/controls/scroll_view.cc View 2 chunks +2 lines, -2 lines 0 comments Download

Messages

Total messages: 16 (12 generated)
pdr.
3 years, 10 months ago (2017-02-06 19:36:09 UTC) #13
ajuma
This looks great! Splitting into two changes sounds like a good idea. When you do ...
3 years, 10 months ago (2017-02-06 21:28:52 UTC) #14
pdr.
https://codereview.chromium.org/2676923002/diff/60001/cc/trees/layer_tree_host_unittest_scroll.cc File cc/trees/layer_tree_host_unittest_scroll.cc (right): https://codereview.chromium.org/2676923002/diff/60001/cc/trees/layer_tree_host_unittest_scroll.cc#newcode633 cc/trees/layer_tree_host_unittest_scroll.cc:633: void DidScroll(const gfx::ScrollOffset&) { I talked offline with both ...
3 years, 10 months ago (2017-02-07 22:14:34 UTC) #15
pdr.
3 years, 10 months ago (2017-02-18 18:31:43 UTC) #16
Closing as this as been landed with:

Remove GraphicsLayer::didScroll and directly call ScrollableArea::didScroll
https://codereview.chromium.org/2680953002

Set layer scroll data from PaintArtifactCompositor
https://codereview.chromium.org/2698473006

Powered by Google App Engine
This is Rietveld 408576698