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

Issue 1544423002: Improve positioned/percentHeight descendant/container tracking (Closed)

Created:
4 years, 11 months ago by Xianzhu
Modified:
4 years, 11 months ago
Reviewers:
chrishtr, esprehn, eae
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

Improve positioned/percentHeight descendant/container tracking - Add LayoutBoxRareData::m_percentHeightContainer to track percent height containers. (rare rate: 1.52% based on top 10k sites -- Run 402 https://ct.skia.org/chromium_perf_runs/ ) - Still use global maps to track percent height descendants, positioned descendants and positioned containers, but add bit field to indicate if descendants set exists for a LayoutBlock to avoid hash lookups if the block doesn't have percent-height or positioned descendants. - As a positioned box has only one positioned container at a time, positioned container map is simplified to HashMap<LayoutBox*, LayoutBlock*> instead of HashMap<LayoutBox*, HashSet<LayoutBlock*>>. Also modify code to handle previously (unnecessarily) multiple containers situation. This will improve blink_perf.layout tests performance by 0%~20%: http://storage.googleapis.com/chromium-telemetry/html-results/results-2016-01-10_00-31-59 http://storage.googleapis.com/chromium-telemetry/html-results/results-2016-01-10_11-52-52 More discussions: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/xWMmQfD_X0A Committed: https://crrev.com/0ba5554bd01f1f3dd94f38375d02f234e683c9ca Cr-Commit-Position: refs/heads/master@{#371388}

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : Raredata #

Patch Set 7 : #

Patch Set 8 : #

Patch Set 9 : virtual destructor #

Total comments: 6

Patch Set 10 : #

Patch Set 11 : #

Patch Set 12 : Keep map #

Patch Set 13 : #

Patch Set 14 : Fix windows build break #

Total comments: 12

Patch Set 15 : #

Total comments: 2

Patch Set 16 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+153 lines, -157 lines) Patch
M third_party/WebKit/Source/core/layout/LayoutBlock.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 chunks +14 lines, -14 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlock.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +93 lines, -131 lines 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 15 3 chunks +8 lines, -0 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 15 3 chunks +33 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutRubyRun.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/web/tests/WebFrameTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 43 (20 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/1544423002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1544423002/60001
4 years, 11 months ago (2015-12-29 21:57:20 UTC) #2
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2015-12-29 23:06:12 UTC) #4
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1544423002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1544423002/160001
4 years, 11 months ago (2016-01-05 01:44:30 UTC) #8
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2016-01-05 03:01:17 UTC) #10
Xianzhu
4 years, 11 months ago (2016-01-05 17:09:16 UTC) #12
chrishtr
Adding Emil for feedback and review also.
4 years, 11 months ago (2016-01-06 18:02:52 UTC) #14
esprehn
https://codereview.chromium.org/1544423002/diff/160001/third_party/WebKit/Source/core/layout/LayoutBox.h File third_party/WebKit/Source/core/layout/LayoutBox.h (right): https://codereview.chromium.org/1544423002/diff/160001/third_party/WebKit/Source/core/layout/LayoutBox.h#newcode65 third_party/WebKit/Source/core/layout/LayoutBox.h:65: virtual ~LayoutBoxRareData() { } we make this non-virtual in ...
4 years, 11 months ago (2016-01-06 19:37:25 UTC) #15
Xianzhu
https://codereview.chromium.org/1544423002/diff/160001/third_party/WebKit/Source/core/layout/LayoutBox.h File third_party/WebKit/Source/core/layout/LayoutBox.h (right): https://codereview.chromium.org/1544423002/diff/160001/third_party/WebKit/Source/core/layout/LayoutBox.h#newcode65 third_party/WebKit/Source/core/layout/LayoutBox.h:65: virtual ~LayoutBoxRareData() { } On 2016/01/06 19:37:25, esprehn wrote: ...
4 years, 11 months ago (2016-01-06 20:49:07 UTC) #16
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1544423002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1544423002/220001
4 years, 11 months ago (2016-01-10 07:30:33 UTC) #18
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: win8_chromium_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win8_chromium_ng/builds/87570)
4 years, 11 months ago (2016-01-10 07:58:05 UTC) #20
Xianzhu
Modified according to the rare data stat result (https://docs.google.com/spreadsheets/d/1i_kqo71EAiqyphgDFKwRThH7Oq69MWHncH-lSLwCWgY/edit#gid=0). See CL description for details. Ptal.
4 years, 11 months ago (2016-01-10 20:54:22 UTC) #24
Xianzhu
On 2016/01/10 20:54:22, Xianzhu wrote: > Modified according to the rare data stat result > ...
4 years, 11 months ago (2016-01-19 20:26:03 UTC) #25
eae
LGTM The current approach addresses many of the concerns of the original proposal while maintaining ...
4 years, 11 months ago (2016-01-19 22:41:06 UTC) #26
esprehn
You say: (rare rate: 1.52%) but over what data in your description? I'd also prefer ...
4 years, 11 months ago (2016-01-20 00:01:49 UTC) #27
Xianzhu
On 2016/01/20 00:01:49, esprehn wrote: > You say: (rare rate: 1.52%) > > but over ...
4 years, 11 months ago (2016-01-20 02:33:26 UTC) #29
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1544423002/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1544423002/280001
4 years, 11 months ago (2016-01-21 17:43:48 UTC) #31
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2016-01-21 19:12:24 UTC) #33
Xianzhu
esprehn@ do you have more comments?
4 years, 11 months ago (2016-01-25 18:16:57 UTC) #34
esprehn
lgtm https://codereview.chromium.org/1544423002/diff/280001/third_party/WebKit/Source/core/layout/LayoutBlock.cpp File third_party/WebKit/Source/core/layout/LayoutBlock.cpp (right): https://codereview.chromium.org/1544423002/diff/280001/third_party/WebKit/Source/core/layout/LayoutBlock.cpp#newcode1485 third_party/WebKit/Source/core/layout/LayoutBlock.cpp:1485: for (auto o : deadObjects) { object?
4 years, 11 months ago (2016-01-25 21:45:04 UTC) #35
Xianzhu
https://codereview.chromium.org/1544423002/diff/280001/third_party/WebKit/Source/core/layout/LayoutBlock.cpp File third_party/WebKit/Source/core/layout/LayoutBlock.cpp (right): https://codereview.chromium.org/1544423002/diff/280001/third_party/WebKit/Source/core/layout/LayoutBlock.cpp#newcode1485 third_party/WebKit/Source/core/layout/LayoutBlock.cpp:1485: for (auto o : deadObjects) { On 2016/01/25 21:45:04, ...
4 years, 11 months ago (2016-01-25 22:09:40 UTC) #38
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1544423002/300001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1544423002/300001
4 years, 11 months ago (2016-01-25 22:11:58 UTC) #39
commit-bot: I haz the power
Committed patchset #16 (id:300001)
4 years, 11 months ago (2016-01-26 00:54:26 UTC) #41
commit-bot: I haz the power
4 years, 11 months ago (2016-01-26 00:57:40 UTC) #43
Message was sent while issue was closed.
Patchset 16 (id:??) landed as
https://crrev.com/0ba5554bd01f1f3dd94f38375d02f234e683c9ca
Cr-Commit-Position: refs/heads/master@{#371388}

Powered by Google App Engine
This is Rietveld 408576698