|
|
Created:
4 years, 2 months ago by dominicc (has gone to gerrit) Modified:
4 years, 2 months ago CC:
blink-reviews, blink-reviews-dom_chromium.org, chromium-reviews, dglazkov+blink, eae+blinkwatch, rwlbuis, sof Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionUse the sibling limit to decide whether to create layout for whitespace
Text::textLayoutObjectIsNeeded is an optimization which avoids
creating layout objects for whitespace text nodes. However
LayoutTreeBuilderTraversal::nextSiblingLayoutObject traverses all
siblings. For long lists of N space-separated siblings, this
degenerates into an N^2 DOM walk. Oops.
Text::textLayoutObjectIsNeeded already has a sibling limit; this
passes the limit through to
prevSiblingLayoutObject/nextSiblingLayoutObject.
BUG=650938
Committed: https://crrev.com/99c2073218960208c0f54de95b9c31ff9521ba46
Cr-Commit-Position: refs/heads/master@{#422631}
Patch Set 1 #Patch Set 2 : Use a signed type for the limit. #Patch Set 3 : Do not underflow unsigned counter in caller. #Patch Set 4 : Bring patch to head. #
Total comments: 2
Messages
Total messages: 35 (23 generated)
dominicc@chromium.org changed reviewers: + kojii@chromium.org
PTAL
The CQ bit was checked by dominicc@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_x64_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
The CQ bit was checked by dominicc@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The code looks good to me but there are a few cases where limit == -1 from the test failures?
The CQ bit was checked by dominicc@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Good point. The caller underflows the unsigned limit. PTAL.
lgtm
The CQ bit was checked by dominicc@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds...) ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...)
The CQ bit was checked by dominicc@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by dominicc@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from kojii@chromium.org Link to the patchset: https://codereview.chromium.org/2379483002/#ps60001 (title: "Bring patch to head. ")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Committed patchset #4 (id:60001)
Message was sent while issue was closed.
Description was changed from ========== Use the sibling limit to decide whether to create layout for whitespace Text::textLayoutObjectIsNeeded is an optimization which avoids creating layout objects for whitespace text nodes. However LayoutTreeBuilderTraversal::nextSiblingLayoutObject traverses all siblings. For long lists of N space-separated siblings, this degenerates into an N^2 DOM walk. Oops. Text::textLayoutObjectIsNeeded already has a sibling limit; this passes the limit through to prevSiblingLayoutObject/nextSiblingLayoutObject. BUG=650938 ========== to ========== Use the sibling limit to decide whether to create layout for whitespace Text::textLayoutObjectIsNeeded is an optimization which avoids creating layout objects for whitespace text nodes. However LayoutTreeBuilderTraversal::nextSiblingLayoutObject traverses all siblings. For long lists of N space-separated siblings, this degenerates into an N^2 DOM walk. Oops. Text::textLayoutObjectIsNeeded already has a sibling limit; this passes the limit through to prevSiblingLayoutObject/nextSiblingLayoutObject. BUG=650938 Committed: https://crrev.com/99c2073218960208c0f54de95b9c31ff9521ba46 Cr-Commit-Position: refs/heads/master@{#422631} ==========
Message was sent while issue was closed.
Patchset 4 (id:??) landed as https://crrev.com/99c2073218960208c0f54de95b9c31ff9521ba46 Cr-Commit-Position: refs/heads/master@{#422631}
Message was sent while issue was closed.
thakis@chromium.org changed reviewers: + thakis@chromium.org
Message was sent while issue was closed.
https://codereview.chromium.org/2379483002/diff/60001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/dom/Text.cpp (right): https://codereview.chromium.org/2379483002/diff/60001/third_party/WebKit/Sour... third_party/WebKit/Source/core/dom/Text.cpp:311: unsigned maxSiblingsToVisit = 50; did you mean to delete this here? (i'll send a cl to do so, unless you tell me it's intentionally in two places now)
Message was sent while issue was closed.
https://codereview.chromium.org/2379483002/diff/60001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/dom/Text.cpp (right): https://codereview.chromium.org/2379483002/diff/60001/third_party/WebKit/Sour... third_party/WebKit/Source/core/dom/Text.cpp:311: unsigned maxSiblingsToVisit = 50; On 2016/10/06 at 15:13:45, Nico wrote: > did you mean to delete this here? (i'll send a cl to do so, unless you tell me it's intentionally in two places now) Looks like a merge failure, PS3 removed this but not in PS4.
Message was sent while issue was closed.
On 2016/10/07 at 03:22:54, kojii wrote: > https://codereview.chromium.org/2379483002/diff/60001/third_party/WebKit/Sour... > File third_party/WebKit/Source/core/dom/Text.cpp (right): > > https://codereview.chromium.org/2379483002/diff/60001/third_party/WebKit/Sour... > third_party/WebKit/Source/core/dom/Text.cpp:311: unsigned maxSiblingsToVisit = 50; > On 2016/10/06 at 15:13:45, Nico wrote: > > did you mean to delete this here? (i'll send a cl to do so, unless you tell me it's intentionally in two places now) > > Looks like a merge failure, PS3 removed this but not in PS4. Yes, merge failure. Thank you for cleaning this up jochen. |