Chromium Code Reviews
Help | Chromium Project | Gerrit Changes | Sign in
(4)

Issue 1194473003: Make updateLayoutAndStyleForPainting() O(N) in terms of frame number in LayoutView::hitTest() (Closed)

Created:
4 years, 10 months ago by Yufeng Shen (Slow to review)
Modified:
4 years, 10 months ago
Reviewers:
chrishtr, esprehn
CC:
blink-reviews, blink-reviews-rendering, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, Rick Byers, szager+layoutwatch_chromium.org, zoltan1
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Make updateLayoutAndStyleForPainting() O(N) in terms of frame number in LayoutView::hitTest() In LayoutView::hitTest, we call updateLayoutAndStyleForPainting() before actual hitTesting. updateLayoutAndStyleForPainting() will do the update on all the iframes in the document even if the originating update is issued from one particular iframe. This makes hit testing expensive for page that has many iframes since LayoutView::hitTest() is also called on every iframe, which makes the layout and style update O(N^2) in terms of iframe numbers. This CL moves the call of updateLayoutAndStyleForPainting() one level up so recursive hit testing on iframe won't trigger updateLayoutAndStyleForPainting() again. BUG=498150 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=197305

Patch Set 1 #

Patch Set 2 : address Elliot's comment #

Patch Set 3 : rebase #

Patch Set 4 : rebasae layout test result because the order of the when the tracing runs changed #

Unified diffs Side-by-side diffs Delta from patch set Stats (+14 lines, -8 lines) Patch
M LayoutTests/inspector/tracing/hit-test-expected.txt View 1 2 3 1 chunk +0 lines, -1 line 0 comments Download
M Source/core/layout/LayoutPart.cpp View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M Source/core/layout/LayoutView.h View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/layout/LayoutView.cpp View 1 2 1 chunk +10 lines, -6 lines 0 comments Download

Messages

Total messages: 23 (8 generated)
Yufeng Shen (Slow to review)
4 years, 10 months ago (2015-06-17 00:50:10 UTC) #2
esprehn
We should move the call up a level instead into Document or FrameView instead of ...
4 years, 10 months ago (2015-06-17 01:17:51 UTC) #3
Yufeng Shen (Slow to review)
On 2015/06/17 01:17:51, esprehn wrote: > We should move the call up a level instead ...
4 years, 10 months ago (2015-06-17 14:50:22 UTC) #4
dtapuska
On 2015/06/17 14:50:22, Yufeng Shen wrote: > On 2015/06/17 01:17:51, esprehn wrote: > > We ...
4 years, 10 months ago (2015-06-17 15:02:58 UTC) #5
Yufeng Shen (Slow to review)
On 2015/06/17 15:02:58, Dave Tapuska wrote: > On 2015/06/17 14:50:22, Yufeng Shen wrote: > > ...
4 years, 10 months ago (2015-06-17 15:42:05 UTC) #6
esprehn
That's a separate issue that needs a more global fix, I think you're making this ...
4 years, 10 months ago (2015-06-17 17:47:22 UTC) #7
Yufeng Shen (Slow to review)
On 2015/06/17 17:47:22, esprehn wrote: > That's a separate issue that needs a more global ...
4 years, 10 months ago (2015-06-17 20:32:26 UTC) #8
esprehn
lgtm
4 years, 10 months ago (2015-06-17 20:34:32 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1194473003/20001
4 years, 10 months ago (2015-06-17 20:39:07 UTC) #11
commit-bot: I haz the power
Try jobs failed on following builders: mac_blink_compile_dbg on tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/mac_blink_compile_dbg/builds/47819) mac_blink_rel on tryserver.blink (JOB_FAILED, ...
4 years, 10 months ago (2015-06-17 20:43:48 UTC) #13
Yufeng Shen (Slow to review)
On 2015/06/17 20:43:48, commit-bot: I haz the power wrote: > Try jobs failed on following ...
4 years, 10 months ago (2015-06-17 21:15:59 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1194473003/40001
4 years, 10 months ago (2015-06-17 21:16:11 UTC) #17
commit-bot: I haz the power
Try jobs failed on following builders: mac_blink_rel on tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/mac_blink_rel/builds/59345)
4 years, 10 months ago (2015-06-17 23:05:09 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1194473003/60001
4 years, 10 months ago (2015-06-18 00:17:43 UTC) #22
commit-bot: I haz the power
4 years, 10 months ago (2015-06-18 01:50:05 UTC) #23
Message was sent while issue was closed.
Committed patchset #4 (id:60001) as
https://src.chromium.org/viewvc/blink?view=rev&revision=197305

Powered by Google App Engine
This is Rietveld 408576698