On Wednesday 2015-02-11 15:05 -0800, Benjamin Poulain wrote:
> On 2/11/15 2:57 PM, Tab Atkins Jr. wrote:
> >On Thu, Feb 12, 2015 at 9:52 AM, Benjamin Poulain <benjamin@webkit.org> wrote:
> >>On 2/11/15 2:47 PM, Tab Atkins Jr. wrote:
> >>>The problem with "giving people enough rope to hang themselves" is
> >>>when the mere existence of the feature slows down or complexifies the
> >>>engine as a whole, regardless of whether it's used.
> >>
> >>Can you explain this? Why is that the case?
> >
> >Because being able to handle style invalidations from arbitrarily high
> >up in the tree prevents simplifications that assume that can't happen;
> >at minimum, it probably adds branches in the code which can have
> >measurable perf effects.
>
> There is nothing special about this case. Such invalidation already happen
> for :valid/:invalid and soon for :focus-within.
Those pseudo-classes can be managed separately from general selector
matching -- for example, :valid and :invalid are tracked by code
managing form validity, which knows about mappings between controls
and forms, and can make the form :valid or :invalid based on those
mappings, rather than having to do general selector matching.
:focus-within can be done the same way.
-David
--
𝄞 L. David Baron http://dbaron.org/ 𝄂
𝄢 Mozilla https://www.mozilla.org/ 𝄂
Before I built a wall I'd ask to know
What I was walling in or walling out,
And to whom I was like to give offense.
- Robert Frost, Mending Wall (1914)