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

Issue 949303002: Fix invalidation during painting of scrollbars (Closed)

Created:
5 years, 10 months ago by Xianzhu
Modified:
5 years, 9 months ago
CC:
blink-layers+watch_chromium.org, blink-reviews, blink-reviews-paint_chromium.org, blink-reviews-rendering, Dominik Röttsches, dshwang, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, slimming-paint-reviews_chromium.org, zoltan1
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Fix invalidation during painting of scrollbars Previously LayerScrollbarArea::positionOverflowControls() is called from ScrollableAreaPainter::paintOverflowControls() just to apply the paintOffset. This is incorrect because painting should not affect layout and paintOffset should be applied to painting only. - Remove the offsetFromRoot parameter of positionOverflowControls(); - Apply paintOffset to GraphicsContext only; - Fix initial positionOverflowControls() when overflow:scroll but no overflow; - Fix under-invalidation when scrollbar position/size changes. BUG=457415, 456028 TEST=existing tests Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=191027

Patch Set 1 #

Patch Set 2 : Invalidate #

Patch Set 3 : TestExpectations #

Total comments: 8

Patch Set 4 : #

Patch Set 5 : Workaround the 1-pixel issue #

Patch Set 6 : NeedsRebaseline #

Unified diffs Side-by-side diffs Delta from patch set Stats (+73 lines, -45 lines) Patch
M LayoutTests/TestExpectations View 1 2 3 4 5 1 chunk +4 lines, -0 lines 0 comments Download
M LayoutTests/fast/repaint/layout-state-only-positioned-expected.txt View 1 2 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/platform/linux/compositing/squashing/iframe-inside-squashed-layer-expected.txt View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M LayoutTests/svg/as-object/embedded-svg-size-changes-no-layout-triggers-expected.txt View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M LayoutTests/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M LayoutTests/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/layout/LayerScrollableArea.h View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M Source/core/layout/LayerScrollableArea.cpp View 1 2 3 4 5 3 chunks +8 lines, -16 lines 0 comments Download
M Source/core/layout/LayoutBox.h View 1 2 3 4 5 1 chunk +6 lines, -0 lines 0 comments Download
M Source/core/layout/LayoutBox.cpp View 1 2 3 4 5 2 chunks +14 lines, -1 line 0 comments Download
M Source/core/layout/LayoutFlexibleBox.cpp View 1 2 3 4 5 1 chunk +2 lines, -2 lines 0 comments Download
M Source/core/layout/compositing/CompositedLayerMapping.h View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M Source/core/layout/compositing/CompositedLayerMapping.cpp View 1 2 3 4 4 chunks +5 lines, -7 lines 0 comments Download
M Source/core/layout/compositing/GraphicsLayerUpdater.cpp View 1 chunk +1 line, -1 line 0 comments Download
M Source/core/paint/ScrollableAreaPainter.cpp View 1 2 3 4 5 4 chunks +11 lines, -14 lines 0 comments Download
M Source/platform/scroll/Scrollbar.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/platform/scroll/Scrollbar.cpp View 1 2 3 1 chunk +10 lines, -0 lines 0 comments Download

Messages

Total messages: 25 (5 generated)
Xianzhu
5 years, 10 months ago (2015-02-24 21:41:48 UTC) #2
chrishtr
https://codereview.chromium.org/949303002/diff/40001/Source/platform/scroll/Scrollbar.cpp File Source/platform/scroll/Scrollbar.cpp (right): https://codereview.chromium.org/949303002/diff/40001/Source/platform/scroll/Scrollbar.cpp#newcode111 Source/platform/scroll/Scrollbar.cpp:111: invalidate(); Is this because widgets don't obey the standard ...
5 years, 10 months ago (2015-02-24 22:38:42 UTC) #4
Xianzhu
https://codereview.chromium.org/949303002/diff/40001/Source/platform/scroll/Scrollbar.cpp File Source/platform/scroll/Scrollbar.cpp (right): https://codereview.chromium.org/949303002/diff/40001/Source/platform/scroll/Scrollbar.cpp#newcode111 Source/platform/scroll/Scrollbar.cpp:111: invalidate(); On 2015/02/24 22:38:42, chrishtr wrote: > Is this ...
5 years, 10 months ago (2015-02-24 23:01:57 UTC) #5
chrishtr
On 2015/02/24 at 23:01:57, wangxianzhu wrote: > https://codereview.chromium.org/949303002/diff/40001/Source/platform/scroll/Scrollbar.cpp > File Source/platform/scroll/Scrollbar.cpp (right): > > https://codereview.chromium.org/949303002/diff/40001/Source/platform/scroll/Scrollbar.cpp#newcode111 ...
5 years, 10 months ago (2015-02-24 23:13:25 UTC) #6
chrishtr
5 years, 10 months ago (2015-02-24 23:13:33 UTC) #7
chrishtr
5 years, 10 months ago (2015-02-24 23:13:34 UTC) #8
Xianzhu
On 2015/02/24 23:13:25, chrishtr wrote: > On 2015/02/24 at 23:01:57, wangxianzhu wrote: > > > ...
5 years, 10 months ago (2015-02-24 23:17:42 UTC) #9
Julien - ping for review
I have one question but the change looks good AFAICT. I also think that we ...
5 years, 10 months ago (2015-02-25 01:43:36 UTC) #10
Xianzhu
https://codereview.chromium.org/949303002/diff/40001/Source/core/layout/LayerScrollableArea.cpp File Source/core/layout/LayerScrollableArea.cpp (right): https://codereview.chromium.org/949303002/diff/40001/Source/core/layout/LayerScrollableArea.cpp#newcode710 Source/core/layout/LayerScrollableArea.cpp:710: positionOverflowControls(); On 2015/02/25 01:43:36, Julien Chaffraix - PST wrote: ...
5 years, 10 months ago (2015-02-25 01:57:09 UTC) #11
chrishtr
lgtm
5 years, 10 months ago (2015-02-25 18:02:01 UTC) #12
Xianzhu
Based on trybot results, the CL caused 1-pixel size mismatches of some scrollbars on Mac. ...
5 years, 10 months ago (2015-02-25 22:57:06 UTC) #13
Xianzhu
Found that the 1-pixel mismatch is caused by that the size of RenderBox::pixelSnappedBorderBox() may change ...
5 years, 10 months ago (2015-02-26 19:39:53 UTC) #14
Xianzhu
I think eventually we should disallow any pixel snapping during layout (especially any layout depending ...
5 years, 10 months ago (2015-02-26 20:32:40 UTC) #15
chrishtr
+levi for feedback on pixel snapping issues.
5 years, 10 months ago (2015-02-26 20:35:46 UTC) #17
Julien - ping for review
On 2015/02/26 at 19:39:53, wangxianzhu wrote: > Found that the 1-pixel mismatch is caused by ...
5 years, 10 months ago (2015-02-26 21:48:53 UTC) #18
Xianzhu
On 2015/02/26 21:48:53, Julien Chaffraix - PST wrote: > On 2015/02/26 at 19:39:53, wangxianzhu wrote: ...
5 years, 10 months ago (2015-02-26 21:56:24 UTC) #19
Xianzhu
Any other comments on the latest change to workaround pixel snapping?
5 years, 9 months ago (2015-02-27 19:00:10 UTC) #20
chrishtr
lgtm
5 years, 9 months ago (2015-02-27 19:20:33 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/949303002/100001
5 years, 9 months ago (2015-02-27 19:26:55 UTC) #24
commit-bot: I haz the power
5 years, 9 months ago (2015-02-27 20:56:06 UTC) #25
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as
https://src.chromium.org/viewvc/blink?view=rev&revision=191027

Powered by Google App Engine
This is Rietveld 408576698