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

Issue 1349543004: CSS: Avoid invalidating style when only descendants need updating (Closed)

Created:
5 years, 3 months ago by Eric Willigers
Modified:
5 years, 3 months ago
Reviewers:
Timothy Loh, esprehn, rune
CC:
blink-reviews, nessy, blink-reviews-style_chromium.org, mlamouri+watch-blink_chromium.org, blink-reviews-css, philipj_slow, gasubic, fs, eric.carlson_apple.com, feature-media-reviews_chromium.org, dglazkov+blink, apavlov+blink_chromium.org, darktears, vcarbune.chromium, rwlbuis
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

CSS: Avoid style recalc when only descendants need update When we have a style rule of the form .a > .b { ... } and class 'a' is added to, or removed from, an element, we have been forcing the style of the updated element to become recalculated, just in case there was also a style rule of the form .a { ... } or .c > .a { ... } We introduce a 'invalidatesSelf' bit in InvalidationSet, to indicate if a given class/id/tag/pseudo-type (class 'a' in this example) ever appears in a rightmost position. Discussed in Sibling Invalidation design doc https://goo.gl/z0Z9gn BUG=532315 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=202449

Patch Set 1 #

Total comments: 4

Patch Set 2 : invalidatesSelf #

Unified diffs Side-by-side diffs Delta from patch set Stats (+114 lines, -102 lines) Patch
M LayoutTests/fast/css/dynamic-class-backdrop-pseudo.html View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/dynamic-class-backdrop-pseudo-expected.txt View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/dynamic-class-pseudo-elements.html View 2 chunks +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/dynamic-class-pseudo-elements-expected.txt View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/compound.html View 5 chunks +5 lines, -5 lines 0 comments Download
M LayoutTests/fast/css/invalidation/full-page-media.html View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/full-page-media-expected.txt View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/fullscreen.html View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/fullscreen-expected.txt View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/invalidation-set-not.html View 3 chunks +3 lines, -3 lines 0 comments Download
M LayoutTests/fast/css/invalidation/invalidation-set-with-adjacent-combinators.html View 2 chunks +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/invalidation-set-with-adjacent-combinators-expected.txt View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/scrollbar-pseudo.html View 1 chunk +7 lines, -7 lines 0 comments Download
M LayoutTests/fast/css/invalidation/scrollbar-pseudo-classes.html View 1 chunk +7 lines, -7 lines 0 comments Download
M LayoutTests/fast/css/invalidation/scrollbar-pseudo-expected.txt View 1 chunk +7 lines, -7 lines 0 comments Download
M LayoutTests/fast/css/invalidation/selection-pseudo.html View 2 chunks +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/selection-pseudo-expected.txt View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/shadow-boundary-crossing.html View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/shadow-boundary-crossing-expected.txt View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/spatial-navigation-focus-pseudo.html View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/spatial-navigation-focus-pseudo-expected.txt View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-attribute-scope.html View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-attribute-scope-expected.txt View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-any-pseudo.html View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-any-pseudo-expected.txt View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-content-pseudo.html View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-content-pseudo-expected.txt View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-custom-pseudo.html View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-custom-pseudo-expected.txt View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-host-context.html View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-host-pseudo.html View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-host-pseudo-expected.txt View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-id.html View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-id-expected.txt View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-shadow-combinator.html View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-shadow-combinator-expected.txt View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-style-invalidation.html View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-style-invalidation-expected.txt View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-type-selectors.html View 2 chunks +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-type-selectors-expected.txt View 1 chunk +2 lines, -2 lines 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-whole-subtree.html View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-class-whole-subtree-expected.txt View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-id-style-invalidation.html View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/css/invalidation/targeted-id-style-invalidation-expected.txt View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/layout/display-none-no-relayout.html View 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/media/track/cue-style-invalidation.html View 1 chunk +4 lines, -4 lines 0 comments Download
M LayoutTests/media/track/cue-style-invalidation-expected.txt View 1 chunk +4 lines, -4 lines 0 comments Download
M Source/core/css/RuleFeature.cpp View 1 2 chunks +4 lines, -2 lines 0 comments Download
M Source/core/css/invalidation/InvalidationSet.h View 1 2 chunks +6 lines, -0 lines 0 comments Download
M Source/core/css/invalidation/InvalidationSet.cpp View 1 2 chunks +4 lines, -0 lines 0 comments Download
M Source/core/css/invalidation/StyleInvalidator.cpp View 1 3 chunks +5 lines, -5 lines 0 comments Download

Messages

Total messages: 19 (6 generated)
Eric Willigers
This proposal can be accepted/rejected independently from sibling invalidation CL 1317533002.
5 years, 3 months ago (2015-09-16 04:00:39 UTC) #2
Timothy Loh
lgtm, but wait for opinions from esprehn/rune https://codereview.chromium.org/1349543004/diff/1/Source/core/css/invalidation/InvalidationSet.h File Source/core/css/invalidation/InvalidationSet.h (right): https://codereview.chromium.org/1349543004/diff/1/Source/core/css/invalidation/InvalidationSet.h#newcode108 Source/core/css/invalidation/InvalidationSet.h:108: // Indicates ...
5 years, 3 months ago (2015-09-16 04:30:49 UTC) #4
esprehn
Your patch description is truncated.
5 years, 3 months ago (2015-09-16 04:34:04 UTC) #5
Eric Willigers
On 2015/09/16 04:34:04, esprehn wrote: > Your patch description is truncated. Updated.
5 years, 3 months ago (2015-09-16 04:47:00 UTC) #6
rune
lgtm with nit https://codereview.chromium.org/1349543004/diff/1/Source/core/css/invalidation/InvalidationSet.cpp File Source/core/css/invalidation/InvalidationSet.cpp (right): https://codereview.chromium.org/1349543004/diff/1/Source/core/css/invalidation/InvalidationSet.cpp#newcode103 Source/core/css/invalidation/InvalidationSet.cpp:103: setAppliesDirectly(); The existing code did an ...
5 years, 3 months ago (2015-09-16 08:44:33 UTC) #7
esprehn
I think I'd prefer something with "self" or "root". Like invslidatesSelf or invalidateRoot.
5 years, 3 months ago (2015-09-16 08:53:54 UTC) #8
Eric Willigers
On 2015/09/16 08:53:54, esprehn wrote: > I think I'd prefer something with "self" or "root". ...
5 years, 3 months ago (2015-09-16 13:30:42 UTC) #9
Eric Willigers
https://codereview.chromium.org/1349543004/diff/1/Source/core/css/invalidation/InvalidationSet.cpp File Source/core/css/invalidation/InvalidationSet.cpp (right): https://codereview.chromium.org/1349543004/diff/1/Source/core/css/invalidation/InvalidationSet.cpp#newcode103 Source/core/css/invalidation/InvalidationSet.cpp:103: setAppliesDirectly(); On 2015/09/16 08:44:32, rune wrote: > The existing ...
5 years, 3 months ago (2015-09-16 13:32:09 UTC) #10
rune
On 2015/09/16 13:32:09, Eric Willigers wrote: > https://codereview.chromium.org/1349543004/diff/1/Source/core/css/invalidation/InvalidationSet.cpp > File Source/core/css/invalidation/InvalidationSet.cpp (right): > > https://codereview.chromium.org/1349543004/diff/1/Source/core/css/invalidation/InvalidationSet.cpp#newcode103 ...
5 years, 3 months ago (2015-09-17 07:56:27 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1349543004/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1349543004/20001
5 years, 3 months ago (2015-09-17 10:52:46 UTC) #14
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/114439)
5 years, 3 months ago (2015-09-17 12:02:21 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1349543004/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1349543004/20001
5 years, 3 months ago (2015-09-17 14:05:00 UTC) #18
commit-bot: I haz the power
5 years, 3 months ago (2015-09-17 14:09:56 UTC) #19
Message was sent while issue was closed.
Committed patchset #2 (id:20001) as
https://src.chromium.org/viewvc/blink?view=rev&revision=202449

Powered by Google App Engine
This is Rietveld 408576698