Update bitflags to 1.0 in every servo crate
It still needs dependencies update to remove all the other bitflags
versions.
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because it's a dependency update
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18809)
<!-- Reviewable:end -->
This type is a lot of complexity related to a very specific thing such as the
hover and active quirk.
Instead of that, move `nesting_level` to `MatchingContext`, and simplify all
this computing whether the quirk applies upfront, for each complex selector we
test.
This is less error-prone, and also allows simplifying more stuff in a bit.
This fixes the fishy TransitionProperty mapping which I complained about in my
previous refactor.
Turns out that those properties could only be longhands, and thus the expansion
we did before that (and which I removed) was correct.
This fixes the bug by moving back to the previous correct behavior but using the
correct types.
The optimization to avoid creating a HashSet if we're transitioning all
properties or had no existing transition is removed since now we're creating a
LonghandIdSet, which is cheap, and that was only a performance optimization.
This only matters for document level NAC like canvas custom content, in which
case otherwise we inherit from the document element (which is wrong).
Bug: 1405635
We have three different enums to represent slightly different things. Reuse them
properly, and kill some code in the animated_properties module while at it.
MozReview-Commit-ID: 5ZAly8f4lWy
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
<applet> is not a thing anymore, and that selector in our UA sheet will never
match anyway, since an <applet> element will never have the BROKEN state.
Bug: 1396073
Reviewed-by: xidorn
MozReview-Commit-ID: 7UOMKOv55uJ
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
This avoids grabbing the document when values that inherit from the body,
whatever that means, aren't under the body.
In that case we'll get a semi-random value, but that's also mishandled by Gecko
anyways (and probably Blink, though haven't tested), and doesn't really make
much sense.
This avoids grabbing the document when values that inherit from the body,
whatever that means, aren't under the body.
In that case we'll get a semi-random value, but that's also mishandled by Gecko
anyways (and probably Blink, though haven't tested), and doesn't really make
much sense.
Stylo is currently skipping parent display-based style fixups for all NAC,
whereas we probably only want to do this for NAC roots.
In this patch, we ensure that we skip it for NAC roots, and pseudo-elements,
but not other NAC.
The only reason why we had the `existing_style_for_style_damage` bit is to apply
some optimizations that we don't have anymore.
I still want to reintroduce a few of them, at least for the non-eager
pseudo-element case... But I think I won't need this at all.
This allows us to remove a fair amount of Gecko code too.