DescriptionAvoid resetting rule features when removing style-less shadow.
We reset the global rule features when removing a shadow root from the
tree. There is no reason to do that if the scope does not contain style,
so we'll skip the reset when there is no ScopedStyleResolver.
In particular, this can be the case for UA shadow roots. For the case
where the scope contains style, this will be fixed by componentized style
resolving.
What occurs in issue 499349 is:
1. Remove a form child which is an input with a UA shadow root.
2. Removing the root causes rule features to be reset globally.
3. Removing an input child of a form requires a validity check.
4. The validity check schedules an invalidation for :valid etc.
5. Scheduling invalidation sets require an up-to-date rule feature set
which includes invalidation sets, so the rule features are collected.
1-5 is repeated for each removed input. The global feature collection in
step 5 is the expensive part here.
R=tkent@chromium.org,esprehn@chromium.org
BUG=499349
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=197204
Patch Set 1 #
Messages
Total messages: 5 (1 generated)
|