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

Issue 247713003: Separate repaint and layout requirements of StyleDifference (Step 3) (Closed)

Created:
6 years, 8 months ago by Xianzhu
Modified:
6 years, 7 months ago
CC:
blink-reviews, rwlbuis, krit, bemjb+rendering_chromium.org, dsinclair, zoltan1, eae+blinkwatch, leviw+renderwatch, kouhei+svg_chromium.org, fs, blink-layers+watch_chromium.org, ed+blinkwatch_opera.com, f(malita), gyuyoung.kim_webkit.org, jchaffraix+rendering, pdr., ojan, Stephen Chennney, rune+blink
Visibility:
Public.

Description

Separate repaint and layout requirements of StyleDifference (Step 3) Step 1 and 2 replaced StyleDifference enum with StyleDifference class but still didn't change any functionality. This change allows multiple types of flags set in StyleDifference, in the following cases: 1. Both needsRepaint and needsPositionedMovement: This was a full layout when StyleDifference enum couldn't express the exact needs of the case. Now we can do a repaint and positioned movement without full layout. 2. Both needsRepaintLayer and needsFullLayout: Previously, the needs of repainting layer must be checked again (about clip, transform, opacity etc.) in RenderLayerModelObject::styleWillChange() if layout is also needed. Now we can go through the normal needsRepaintLayer path. 3. Both needsRepaint and needsFullLayout: Previously as the repaint needs couldn't be explicitly expressed, we have to do a full repaint. In this change we still keep the original behavior unchanged. Will optimize in later changes. 4. Both contextSensitiveProperties and needsLayout: Now this is resolved by RenderObject::adjustStyleDifference() to layout only or case 1, 2 or 3. Only case 2 changes the visible behavior. All rebaselined layout tests are in this case. The extra repaint rects are because now the code schedules both direct repaints and repaints caused by layer position change. BUG=358460 TEST=existing layout tests, several rebaselined. Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=173023

Patch Set 1 #

Patch Set 2 : Rebase #

Total comments: 13

Patch Set 3 : Update comments #

Patch Set 4 : Rebase #

Total comments: 8

Patch Set 5 : Address comments; Rebase on RAL #

Unified diffs Side-by-side diffs Delta from patch set Stats (+62 lines, -86 lines) Patch
M LayoutTests/fast/repaint/fixed-child-move-after-scroll-expected.txt View 1 chunk +2 lines, -0 lines 0 comments Download
M LayoutTests/fast/repaint/fixed-child-of-fixed-move-after-scroll-expected.txt View 1 chunk +2 lines, -0 lines 0 comments Download
M LayoutTests/fast/repaint/fixed-child-of-transformed-move-after-scroll-expected.txt View 1 chunk +2 lines, -0 lines 0 comments Download
M LayoutTests/fast/repaint/fixed-move-after-scroll-expected.txt View 1 chunk +2 lines, -0 lines 0 comments Download
M LayoutTests/fast/repaint/layer-visibility-expected.txt View 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderLayerModelObject.cpp View 2 3 1 chunk +2 lines, -17 lines 0 comments Download
M Source/core/rendering/RenderObject.cpp View 1 2 3 4 6 chunks +16 lines, -7 lines 0 comments Download
M Source/core/rendering/style/RenderStyle.h View 1 2 3 4 1 chunk +3 lines, -3 lines 0 comments Download
M Source/core/rendering/style/RenderStyle.cpp View 1 5 chunks +9 lines, -28 lines 0 comments Download
M Source/core/rendering/style/SVGRenderStyle.h View 1 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/style/SVGRenderStyle.cpp View 1 2 chunks +3 lines, -6 lines 0 comments Download
M Source/core/rendering/style/StyleDifference.h View 1 2 3 4 3 chunks +16 lines, -21 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGRoot.cpp View 1 1 chunk +1 line, -2 lines 0 comments Download
M Source/core/rendering/svg/SVGResourcesCache.cpp View 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 12 (0 generated)
Xianzhu
6 years, 8 months ago (2014-04-22 18:41:32 UTC) #1
Xianzhu
Hi, reviewers, Step 1 and Step 2 have been landed. Could you please take a ...
6 years, 8 months ago (2014-04-24 18:08:27 UTC) #2
Julien - ping for review
https://codereview.chromium.org/247713003/diff/20001/Source/core/rendering/RenderLayerModelObject.cpp File Source/core/rendering/RenderLayerModelObject.cpp (left): https://codereview.chromium.org/247713003/diff/20001/Source/core/rendering/RenderLayerModelObject.cpp#oldcode122 Source/core/rendering/RenderLayerModelObject.cpp:122: || oldStyle->filter() != newStyle.filter()) Could you explain why it ...
6 years, 8 months ago (2014-04-25 15:43:04 UTC) #3
Xianzhu
https://codereview.chromium.org/247713003/diff/20001/Source/core/rendering/RenderLayerModelObject.cpp File Source/core/rendering/RenderLayerModelObject.cpp (left): https://codereview.chromium.org/247713003/diff/20001/Source/core/rendering/RenderLayerModelObject.cpp#oldcode122 Source/core/rendering/RenderLayerModelObject.cpp:122: || oldStyle->filter() != newStyle.filter()) On 2014/04/25 15:43:04, Julien Chaffraix ...
6 years, 8 months ago (2014-04-25 17:32:39 UTC) #4
Julien - ping for review
https://codereview.chromium.org/247713003/diff/20001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/247713003/diff/20001/Source/core/rendering/RenderObject.cpp#newcode1904 Source/core/rendering/RenderObject.cpp:1904: diff.setNeedsRepaintLayer(); On 2014/04/25 17:32:39, Xianzhu wrote: > On 2014/04/25 ...
6 years, 7 months ago (2014-04-28 17:40:27 UTC) #5
Xianzhu
https://codereview.chromium.org/247713003/diff/20001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/247713003/diff/20001/Source/core/rendering/RenderObject.cpp#newcode1904 Source/core/rendering/RenderObject.cpp:1904: diff.setNeedsRepaintLayer(); On 2014/04/28 17:40:28, Julien Chaffraix - PST wrote: ...
6 years, 7 months ago (2014-04-28 18:11:50 UTC) #6
Xianzhu
PTAL. Rebased on https://codereview.chromium.org/250773002/. The CL is simplified because SimplifiedLayout was removed in the above ...
6 years, 7 months ago (2014-04-29 16:29:31 UTC) #7
Julien - ping for review
lgtm https://codereview.chromium.org/247713003/diff/60001/LayoutTests/fast/repaint/fixed-child-move-after-scroll-expected.txt File LayoutTests/fast/repaint/fixed-child-move-after-scroll-expected.txt (right): https://codereview.chromium.org/247713003/diff/60001/LayoutTests/fast/repaint/fixed-child-move-after-scroll-expected.txt#newcode5 LayoutTests/fast/repaint/fixed-child-move-after-scroll-expected.txt:5: (rect 10 70 100 100) It's annoying that ...
6 years, 7 months ago (2014-04-30 18:02:25 UTC) #8
Xianzhu
Will upload the new Patch Set after RAL NeedsRebaseline layout tests finish auto-rebaselining. https://codereview.chromium.org/247713003/diff/60001/LayoutTests/fast/repaint/fixed-child-move-after-scroll-expected.txt File ...
6 years, 7 months ago (2014-04-30 18:40:15 UTC) #9
Xianzhu
The CQ bit was checked by wangxianzhu@chromium.org
6 years, 7 months ago (2014-04-30 19:21:19 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/wangxianzhu@chromium.org/247713003/80001
6 years, 7 months ago (2014-04-30 19:21:39 UTC) #11
commit-bot: I haz the power
6 years, 7 months ago (2014-04-30 20:33:48 UTC) #12
Message was sent while issue was closed.
Change committed as 173023

Powered by Google App Engine
This is Rietveld 408576698