Emilio Cobos Álvarez
e74fad6259
style: Handle correctly document state invalidation inside negation.
2018-01-20 02:10:57 +01:00
bors-servo
0d7d02fca7
Auto merge of #19817 - emilio:matching-context-visited, r=nox
...
style: Track the visited-handling-mode on the MatchingContext.
This fixes bugs where we're not passing the value around correctly, like from
::-moz-any.
This is a fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1431539 .
<!-- 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/19817 )
<!-- Reviewable:end -->
2018-01-19 12:50:00 -06:00
Emilio Cobos Álvarez
9f00a2fdc0
selectors: add an is_nested method to MatchingContext, instead of nesting_level.
2018-01-19 13:32:44 +01:00
Emilio Cobos Álvarez
8e25c9e674
style: Track the visited-handling-mode on the MatchingContext.
...
Instead of on the stack.
This fixes bugs where we're not passing the value around correctly, like from
::-moz-any.
This is a fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1431539 .
2018-01-19 13:22:37 +01:00
Emilio Cobos Álvarez
e4f08ee2bb
selectors: Add a MatchingContext::nest function, make nesting_level private.
2018-01-19 12:40:17 +01:00
Emilio Cobos Álvarez
88d2982e23
style: Convert matches_hover_and_active_quirk to an enum.
...
This is in preparation of a bit of refactoring in selectors too.
2018-01-19 12:18:54 +01:00
Emilio Cobos Álvarez
bbe7ff86da
selectors: Simplify SelectorIter::next.
2018-01-18 23:50:03 +01:00
Xidorn Quan
d0fd92221c
Optimize selector matching for some common cases.
2018-01-17 09:46:57 +11:00
Simon Sapin
befadc563a
Prepare to publish selectors 0.19.0 to crates.io
2018-01-12 18:13:50 +01:00
Simon Sapin
358bac953d
Move Visit trait bounds to where they’re needed
2018-01-12 15:44:07 +01:00
Simon Sapin
1a6010f19f
Document selectors::Visit
2018-01-12 15:40:16 +01:00
Simon Sapin
c14b766ff5
Rename SelectorMethods to Visit, after its one method.
2018-01-12 15:26:56 +01:00
Simon Sapin
79f93cfb5b
The selectors crate has had many contributors
2018-01-12 15:11:00 +01:00
Simon Sapin
116a6de59c
Make OpaqueElement’s field private.
...
It’s not used anywhere, and this reduces the public API surface.
2018-01-12 15:11:00 +01:00
Simon Sapin
7d1dc7286a
Move selectors size_of tests to Stylo tests
2018-01-12 15:10:56 +01:00
Simon Sapin
5d920df460
Move PrecomputedHash bounds to where they’re actually needed.
2018-01-12 15:10:47 +01:00
Simon Sapin
b0003f77e4
Prepare servo_arc for publication on crates.io
2018-01-12 15:10:44 +01:00
Simon Sapin
5a82a1d455
Reverse the dependency between selectors and malloc_size_of
2018-01-12 15:10:04 +01:00
Simon Sapin
0929f72709
Re-enable selectors doctests
...
Closes #16710 , which was actually fixed by
6dff251e35
in #19395 .
This exercises that fix.
Green AppVeyor build: https://ci.appveyor.com/project/servo/servo/build/1.0.24124
2018-01-12 14:42:38 +01:00
Emilio Cobos Álvarez
335ca47361
style: Use Default for ExtraStyleData instead of Option.
2018-01-12 12:08:47 +01:00
Emilio Cobos Álvarez
1e27f2883b
selectors: Allow defining an implementation-dependent field in the matching context.
2018-01-12 12:08:38 +01:00
Emilio Cobos Álvarez
5115cbd1c0
style: Store ::slotted rules separately on the cascade data, since they may cross the shadow boundary.
...
MozReview-Commit-ID: EY9nK3169vv
2018-01-09 14:26:02 +01:00
Emilio Cobos Álvarez
b556ddbf55
style: Don't support a list of selectors in ::slotted yet.
...
Bug: 1425757
Reviewed-by: xidorn
MozReview-Commit-ID: G0I0gM2sWTh
2017-12-20 15:55:09 +01:00
bors-servo
370f5acf6d
Auto merge of #19558 - emilio:sadness, r=heycam
...
selectors: Manually inline any(..) in matches_selector_list.
Since the compiler refuses to inline the inner closure even with -O3, which is
sad :(.
Sad try run:
https://treeherder.mozilla.org/perf.html#/compare?originalProject=try&originalRevision=c2724c47e98f990826327da05220cd83b772d144&newProject=try&newRevision=52ac88b40a08a5ef6a629bd681f2e5a444b75f54&framework=1
<!-- 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/19558 )
<!-- Reviewable:end -->
2017-12-14 10:19:23 -06:00
Emilio Cobos Álvarez
ddd3d126e9
selectors: Manually inline any(..) in matches_selector_list.
...
Since the compiler refuses to inline the inner closure even with -O3, which is
sad :(.
Sad try run:
https://treeherder.mozilla.org/perf.html#/compare?originalProject=try&originalRevision=c2724c47e98f990826327da05220cd83b772d144&newProject=try&newRevision=52ac88b40a08a5ef6a629bd681f2e5a444b75f54&framework=1
2017-12-14 06:32:48 +01:00
Emilio Cobos Álvarez
7886e033aa
selectors: Add parsing support for ::slotted().
...
Without turning it on yet, of course.
The reason why I didn't use the general PseudoElement mechanism is because this
pseudo is a bit of its own thing, and I found easier to make ::selectors know
about it (because you need to jump to the assigned slot) than the other way
around.
Also, we need to support ::slotted(..)::before and such, and supporting multiple
pseudo-elements like that breaks some other invariants around the SelectorMap,
and fixing those would require special-casing slotted a lot more in other parts
of the code.
Let me know if you think otherwise.
I also don't like much the boolean tuple return value, but I plan to do some
cleanup in the area in a bit, so it should go away soon, I'd hope.
2017-12-14 06:28:11 +01:00
bors-servo
c6bf85eca9
Auto merge of #19536 - emilio:compound-selector-list, r=mbrubeck
...
style: Move the code to parse a list of compound selectors.
I'll need this for ::slotted().
<!-- 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/19536 )
<!-- Reviewable:end -->
2017-12-09 17:15:14 -06:00
Emilio Cobos Álvarez
b1f25a2b1f
style: Move the code to parse a list of compound selectors.
...
I'll need this for ::slotted().
2017-12-09 16:47:37 +01:00
Emilio Cobos Álvarez
bf564e0238
style: Simplify naming and signatures of single-colon pseudo stuff.
...
Also drop a few FIXMEs while at it, since they look bogus.
2017-12-09 16:12:22 +01:00
Emilio Cobos Álvarez
3119db724a
selectors: Simplify :visited by only using the "is inside link" information.
...
Right now we go through a lot of hoops to see if we ever see a relevant link.
However, that information is not needed: if the element is a link, we'll always
need to compute its visited style because its its own relevant link.
If the element inherits from a link, we need to also compute the visited style
anyway.
So the "has a relevant link been found" is pretty useless when we know what are
we inheriting from.
The branches at the beginning of matches_complex_selector_internal were
affecting performance, and there are no good reasons to keep them.
I've verified that this passes all the visited tests in mozilla central, and
that the test-cases too-flaky to be landed still pass.
2017-12-08 05:35:12 +01:00
Emilio Cobos Álvarez
e4bb3a102e
style: Remove useless type parameter.
2017-12-08 02:56:02 +01:00
Bastien Orivel
6f8ba39dce
Update smallvec to 0.6
2017-12-05 12:03:20 +01:00
Emilio Cobos Álvarez
ea5efd9e2f
style: Update cssparser to 0.23.
2017-12-05 10:01:37 +01:00
bors-servo
006202732f
Auto merge of #19195 - wilsoniya:issue-16840, r=emilio
...
style: :dir() pseudo class now represented by enum
`:dir()` pseudo class param now represented as enum variants.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #16840
- [X] There are tests for these changes
<!-- 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/19195 )
<!-- Reviewable:end -->
2017-11-21 02:56:49 -06:00
Cameron McCormack
523ffd587d
selectors: Allow white space in the brackets of an attribute selector.
2017-11-18 14:47:33 +08:00
Michael Wilson
10f3ef42bb
style: :dir() pseudo class now represented by enum
...
Fixes #19195
2017-11-15 18:12:44 -08:00
Emilio Cobos Álvarez
28c04278e1
style: Sprinkle some inline in trivial methods.
...
These methods are instantiated by the Gecko library, and used during
querySelector, which means that they end up being super-hot in micro-benchmarks.
MozReview-Commit-ID: K1XJb0QyX5a
2017-11-15 13:45:32 +01:00
Simon Sapin
954b2cc3d8
Allow unused imports for AsciiExt in style code.
...
See #19128 , this part is cherry-picked so Gecko can build with rust nightly.
2017-11-09 12:43:23 +01:00
Emilio Cobos Álvarez
18ac41fe87
style: Inline a bunch of stuff, fixup indentation of a couple things.
...
MozReview-Commit-ID: CgUNMeBDOCw
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-11-04 11:34:40 +01:00
Gecko Backout
8f8fd517ed
Backed out changeset dbd300f4d75b for build bustage. r=backout on a CLOSED TREE
...
Backs out https://github.com/servo/servo/pull/19108
2017-11-03 23:56:42 +00:00
Emilio Cobos Álvarez
bcc9c62620
style: Inline a bunch of stuff, fixup indentation of a couple things.
...
MozReview-Commit-ID: CgUNMeBDOCw
2017-11-03 14:18:49 +01:00
Bastien Orivel
29b4eec141
Bump bitflags to 1.0 in every servo crate
2017-10-30 23:36:06 +01:00
Emilio Cobos Álvarez
2b94c79d5a
style: inline a local-variable which is no longer used more than once.
2017-10-26 18:31:03 +02:00
Emilio Cobos Álvarez
529f33eb6f
selectors: Be consistent about how we get next elements for selector-matching.
...
This fixes bug 1412011.
MozReview-Commit-ID: JgLoBNjA3m8
2017-10-26 18:24:07 +02:00
Emilio Cobos Álvarez
22dc480272
selectors: Deindent some selector-matching code.
...
MozReview-Commit-ID: B0ixSTcRS4S
2017-10-26 18:23:06 +02:00
Emilio Cobos Álvarez
191c39f28c
style: Make invalidations with offset zero "universal" invalidations.
...
We'll use this for querySelector / querySelectorAll.
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-10-23 08:22:46 +02:00
Emilio Cobos Álvarez
e1aa829d67
selectors: Reformat signatures in the parser module.
...
I was doing something unrelated with this code, and each signature uses a
different style. This PR unifies them.
2017-10-22 16:33:04 +02:00
bors-servo
5ab0ac1620
Auto merge of #18971 - mbrubeck:var, r=emilio
...
Use env::var_os to read paths from the environment
This avoids unnecessary UTF-8 validation on OsStrings that we just pass
back to the OS.
---
- [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 they are code cleanup only
<!-- 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/18971 )
<!-- Reviewable:end -->
2017-10-21 08:09:22 -05:00
Matt Brubeck
c169f52b25
Use env::var_os to read paths from the environment
...
This avoids unnecessary UTF-8 validation on OsStrings that we just pass
back to the OS.
2017-10-20 09:03:21 -07:00
Xidorn Quan
2dc714f0ac
Implement XUL tree pseudo style resolution for stylo.
2017-10-20 14:08:56 +11:00