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

Issue 2068723002: Paint local attachment backgrounds into composited scrolling contents layer (Closed)

Created:
4 years, 6 months ago by flackr
Modified:
4 years, 3 months ago
CC:
blink-reviews, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, blink-reviews-style_chromium.org, bokan, chrishtr, chromium-reviews, dshwang, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, 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

Paint local attachment backgrounds into composited scrolling contents layer This change detects when we can paint the background onto the scrolling contents layer. This will unblock promoting scrollers with supported backgrounds on low DPI devices as we can now maintain subpixel antialiased text. BUG=381840, 568847 TEST=compositing/overflow/overflow-scroll-with-local-image-background.html, LayoutBoxTest.BackgroundRect, CompositedLayerMappingTest.ShouldPaintBackgroundOntoScrollingContentsLayer CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/05ee9971df08ffd2e57af7e6258a2b3efab9b539 Cr-Commit-Position: refs/heads/master@{#414795}

Patch Set 1 #

Patch Set 2 : WIP - Don't clip extra border region on foreground. #

Patch Set 3 : Not opaque when blending. #

Patch Set 4 : Merge with master #

Patch Set 5 : Improve opaque layer detection and fix non-composited border painting bug in layout tests. #

Total comments: 8

Patch Set 6 : Review comments #

Patch Set 7 : Merge with landed patch and update local condition. #

Patch Set 8 : Add/update tests and simplify added code. #

Total comments: 28

Patch Set 9 : Address review comments. #

Total comments: 5

Patch Set 10 : Address comments. #

Total comments: 6

Patch Set 11 : Merge allLayersAreLocal and ComputedStyle::hasEntirelyLocalBackground #

Total comments: 2

Patch Set 12 : Use full property names to specify background blend mode. #

Patch Set 13 : Rebaseline tests #

Patch Set 14 : Only consider an image opaque if its guaranteed to fill the clip (repeats with no gaps) #

Patch Set 15 : Merge and fix test expectations. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+220 lines, -65 lines) Patch
M third_party/WebKit/LayoutTests/compositing/layer-creation/overlap-transformed-layer-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/compositing/layer-creation/overlap-transformed-layer-with-transform-body-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +4 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-background.html View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-background-expected.html View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
A + third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-image-background.html View 1 2 3 4 5 6 7 8 3 chunks +4 lines, -7 lines 0 comments Download
A third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-image-background-expected.html View 1 2 3 4 5 6 7 8 1 chunk +24 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/compositing/squashing/squashing-inside-perspective-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/css3/blending/mix-blend-mode-composited-reason-children-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/fast/borders/overflow-hidden-border-radius-force-backing-store-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/background-resize-height-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 9 chunks +9 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/fixed-element-repaint-after-compositing-update-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/invalidate-descendants-when-receiving-paint-layer-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/platform/android/css3/blending/mix-blend-mode-composited-layers-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/fixed-element-repaint-after-compositing-update-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/css3/blending/mix-blend-mode-composited-layers-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/css3/blending/mix-blend-mode-composited-layers-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +3 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 chunks +55 lines, -20 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +55 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +2 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/CompositedLayerMappingTest.cpp View 1 2 3 4 5 6 7 8 2 chunks +20 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/style/ComputedStyle.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/style/ComputedStyle.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +17 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/style/ComputedStyleConstants.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +11 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/style/FillLayer.cpp View 1 2 3 4 5 6 7 2 chunks +1 line, -12 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 61 (22 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2068723002/1
4 years, 6 months ago (2016-06-20 18:21:59 UTC) #2
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: ios-device-gn on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-gn/builds/23611) ios-simulator on ...
4 years, 6 months ago (2016-06-20 18:24:52 UTC) #4
Stephen Chennney
Are you back to working on this? Otherwise I'll start as this is blocking my ...
4 years, 6 months ago (2016-06-21 20:40:45 UTC) #5
flackr
On 2016/06/21 at 20:40:45, schenney wrote: > Are you back to working on this? Otherwise ...
4 years, 6 months ago (2016-06-22 19:48:15 UTC) #6
Stephen Chennney
On 2016/06/22 19:48:15, flackr wrote: > On 2016/06/21 at 20:40:45, schenney wrote: > > Are ...
4 years, 6 months ago (2016-06-22 20:19:30 UTC) #7
Stephen Chennney
Real failures: compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html: The focus outline is not anti-aliased or otherwise incorrectly drawn in the ...
4 years, 6 months ago (2016-06-23 16:04:00 UTC) #8
flackr
I found and fixed the bug with the border painting - turns out it was ...
4 years, 4 months ago (2016-07-27 21:49:14 UTC) #10
Stephen Chennney
Some nits. It seems like a lot of these should be separate changes if they ...
4 years, 4 months ago (2016-07-27 22:33:36 UTC) #11
flackr
On 2016/07/27 at 22:33:36, schenney wrote: > Some nits. It seems like a lot of ...
4 years, 4 months ago (2016-07-28 14:39:20 UTC) #12
Stephen Chennney
On 2016/07/28 14:39:20, flackr wrote: > The recent LayoutTests run looks promising. Have you seen ...
4 years, 4 months ago (2016-07-28 15:31:25 UTC) #13
flackr
On 2016/07/28 at 15:31:25, schenney wrote: > On 2016/07/28 14:39:20, flackr wrote: > > The ...
4 years, 4 months ago (2016-07-29 02:39:17 UTC) #14
flackr
Okay, I've merged this with the landed portion of the code and updated the appropriate ...
4 years, 4 months ago (2016-08-11 17:07:43 UTC) #18
chrishtr
https://codereview.chromium.org/2068723002/diff/140001/third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-background.html File third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-background.html (right): https://codereview.chromium.org/2068723002/diff/140001/third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-background.html#newcode5 third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-background.html:5: // Double rAF to ensure content is painted before ...
4 years, 4 months ago (2016-08-12 17:03:00 UTC) #19
chrishtr
+trchen as additional reviewer since I am about to be on vacation for a week.
4 years, 4 months ago (2016-08-12 23:17:00 UTC) #21
trchen
https://codereview.chromium.org/2068723002/diff/140001/third_party/WebKit/Source/core/layout/LayoutBox.cpp File third_party/WebKit/Source/core/layout/LayoutBox.cpp (left): https://codereview.chromium.org/2068723002/diff/140001/third_party/WebKit/Source/core/layout/LayoutBox.cpp#oldcode714 third_party/WebKit/Source/core/layout/LayoutBox.cpp:714: if (!style()->isOverflowVisible() && style()->backgroundLayers().attachment() == LocalBackgroundAttachment) On 2016/08/12 17:03:00, ...
4 years, 4 months ago (2016-08-13 00:06:42 UTC) #22
trchen
https://codereview.chromium.org/2068723002/diff/140001/third_party/WebKit/Source/core/layout/LayoutBox.cpp File third_party/WebKit/Source/core/layout/LayoutBox.cpp (right): https://codereview.chromium.org/2068723002/diff/140001/third_party/WebKit/Source/core/layout/LayoutBox.cpp#newcode707 third_party/WebKit/Source/core/layout/LayoutBox.cpp:707: LayoutRect LayoutBox::backgroundRect(BackgroundRectOpacity rectOpacity) const I'm worried about the semantic ...
4 years, 4 months ago (2016-08-13 00:14:08 UTC) #23
flackr
https://codereview.chromium.org/2068723002/diff/140001/third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-background.html File third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-background.html (right): https://codereview.chromium.org/2068723002/diff/140001/third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-background.html#newcode5 third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-background.html:5: // Double rAF to ensure content is painted before ...
4 years, 4 months ago (2016-08-16 17:52:51 UTC) #25
flackr
I think this could be split up into painting the local backgrounds and then a ...
4 years, 4 months ago (2016-08-16 18:30:26 UTC) #26
trchen
https://codereview.chromium.org/2068723002/diff/140001/third_party/WebKit/Source/core/layout/LayoutBox.cpp File third_party/WebKit/Source/core/layout/LayoutBox.cpp (right): https://codereview.chromium.org/2068723002/diff/140001/third_party/WebKit/Source/core/layout/LayoutBox.cpp#newcode707 third_party/WebKit/Source/core/layout/LayoutBox.cpp:707: LayoutRect LayoutBox::backgroundRect(BackgroundRectOpacity rectOpacity) const On 2016/08/16 17:52:51, flackr wrote: ...
4 years, 4 months ago (2016-08-17 01:22:55 UTC) #27
trchen
On 2016/08/17 01:22:55, trchen wrote: > https://codereview.chromium.org/2068723002/diff/160001/third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-image-background.html > File > third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-local-image-background.html > (right): > > ...
4 years, 4 months ago (2016-08-17 01:32:52 UTC) #28
flackr
https://codereview.chromium.org/2068723002/diff/140001/third_party/WebKit/Source/core/layout/LayoutBox.cpp File third_party/WebKit/Source/core/layout/LayoutBox.cpp (right): https://codereview.chromium.org/2068723002/diff/140001/third_party/WebKit/Source/core/layout/LayoutBox.cpp#newcode722 third_party/WebKit/Source/core/layout/LayoutBox.cpp:722: } else { On 2016/08/17 at 01:22:55, trchen wrote: ...
4 years, 4 months ago (2016-08-17 18:20:55 UTC) #29
trchen
https://codereview.chromium.org/2068723002/diff/180001/third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp File third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp (right): https://codereview.chromium.org/2068723002/diff/180001/third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp#newcode66 third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp:66: // covering the border box. As I commented earlier, ...
4 years, 4 months ago (2016-08-18 21:24:23 UTC) #30
flackr
https://codereview.chromium.org/2068723002/diff/180001/third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp File third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp (right): https://codereview.chromium.org/2068723002/diff/180001/third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp#newcode66 third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp:66: // covering the border box. On 2016/08/18 at 21:24:22, ...
4 years, 4 months ago (2016-08-19 21:59:56 UTC) #31
trchen
lgtm except one error in LayoutBoxTest #target4. https://codereview.chromium.org/2068723002/diff/180001/third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp File third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp (right): https://codereview.chromium.org/2068723002/diff/180001/third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp#newcode66 third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp:66: // covering ...
4 years, 4 months ago (2016-08-19 22:49:15 UTC) #32
flackr
https://codereview.chromium.org/2068723002/diff/200001/third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp File third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp (right): https://codereview.chromium.org/2068723002/diff/200001/third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp#newcode33 third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp:33: "#target4 { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUg) content-box, green border-box multiply;}" On ...
4 years, 4 months ago (2016-08-22 15:12:39 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2068723002/220001
4 years, 4 months ago (2016-08-22 15:14:23 UTC) #36
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/242964)
4 years, 4 months ago (2016-08-22 15:22:18 UTC) #38
flackr
Chris would you be willing to provide OWNERS review?
4 years, 4 months ago (2016-08-22 15:28:20 UTC) #39
chrishtr
lgtm
4 years, 4 months ago (2016-08-22 20:09:54 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2068723002/240001
4 years, 4 months ago (2016-08-23 13:37:51 UTC) #43
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_asan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_asan_rel_ng/builds/214283)
4 years, 4 months ago (2016-08-23 14:46:34 UTC) #45
flackr
It looks like my new tests have turned up a pre-existing memory leak. I filed ...
4 years, 3 months ago (2016-08-23 21:22:55 UTC) #46
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2068723002/260001
4 years, 3 months ago (2016-08-26 13:01:27 UTC) #49
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/281915)
4 years, 3 months ago (2016-08-26 14:48:50 UTC) #51
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2068723002/280001
4 years, 3 months ago (2016-08-26 14:57:48 UTC) #54
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/281970)
4 years, 3 months ago (2016-08-26 16:26:51 UTC) #56
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2068723002/280001
4 years, 3 months ago (2016-08-26 18:46:20 UTC) #58
commit-bot: I haz the power
Committed patchset #15 (id:280001)
4 years, 3 months ago (2016-08-26 20:26:27 UTC) #59
commit-bot: I haz the power
4 years, 3 months ago (2016-08-26 20:27:54 UTC) #61
Message was sent while issue was closed.
Patchset 15 (id:??) landed as
https://crrev.com/05ee9971df08ffd2e57af7e6258a2b3efab9b539
Cr-Commit-Position: refs/heads/master@{#414795}

Powered by Google App Engine
This is Rietveld 408576698