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

Issue 1509853002: Remove checkForChildrenAdjacentRuleChanges. (Closed)

Created:
5 years ago by rune
Modified:
4 years, 11 months ago
Reviewers:
esprehn, Eric Willigers
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

Remove checkForChildrenAdjacentRuleChanges. All uses of SubtreeStyleChange now means strict subtree. All sibling forest invalidations are done using invalidation sets except on node insertions and removals. checkForSiblingStyleChanges now has to invalidate siblings itself on insertion/removal. Before this change we did a SubtreeStyleChange on a single element and let checkForChildrenAdjacentRuleChanges mark the sibling forest for recalc. The reason why we cannot use invalidation sets when adding/removing nodes, is that we don't change the relevant features (classes, ids, etc) when we need to figure out. For instance: <style> :not(.a) + div { color green } </style> <div class="a"></div> <div>Should be green after insertion</div> If you insert an element between the two divs, the latter will start matching the style rule, but we cannot do that with invalidation sets. Adjustments have been done to the style invalidator to allow scheduling sibling invalidation sets on SubtreeStyleChange elements, since siblings will have style recalcs triggered through the invalidation machinery, not checkForChildrenAdjacentRuleChanges. BUG=557440 Committed: https://crrev.com/95eaa0cbb6e9a7d348769a335ae702c1214769dc Cr-Commit-Position: refs/heads/master@{#370097}

Patch Set 1 #

Total comments: 1

Patch Set 2 : Rebased #

Patch Set 3 : Might need to schedule sibling invalidation sets for SubtreeStyleChange #

Total comments: 2

Patch Set 4 : #

Patch Set 5 : Rebased #

Patch Set 6 : Missing check for AttachContext::clearInvalidation #

Patch Set 7 : Rebased #

Unified diffs Side-by-side diffs Delta from patch set Stats (+189 lines, -66 lines) Patch
A third_party/WebKit/LayoutTests/fast/css/invalidation/hover-first-letter-sibling.html View 1 2 1 chunk +49 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/css/invalidation/hover-first-letter-sibling-expected.txt View 1 2 3 1 chunk +13 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/css/invalidation/reattach-with-sibling-invalidation.html View 1 2 3 1 chunk +2 lines, -3 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/css/invalidation/reattach-with-sibling-invalidation-expected.txt View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/fast/css/invalidation/sibling-inserted.html View 1 chunk +1 line, -2 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/css/invalidation/subtree-with-sibling.html View 1 chunk +69 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/css/invalidation/subtree-with-sibling-expected.txt View 1 chunk +21 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp View 1 2 3 4 5 6 3 chunks +14 lines, -12 lines 0 comments Download
M third_party/WebKit/Source/core/dom/ContainerNode.h View 1 2 3 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/dom/ContainerNode.cpp View 1 2 3 4 5 6 6 chunks +17 lines, -46 lines 0 comments Download
M third_party/WebKit/Source/core/dom/Element.cpp View 1 2 3 4 5 6 1 chunk +2 lines, -1 line 0 comments Download

Messages

Total messages: 32 (12 generated)
rune
These two need to land before this CL: https://codereview.chromium.org/1503993002/ https://codereview.chromium.org/1507653002/
5 years ago (2015-12-08 09:58:48 UTC) #1
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1509853002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1509853002/1
5 years ago (2015-12-10 00:27:09 UTC) #3
rune
5 years ago (2015-12-10 00:35:23 UTC) #5
rune
https://codereview.chromium.org/1509853002/diff/1/third_party/WebKit/LayoutTests/fast/css/invalidation/subtree-with-sibling.html File third_party/WebKit/LayoutTests/fast/css/invalidation/subtree-with-sibling.html (right): https://codereview.chromium.org/1509853002/diff/1/third_party/WebKit/LayoutTests/fast/css/invalidation/subtree-with-sibling.html#newcode38 third_party/WebKit/LayoutTests/fast/css/invalidation/subtree-with-sibling.html:38: description("A subtree invalidation should not invalidation sibling forest"); should ...
5 years ago (2015-12-10 00:37:58 UTC) #6
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/153673)
5 years ago (2015-12-10 02:29:29 UTC) #8
esprehn
Are you sure, for example: https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/core/dom/ContainerNode.cpp&q=SubtreeStyleChange&sq=package:chromium&l=1075&dr=C if (computedStyle()->affectedByFocus() && computedStyle()->hasPseudoStyle(FIRST_LETTER)) setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTracing::createWithExtraData(StyleChangeReason::PseudoClass, StyleChangeExtraData::Focus)); else if ...
5 years ago (2015-12-10 02:53:52 UTC) #9
rune
On 2015/12/10 02:53:52, esprehn wrote: > Are you sure, for example: > > https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/core/dom/ContainerNode.cpp&q=SubtreeStyleChange&sq=package:chromium&l=1075&dr=C > ...
5 years ago (2015-12-16 22:52:24 UTC) #10
rune
https://codereview.chromium.org/1509853002/diff/40001/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp File third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp (right): https://codereview.chromium.org/1509853002/diff/40001/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp#newcode216 third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp:216: pushInvalidationSetsForElement(element, recursionData, siblingData); Pushing sibling sets here must happen ...
5 years ago (2015-12-17 00:09:24 UTC) #11
rune
https://codereview.chromium.org/1509853002/diff/40001/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp File third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp (right): https://codereview.chromium.org/1509853002/diff/40001/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp#newcode216 third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp:216: pushInvalidationSetsForElement(element, recursionData, siblingData); On 2015/12/17 00:09:24, rune wrote: > ...
5 years ago (2015-12-17 12:55:01 UTC) #12
rune
The latest patch set is now based on https://codereview.chromium.org/1533683002/#ps1
5 years ago (2015-12-17 13:00:53 UTC) #14
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1509853002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1509853002/100001
4 years, 11 months ago (2016-01-13 11:59:08 UTC) #16
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2016-01-13 13:33:06 UTC) #18
rune
Other patches landed, now ready for review.
4 years, 11 months ago (2016-01-13 16:12:19 UTC) #19
Eric Willigers
lgtm
4 years, 11 months ago (2016-01-19 09:23:39 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1509853002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1509853002/100001
4 years, 11 months ago (2016-01-19 09:47:18 UTC) #22
rune
On 2016/01/19 09:23:39, Eric Willigers wrote: > lgtm thanks!
4 years, 11 months ago (2016-01-19 09:47:22 UTC) #23
commit-bot: I haz the power
Try jobs failed on following builders: ios_dbg_simulator_ninja on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios_dbg_simulator_ninja/builds/118525) mac_chromium_compile_dbg_ng on tryserver.chromium.mac (JOB_FAILED, ...
4 years, 11 months ago (2016-01-19 09:48:44 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1509853002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1509853002/120001
4 years, 11 months ago (2016-01-19 10:14:18 UTC) #28
commit-bot: I haz the power
Committed patchset #7 (id:120001)
4 years, 11 months ago (2016-01-19 11:52:49 UTC) #30
commit-bot: I haz the power
4 years, 11 months ago (2016-01-19 11:54:01 UTC) #32
Message was sent while issue was closed.
Patchset 7 (id:??) landed as
https://crrev.com/95eaa0cbb6e9a7d348769a335ae702c1214769dc
Cr-Commit-Position: refs/heads/master@{#370097}

Powered by Google App Engine
This is Rietveld 408576698