LibWeb: Skip unneeded style invalidation on custom element state change

If there are no :defined pseudo-class selectors anywhere in the
document, we don't have to invalidate style at all when an element's
custom element state changes.
This commit is contained in:
Andreas Kling 2024-12-25 00:52:36 +01:00 committed by Andreas Kling
commit f45e24864b
Notes: github-actions[bot] 2024-12-25 12:27:53 +00:00
3 changed files with 14 additions and 1 deletions

View file

@ -2266,7 +2266,9 @@ void Element::set_custom_element_state(CustomElementState state)
if (m_custom_element_state == state)
return;
m_custom_element_state = state;
invalidate_style(StyleInvalidationReason::CustomElementStateChange);
if (document().style_computer().has_defined_selectors())
invalidate_style(StyleInvalidationReason::CustomElementStateChange);
}
// https://html.spec.whatwg.org/multipage/dom.html#html-element-constructors