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

Issue 2087513003: Remove LayoutBlockFlow overflow invalidation (Closed)

Created:
4 years, 6 months ago by Xianzhu
Modified:
4 years, 5 months ago
Reviewers:
chrishtr, pdr.
CC:
blink-reviews, blink-reviews-layout_chromium.org, chromium-reviews, krit, eae+blinkwatch, f(malita), fs, gyuyoung2, jchaffraix+rendering, kouhei+svg_chromium.org, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, pdr+svgwatchlist_chromium.org, rwlbuis, Stephen Chennney, 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

Remove LayoutBlockFlow overflow invalidation "Overflow" invalidation was to invalidate changed lines in a LayoutBlockFlow with inline children. Upper and lower bounds of changed lines are recorded during layout. The concept was not properly named, and the implementation is complex. Now switch to LayoutInline/LayoutText invalidation. Set the owning inline LayoutObject shouldDoFullPaintInvalidation when a InlineBox is deleted or changed. This also improves performance during inline layout for paint invalidation when many InlineBoxes are deleted. Under-invalidation checking didn't find any error in layout tests (which would be pixel mismatches or crashes). With this patch, we may invalidate bigger rect in case that not all InlineBoxes changed in a big LayutInline or LayoutText. Previously the paint invalidation rects cover the changed InlineBoxes only; now the rects cover the whole LayoutInline and LayoutText containing the changed InlineBoxes. The case normally happens when some intruding floating objects change geometry which is not very common. In other cases we may invalidate smaller rects because we no longer invalidate the whole width of the LayoutBlockFlow. We may invalidate more rects than before. BUG=619630 Committed: https://crrev.com/0e20bd123062a6bc463391c8970b24936983c466 Cr-Commit-Position: refs/heads/master@{#402292}

Patch Set 1 #

Patch Set 2 : - #

Patch Set 3 : Rebase #

Patch Set 4 : Remove LayoutBlockFlow overflow invalidation #

Patch Set 5 : Rebase on https://codereview.chromium.org/2092953002 #

Patch Set 6 : Rebase #

Patch Set 7 : Rebase #

Patch Set 8 : Fix InlineTextBoxTest #

Total comments: 5

Patch Set 9 : NeedsRebaseline #

Patch Set 10 : NeedsRebaseline #

Unified diffs Side-by-side diffs Delta from patch set Stats (+198 lines, -162 lines) Patch
M third_party/WebKit/LayoutTests/TestExpectations View 1 2 3 4 5 6 7 8 9 3 chunks +136 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/InlineTextBoxTest.cpp View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlow.h View 1 4 chunks +2 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp View 5 chunks +1 line, -57 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp View 1 8 chunks +6 lines, -20 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.cpp View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.h View 1 2 7 chunks +1 line, -14 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.cpp View 1 2 3 chunks +2 lines, -18 lines 0 comments Download
M third_party/WebKit/Source/core/layout/api/LineLayoutItem.h View 1 2 3 2 chunks +5 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/layout/line/InlineBox.h View 1 2 3 2 chunks +4 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/line/InlineBox.cpp View 1 2 3 3 chunks +24 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/layout/line/LineLayoutState.h View 2 chunks +1 line, -25 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGText.cpp View 1 chunk +1 line, -3 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/DisplayItemClient.h View 1 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/DisplayItemClient.cpp View 1 1 chunk +8 lines, -0 lines 0 comments Download

Messages

Total messages: 28 (15 generated)
Xianzhu
4 years, 5 months ago (2016-06-24 17:12:57 UTC) #7
chrishtr
The larger invalidations might have a performance impact for editing use-cases where there are lots ...
4 years, 5 months ago (2016-06-24 17:18:57 UTC) #8
Xianzhu
On 2016/06/24 17:18:57, chrishtr wrote: > The larger invalidations might have a performance impact for ...
4 years, 5 months ago (2016-06-24 19:15:14 UTC) #9
Xianzhu
> We have performance tests covering text layout under PerformanceTests/Layout. > Running the benchmarks on ...
4 years, 5 months ago (2016-06-25 05:35:28 UTC) #10
chrishtr
https://codereview.chromium.org/2087513003/diff/160001/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp File third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp (left): https://codereview.chromium.org/2087513003/diff/160001/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp#oldcode2792 third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:2792: void LayoutBlockFlow::invalidatePaintForOverflow() Does the version control history give a ...
4 years, 5 months ago (2016-06-27 15:12:42 UTC) #11
Xianzhu
https://codereview.chromium.org/2087513003/diff/160001/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp File third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp (left): https://codereview.chromium.org/2087513003/diff/160001/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp#oldcode2792 third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:2792: void LayoutBlockFlow::invalidatePaintForOverflow() On 2016/06/27 15:12:42, chrishtr wrote: > Does ...
4 years, 5 months ago (2016-06-27 17:05:19 UTC) #12
chrishtr
lgtm
4 years, 5 months ago (2016-06-27 17:24:14 UTC) #14
commit-bot: I haz the power
This CL has an open dependency (Issue 2092953002 Patch 40001). Please resolve the dependency and ...
4 years, 5 months ago (2016-06-27 17:25:12 UTC) #16
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/2087513003/180001
4 years, 5 months ago (2016-06-27 17:39:09 UTC) #19
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/253063)
4 years, 5 months ago (2016-06-27 19:18:50 UTC) #21
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/2087513003/200001
4 years, 5 months ago (2016-06-27 20:07:12 UTC) #24
commit-bot: I haz the power
Committed patchset #10 (id:200001)
4 years, 5 months ago (2016-06-27 21:36:28 UTC) #26
commit-bot: I haz the power
4 years, 5 months ago (2016-06-27 21:38:40 UTC) #28
Message was sent while issue was closed.
Patchset 10 (id:??) landed as
https://crrev.com/0e20bd123062a6bc463391c8970b24936983c466
Cr-Commit-Position: refs/heads/master@{#402292}

Powered by Google App Engine
This is Rietveld 408576698