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

Issue 2116503002: Skip scheduling sibling invalidation based on direct adjacent count. (Closed)

Created:
4 years, 5 months ago by rune
Modified:
4 years, 5 months ago
Reviewers:
meade_UTC10, esprehn
CC:
darktears, apavlov+blink_chromium.org, blink-reviews, blink-reviews-css, blink-reviews-dom_chromium.org, blink-reviews-style_chromium.org, chromium-reviews, dglazkov+blink, eae+blinkwatch, rwlbuis, sof
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Skip scheduling sibling invalidation based on direct adjacent count. When scheduling sibling invalidation sets for sibling insertion/removal we schedule sets for N preceding siblings where N is the maximum number of consecutive direct adjacent combinators, or infinite for indirect adjacent combinators. However, the further left of the mutation we schedule, the more direct adjacent combinators are required to affect siblings following the mutation. The maximum adjacent number is stored for every sibling invalidation set, which means we can drop scheduling the set if that count is too low. Example: Selectors: .a + div + div + span {} .b + span {} .c + span {} Siblings: div.x div.a div.b div.c div#remove span When removing #remove we start scheduling sibling invalidations for div.c which needs at least one adjacent combinator to reach the span or any subsequent elements. div.b needs at least two, and so on. For the case above, we schedule the set for .c, but not for .b since the max adjacent combinator count for .b is 1 and it needs to be at least 2. .a needs to have at least 3, which is the case, so we schedule the set for .a. We never consider the div.x element because the max adjacent combinator count for the document is 3. R=esprehn@chromium.org BUG=624782 Committed: https://crrev.com/6fd5c3b21a538a976c97c92a97645aafec77c572 Cr-Commit-Position: refs/heads/master@{#403530}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+80 lines, -22 lines) Patch
A third_party/WebKit/LayoutTests/fast/css/invalidation/sibling-mutation-min-direct.html View 1 chunk +47 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/RuleFeature.h View 1 chunk +4 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/css/RuleFeature.cpp View 7 chunks +14 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/css/RuleFeatureSetTest.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/dom/StyleEngine.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/dom/StyleEngine.cpp View 3 chunks +13 lines, -11 lines 0 comments Download

Messages

Total messages: 17 (7 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2116503002/1
4 years, 5 months ago (2016-06-30 13:59:49 UTC) #2
rune
ptal
4 years, 5 months ago (2016-06-30 14:00:07 UTC) #3
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 5 months ago (2016-06-30 15:13:00 UTC) #5
esprehn
meade@ Want to review this? :)
4 years, 5 months ago (2016-06-30 23:22:01 UTC) #7
meade_UTC10
On 2016/06/30 23:22:01, esprehn wrote: > meade@ Want to review this? :) sure! This all ...
4 years, 5 months ago (2016-07-01 16:44:06 UTC) #8
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/2116503002/1
4 years, 5 months ago (2016-07-01 17:40:51 UTC) #10
commit-bot: I haz the power
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_ng/builds/249285)
4 years, 5 months ago (2016-07-01 19:27:23 UTC) #12
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/2116503002/1
4 years, 5 months ago (2016-07-01 19:46:14 UTC) #14
commit-bot: I haz the power
Committed patchset #1 (id:1)
4 years, 5 months ago (2016-07-01 21:06:59 UTC) #15
commit-bot: I haz the power
4 years, 5 months ago (2016-07-01 21:09:27 UTC) #17
Message was sent while issue was closed.
Patchset 1 (id:??) landed as
https://crrev.com/6fd5c3b21a538a976c97c92a97645aafec77c572
Cr-Commit-Position: refs/heads/master@{#403530}

Powered by Google App Engine
This is Rietveld 408576698