Commit Graph

24 Commits

Author SHA1 Message Date
Bobby Holley
196912c9bf servo: Merge #20603 - Run rustfmt on selectors, servo_arc, and style (from bholley:rustfmt_style); r=Manishearth
Now that rustfmt is getting close to stable, and work on the style system has died down a bit, it seemed like an opportune time to auto-format the style crates.

The first commit disables import reordering, since tidy and rustfmt don't currently agree on the correct ordering. The second commit does a bunch of manual fixups such that the output of rustfmt passes tidy. The third commit runs rustfmt on the three aforementioned crate.

There are a few dozen warnings in the style crate about lines longer than 100 characters. It would be good to fix these, but I don't have time for that now.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9a900ef019cd643bff961d7b20db6da69f3edb29
2018-04-10 21:00:11 -04:00
Emilio Cobos Álvarez
ce3f293edd servo: Merge #20243 - style: add infrastructure to match the :host selector (from emilio:host-selector-on-the-way); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 148beb4ea5f8f1680e694ac48045a632da58269c
2018-03-14 10:38:45 -04:00
Emilio Cobos Álvarez
5dec67e627 servo: Merge #20117 - style: Somewhat miscelaneous cleanup (from emilio:misc-cleanup); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: bbfca28a4f3770896955375d01f1c489b4632fd3
2018-02-24 17:28:20 -05:00
Emilio Cobos Álvarez
cc2fd57c81 servo: Merge #19878 - selectors: Never match ::slotted on <slot>s (from emilio:slotted-slot); r=nox
This fixes the test from https://github.com/w3c/web-platform-tests/pull/9212 in
Gecko.

Source-Repo: https://github.com/servo/servo
Source-Revision: 82922c97dc0313736fedb8021b205d4f84088a15
2018-01-29 11:45:11 -06:00
Emilio Cobos Álvarez
9c27e80a90 servo: Merge #19817 - style: Track the visited-handling-mode on the MatchingContext (from emilio:matching-context-visited); r=nox
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.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0d7d02fca772a407d4ffa1ebd1e03d60f385eb74
2018-01-19 12:50:00 -06:00
Simon Sapin
71e6c25a65 servo: Merge #19751 - Clean up the selectors crate for a new crates.io release (from servo:selectors); r=bholley
Source-Repo: https://github.com/servo/servo
Source-Revision: 6ca651c0c8271ce185448e1db95b893a276eaed9
2018-01-12 16:55:12 -06:00
Emilio Cobos Álvarez
60802af130 servo: Merge #19541 - selectors: Add parsing support for ::slotted() (from emilio:parse-slotted); r=heycam
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.

Source-Repo: https://github.com/servo/servo
Source-Revision: f5129ef7b5efa59a176cac98dc68d910cb3279c9
2017-12-14 00:22:45 -06:00
Emilio Cobos Álvarez
49bf5fbc7a servo: Merge #19520 - selectors: Simplify :visited by only using the "is inside link" information (from emilio:simplify-visited); r=jryans
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.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7a8733723551201d2c06acde9b0915b4c03938b4
2017-12-08 17:37:32 -06:00
Emilio Cobos Álvarez
e0c0ac2b2c servo: Merge #18934 - style: Make MatchingContext generic over SelectorImpl (from emilio:matching-context-generic); r=xidorn,heycam
This will help Xidorn implement tree pseudos, and in general makes sense,
allowing to put specific matching data in a selectors implementation.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6268f482084179ed54e63028da038ae39c947359
2017-10-19 05:43:51 -05:00
Emilio Cobos Álvarez
cd1986fd76 servo: Merge #18876 - style: Do not expose LocalMatchingContext (from emilio:die-localmatchingcontext-die); r=SimonSapin
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.

Also, this makes the hover and active quirk work in Servo with no extra effort.

Source-Repo: https://github.com/servo/servo
Source-Revision: a200fb4b9df4e7461b4238fe3a6d49881f438e25
2017-10-15 02:21:47 -05:00
Bobby Holley
9fdac01539 servo: Merge #18595 - Implement an nth-index cache (from bholley:nth_index_cache); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1334730

Source-Repo: https://github.com/servo/servo
Source-Revision: be9c8ec07a0ca745adf1b412d32b3b32adec122c
2017-09-21 18:10:05 -05:00
Ting-Yu Lin
ddd5850e35 servo: Merge #18104 - style: Skip matching :nth-child if element is the root of anonymous subtree (from aethanyc:fix-nth-child-xbl-bug1382102); r=emilio
This was reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1382102

Source-Repo: https://github.com/servo/servo
Source-Revision: 24270f93571e0a1254d402f1c897bcc1ebbbd459
2017-08-16 01:47:46 -05:00
cku
4f3dabfb09 servo: Merge #17427 - Stylo: Correct style match for element instances under a use-element … (from CJKu:cku-master); r=emilio
<!-- Please describe your changes on the following line: -->
This patch is the last one of bug 265894.
It fixes two things:
1. Do not cross shadow tree boundary while matching rules.
2. Change display value to 'inline' while cloning a root symbol element instance.

Bugzilla link:
https://bugzilla.mozilla.org/show_bug.cgi?id=265894
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: b2549bb6c4e512f3fcad9c450908616a1a8d1b5b
2017-06-20 05:17:45 -07:00
Simon Sapin
920407d98b servo: Merge #17213 - ID and class selectors are ASCII case-insensitive in quirks mode (from servo:quirk-case); r=bholley
https://bugzilla.mozilla.org/show_bug.cgi?id=1363778

Source-Repo: https://github.com/servo/servo
Source-Revision: 1b077303237d5ecb8307f866e9172d0d8e6b132d
2017-06-12 15:52:29 -07:00
Nazım Can Altınova
fdc4430a61 servo: Merge #17266 - stylo: Support :active and :hover quirk (from canaltinova:active_hover_quirk); r=bholley,emilio
Reviewed by bholley and emilo on the bugzilla bug.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1355724](https://bugzilla.mozilla.org/show_bug.cgi?id=1355724)

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: ddfe8b0468dcd57cc5f98cca5c5ba31134c04719
2017-06-10 12:25:59 -07:00
J. Ryan Stinnett
a5c7bf0aa5 servo: Merge #17212 - Stylo: Visited selectors for nested links (from jryans:visited-selectors); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1370358

Source-Repo: https://github.com/servo/servo
Source-Revision: 0934df77fdbddcb6ae1534e3c1a150272aea73b2
2017-06-07 12:49:34 -07:00
J. Ryan Stinnett
6ae7120459 servo: Merge #17032 - Stylo: visited pseudo-class support (from jryans:stylo-visited); r=emilio
Reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1328509

Source-Repo: https://github.com/servo/servo
Source-Revision: 1f323f8848e47b01779de5145dd21d0f74ed16ca
2017-05-24 19:53:48 -05:00
Simon Sapin
70fe8c63b4 servo: Merge #16915 - Shrink selectors::Component, implement attr selector (in)case-sensitivity (from servo:attr-selectors); r=nox,emilio
* https://bugzilla.mozilla.org/show_bug.cgi?id=1364148
* https://bugzilla.mozilla.org/show_bug.cgi?id=1364162
* https://bugzilla.mozilla.org/show_bug.cgi?id=1363531
* Fixes #3322

Source-Repo: https://github.com/servo/servo
Source-Revision: 640b16634f2828bad46ab6d78e785dfc2025ab46
2017-05-18 18:45:20 -05:00
Emilio Cobos Álvarez
b01ac2f972 servo: Merge #16900 - Bug 1364850: Move PseudoElement to be just another combinator in selectors. r=bholley (from emilio:pseudos); r=bholley
On top of https://github.com/servo/servo/pull/16890.

Source-Repo: https://github.com/servo/servo
Source-Revision: d8b7013fcddff79a9c879077e1a564d83201359c
2017-05-17 05:40:14 -05:00
J. Ryan Stinnett
ff170d36c5 servo: Merge #16872 - Create a MatchingContext to group related matching args (from jryans:matching-context); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1364914

Upcoming changes for visited support and others as well need to pass more args through matching, so this creates a MatchingContext to group them together.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7f6b28e241e58944f1e11826094776446965ca64
2017-05-16 09:45:36 -05:00
Emilio Cobos Álvarez
b96bb79541 servo: Merge #16077 - Bug 1345950: stylo: Fix slow selector flags. r=bholley (from emilio:slow-flags); r=bholley
Source-Repo: https://github.com/servo/servo
Source-Revision: 545f8744126157d273158c5404d07fb09621d3ea
2017-03-22 03:23:51 -07:00
Matt Brubeck
ffc5796ae9 servo: Merge #15966 - Bug 1340683 - stylo: Implement the :-moz-any pseudo-class (from mbrubeck:any); r=emilio
Adds support for the non-standard [:-moz-any](https://developer.mozilla.org/en-US/docs/Web/CSS/:any) selector.

---

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix https://bugzilla.mozilla.org/show_bug.cgi?id=1340683
- [x] These changes do not require tests because they are gecko-only

Source-Repo: https://github.com/servo/servo
Source-Revision: 0a747e23c6adc1b49c2861bbf7e2969c62dc2c47
2017-03-16 16:19:12 -07:00
Bobby Holley
3fcc873d0e servo: Merge #15462 - Accumulate parent elements that need selector bits set on the ThreadLocalStyleContext (from bholley:accumulate_selector_flags); r=emilio
Discussion and review in https://bugzilla.mozilla.org/show_bug.cgi?id=1336646

Source-Repo: https://github.com/servo/servo
Source-Revision: cbfd4464270f8690b90b9b96c395523a3a39e2de
2017-02-08 19:33:27 -08:00
Bobby Holley
127601ea2d servo: Merge #15447 - Move rust-selectors into servo/servo (from bholley:in_tree_selectors); r=SimonSapin
See the thread at [1].

[1] https://groups.google.com/d/msg/mozilla.dev.servo/iHykieVC5SM/Z31_n0agBAAJ

Source-Repo: https://github.com/servo/servo
Source-Revision: 8aec1ccdd22145df0ca7bb9456b40b3175fc5992
2017-02-08 16:06:06 -08:00