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

Issue 1825193002: Make GraphicsLayer the DisplayItemClient for scrollbars composited via PaintLayerCompositor. (Closed)

Created:
4 years, 9 months ago by wkorman
Modified:
4 years, 9 months ago
Reviewers:
chrishtr
CC:
blink-reviews, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, blink-reviews-platform-graphics_chromium.org, Rik, chromium-reviews, danakj+watch_chromium.org, dshwang, drott+blinkwatch_chromium.org, krit, eae+blinkwatch, f(malita), jbroman, jchaffraix+rendering, Justin Novosad, kinuko+watch, leviw+renderwatch, pdr+graphicswatchlist_chromium.org, pdr+renderingwatchlist_chromium.org, rwlbuis, Stephen Chennney, slimming-paint-reviews_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Make GraphicsLayer the DisplayItemClient for scrollbars composited via PaintLayerCompositor. Currently, the DisplayItemClient is LayoutScrollbarPart. This has two problems: the mapping between the LayoutScrollbarPart and its backing is hard to reverse-engineer given the way the scrollbar code is set up (LayoutScrollbarPart vs Scrollbar vs ScrollableArea), and the fact that LayoutScrollbarPart can be painted in both non-composited and composited modes. This distinction is important for computation of correct visual rects. This can be cleaned up by replaying the painted scrollbar content with the GraphicsLayer backing as the DisplayItemClient, which has the correct visualRect() (i.e. bounds of GraphicsLayer). BUG=529938 Committed: https://crrev.com/8460ef8fc6125185abc1486eb61b0ca7fc9298ad Cr-Commit-Position: refs/heads/master@{#382778}

Patch Set 1 #

Total comments: 5

Patch Set 2 : Code review feedback. #

Patch Set 3 : Fix context for scroll corner. #

Patch Set 4 : Sync to head. #

Patch Set 5 : Disable caching. #

Patch Set 6 : Use cached drawings when possible. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+43 lines, -11 lines) Patch
M third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.h View 1 2 chunks +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp View 1 2 3 4 5 4 chunks +34 lines, -11 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidationCapableScrollableArea.cpp View 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/DisplayItem.h View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/DisplayItem.cpp View 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 40 (21 generated)
wkorman
4 years, 9 months ago (2016-03-22 18:57:28 UTC) #2
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1825193002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1825193002/1
4 years, 9 months ago (2016-03-22 18:58:19 UTC) #4
chrishtr
Better description: Make GraphicsLayer the DisplayItemClient for scrollbars which are composited through PaintLayerCompositor. Currently, the ...
4 years, 9 months ago (2016-03-22 19:04:02 UTC) #5
wkorman
Updated description.
4 years, 9 months ago (2016-03-22 19:45:28 UTC) #9
chrishtr
https://codereview.chromium.org/1825193002/diff/1/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp File third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp (right): https://codereview.chromium.org/1825193002/diff/1/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp#newcode802 third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp:802: SkPictureBuilder pictureBuilder(layerBounds, nullptr, &context); Factor the SkPictureBuilder into the ...
4 years, 9 months ago (2016-03-22 19:45:47 UTC) #10
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-22 20:23:47 UTC) #12
wkorman
https://codereview.chromium.org/1825193002/diff/1/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp File third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp (right): https://codereview.chromium.org/1825193002/diff/1/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp#newcode802 third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp:802: SkPictureBuilder pictureBuilder(layerBounds, nullptr, &context); On 2016/03/22 at 19:45:47, chrishtr ...
4 years, 9 months ago (2016-03-22 20:45:56 UTC) #13
chrishtr
lgtm
4 years, 9 months ago (2016-03-22 21:07:29 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1825193002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1825193002/20001
4 years, 9 months ago (2016-03-22 21:09:15 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1825193002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1825193002/40001
4 years, 9 months ago (2016-03-22 21:16:14 UTC) #20
commit-bot: I haz the power
Try jobs failed on following builders: linux_blink_oilpan_rel on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_blink_oilpan_rel/builds/20310)
4 years, 9 months ago (2016-03-22 21:40:26 UTC) #22
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1825193002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1825193002/60001
4 years, 9 months ago (2016-03-22 22:40:35 UTC) #25
commit-bot: I haz the power
Try jobs failed on following builders: linux_blink_oilpan_rel on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_blink_oilpan_rel/builds/20354)
4 years, 9 months ago (2016-03-22 23:08:36 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1825193002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1825193002/80001
4 years, 9 months ago (2016-03-22 23:59:15 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1825193002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1825193002/80001
4 years, 9 months ago (2016-03-23 00:17:28 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1825193002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1825193002/100001
4 years, 9 months ago (2016-03-23 00:39:20 UTC) #36
commit-bot: I haz the power
Committed patchset #6 (id:100001)
4 years, 9 months ago (2016-03-23 03:13:58 UTC) #37
commit-bot: I haz the power
Patchset 6 (id:??) landed as https://crrev.com/8460ef8fc6125185abc1486eb61b0ca7fc9298ad Cr-Commit-Position: refs/heads/master@{#382778}
4 years, 9 months ago (2016-03-23 03:14:56 UTC) #39
nednguyen
4 years, 9 months ago (2016-03-26 04:13:51 UTC) #40
Message was sent while issue was closed.
A revert of this CL (patchset #6 id:100001) has been created in
https://codereview.chromium.org/1839533002/ by nednguyen@google.com.

The reason for reverting is: Speculative revert: this may cause crash for
rasterize_and_record_micro benchmark.

BUG=597391.

Powered by Google App Engine
This is Rietveld 408576698