Open Bug 1845503 Opened 10 months ago Updated 5 months ago

:has Bloom Filter Performance Improvement - Special Handling for `:hover`, `:focus`

Categories

(Core :: CSS Parsing and Computation, enhancement)

enhancement

Tracking

()

People

(Reporter: dshin, Unassigned)

References

(Blocks 1 open bug)

Details

No description provided.
Blocks: has-pseudo

On top of :has(:hover) and :has(:focus) (*) (:has(:focus-visible)) in the subject, does this issue include support for the rest of dynamic pseudo classes like

  • :has(:checked),
  • :has(:active),
  • :has(:target), :has(:target-within),
  • :has(:valid), :has(:invalid), :has(:user-invalid), :has(:indeterminate), :has(:blank), :has(:in-range), :has(:out-of-range),
    and generally the rest of all Pseudo-classes (with exceptions like :has(:has()) that is AFAIK forbidden by spec and few that does not makes sense like :has(:root))?

Does it also include general dynamic subtree (sibling tree) changes, like :has(.some-dynamically-added-class) or `:has(some-element-added-later)?


(*) :has(:focus) it will technically become alias of :focus-within, right?

(In reply to Michal Čaplygin [:myf] from comment #1)

On top of :has(:hover) and :has(:focus) (*) (:has(:focus-visible)) in the subject, does this issue include support for the rest of dynamic pseudo classes like

  • :has(:checked),
  • :has(:active),
  • :has(:target), :has(:target-within),
  • :has(:valid), :has(:invalid), :has(:user-invalid), :has(:indeterminate), :has(:blank), :has(:in-range), :has(:out-of-range),
    and generally the rest of all [Pseudo-classes] (with exceptions like :has(:has()) that is AFAIK forbidden by spec and few that does not makes sense like :has(:root))?

Does it also include general dynamic subtree (sibling tree) changes, like :has(.some-dynamically-added-class) or `:has(some-element-added-later)?

Ah, this bug has to do with the internal detail of using Bloom filter to speed up matching, rather than handling them correctly.
General support for handling :has invalidations, i.e. restyling on things inside :has changing, is being handled as part of bug 1792501.

(*) :has(:focus) it will technically become alias of :focus-within, right?

There's currently no plan to do so, though, though aliasing like that could be better for performance, etc., perhaps.

Summary: :has Bloom Improvement - Special Handling for `:hover`, `:focus` → :has Bloom Filter Performance Improvement - Special Handling for `:hover`, `:focus`
You need to log in before you can comment on or make changes to this bug.