Bobby Holley
c99bcdd4b8
Run rustfmt on selectors, servo_arc, and style.
...
This was generated with:
./mach cargo fmt --package selectors &&
./mach cargo fmt --package servo_arc &&
./mach cargo fmt --package style
Using rustfmt 0.4.1-nightly (a4462d1 2018-03-26)
2018-04-10 17:35:15 -07:00
Emilio Cobos Álvarez
eaefaa890e
style: Implement the functional :host(..) selector.
...
We could invalidate in a slightly more fine-grained way, but I don't think it's
worth the churn vs. keeping the special-cases minimal.
Bug: 1452640
Reviewed-by: xidorn
MozReview-Commit-ID: 5DkQrgwg9GW
2018-04-10 08:04:09 +02:00
Emilio Cobos Álvarez
665690bba6
style: Hook in the document invalidator.
...
Bug: 1409672
Reviewed-by: xidorn
MozReview-Commit-ID: EoSMrYPS7dl
2018-01-17 18:03:16 +01:00
Xidorn Quan
d0fd92221c
Optimize selector matching for some common cases.
2018-01-17 09:46:57 +11:00
Emilio Cobos Álvarez
14661e470f
style: Add a couple FIXMEs I've noticed while working on this.
...
::slotted is hard.
2018-01-12 12:08:40 +01:00
Emilio Cobos Álvarez
b26f3280d2
style: Add invalidation support for ::slotted().
...
Bug: 1424607
Reviewed-by: heycam
MozReview-Commit-ID: 8pIVUx27o7x
2018-01-09 14:26:02 +01:00
Emilio Cobos Álvarez
dceda4465c
style: Log a bit more information about invalidation collection.
2017-11-29 19:23:53 +01:00
Emilio Cobos Álvarez
afb09536f9
style: Remove some unneeded indirections in the invalidation code.
...
MozReview-Commit-ID: 5h5SE3ieC0A
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-11-04 11:34:39 +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
931aae9760
style: Remove some unneeded indirections in the invalidation code.
...
MozReview-Commit-ID: 5h5SE3ieC0A
2017-11-03 14:18:47 +01:00
Emilio Cobos Álvarez
644b502b0d
style: Ensure QuerySelector only processes the light tree.
...
MozReview-Commit-ID: 7Nw1SEuWNaC
2017-10-23 08:27:50 +02:00
Emilio Cobos Álvarez
7f5536d5bc
style: Ensure invalidated_self is called at most once per element.
...
MozReview-Commit-ID: 1M0WuAduqun
2017-10-23 08:22:51 +02:00
Emilio Cobos Álvarez
1b32709d95
style: avoid selector refcount churn during invalidation.
...
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-10-23 08:22:49 +02:00
Emilio Cobos Álvarez
258efb70df
style: Move MatchingContext to the InvalidationProcessor.
...
This avoids threading the quirks mode and nth-index cache around, and prevents
having to thread even more arguments down for the querySelector stuff (at least
VisitedHandlingMode and the style scope).
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-10-23 08:22:48 +02:00
Emilio Cobos Álvarez
5ac0f5121e
style: Add a way to add self-invalidations to the initial collection.
...
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-10-23 08:22:47 +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
a11d268468
style: Refactor children handling.
...
Moving traversal_children away from TNode I can make TNode trivial enough, in
order to share a QuerySelector implementation between Servo and Gecko.
2017-10-17 08:57:35 +02:00
Emilio Cobos Álvarez
7c2265360f
style: Stop threading the ElementData around the invalidator.
2017-10-17 08:57:34 +02:00
Emilio Cobos Álvarez
40d9cd99b5
style: Don't require a full SharedStyleContext for TreeStyleInvalidator.
...
We only use it to get the quirks mode, and a shared style context is a pretty
heavy-weight struct.
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-10-17 08:57:33 +02:00
Emilio Cobos Álvarez
f1cc225e97
style: Use left-to-right indices in the invalidator.
...
This will make easier to create external invalidations, and also makes reasoning
about the invalidator a bit easier.
2017-10-16 08:54:00 +02:00
Emilio Cobos Álvarez
e447f819a2
style: Make InvalidationProcessor methods be &mut self.
...
This would allow querySelector / querySelectorAll to mutate the list of matched
nodes as it sees fit.
2017-10-13 12:17:02 +02:00
Emilio Cobos Álvarez
9034e6a732
style: Add a way to skip the "invalidation on eager pseudo invalidates self" bit.
2017-10-13 12:17:02 +02:00
Emilio Cobos Álvarez
9e61c1962b
style: Unify invalidated_child with invalidated_descendants.
...
I think invalidated_descendants was buggy, and this fixes it.
2017-10-13 12:17:01 +02:00
Emilio Cobos Álvarez
557353c1f6
style: Move the bounds up in InvalidationProcessor.
2017-10-13 12:17:00 +02:00
Emilio Cobos Álvarez
a5e2f2c76c
style: Isolate all the restyling related logic in the invalidator in an InvalidationProcessor trait.
...
Ditto, no change in behavior.
2017-10-13 12:17:00 +02:00
Emilio Cobos Álvarez
b9b3e592dd
style: Split the invalidation collection from the invalidator step.
...
This is the first step in reusing the invalidation machinery for other stuff,
potentially including QuerySelector / QuerySelectorAll.
2017-10-13 12:16:59 +02:00
Emilio Cobos Álvarez
5723cf7d13
style: Tweak the quirks mode while collecting invalidations in XBL stuff.
2017-10-11 11:12:58 +02:00
Emilio Cobos Álvarez
bb6ff9575d
style: Store the quirks mode directly in InvalidationCollector.
2017-10-11 11:10:39 +02:00
Emilio Cobos Álvarez
aba1cf8cd5
style: Allow passing an nth-index-cache to the invalidation code.
2017-10-02 21:02:28 +02:00
Bobby Holley
48466bf876
Introduce an NthIndexCache type and pipe it from ThreadLocalStyleContext to MatchingContext.
...
Some future refactoring here to pass fewer things as parameters would be nice.
2017-09-20 23:22:38 -07:00
Bobby Holley
50cee3e133
Eliminate RestyleData entirely.
...
Without this change, the previous commit increases the size of ElementData.
MozReview-Commit-ID: 87BZuXINiT9
2017-09-12 10:33:51 -07:00
bors-servo
122e49d516
Auto merge of #18271 - legnaleurc:propagate_dirty_bits, r=emilio
...
Propagate dirty bits after invalidation if needed.
<!-- Please describe your changes on the following line: -->
Follow up for [bug 1388298](https://bugzil.la/1388298 ).
---
<!-- 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. -->
<!-- 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/18271 )
<!-- Reviewable:end -->
2017-09-05 14:18:52 -05:00
Emilio Cobos Álvarez
cdbb5b56aa
style: Convert the visited dependentness of a dependency in a binary enum.
2017-09-05 19:43:52 +02:00
Emilio Cobos Álvarez
cc31397a2e
style: Don't waste a whole selector map for each class / id in the document.
...
It's just useless.
2017-09-05 19:43:51 +02:00
Wei-Cheng Pan
22ace048cb
Propagate dirty bits after invalidation if needed.
2017-09-04 18:21:01 +08:00
Emilio Cobos Álvarez
8c3cc9ba1f
Hook the recursive invalidation traversal up to the stack checker machinery.
...
MozReview-Commit-ID: 3tX3gHFTBT
2017-08-25 18:39:20 -07:00
Emilio Cobos Álvarez
723d31a4d8
style: Remove SharedStyleContext::quirks_mode.
2017-08-25 12:23:30 +02:00
Clément DAVID
c5fe235112
order derivable traits lists
...
Ignoring :
- **generated**.rs
- python/tidy/servo_tidy_tests/rust_tidy.rs
2017-08-23 21:38:44 +02:00
Emilio Cobos Álvarez
aa0c320f4f
style: Keep dirty bit invariants during invalidation.
...
There's the question of whether should we be recursing into the invalidation
code for elements without data... Probably not, but that's a somewhat more
risky change.
Bug: 1391444
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-08-21 17:54:12 +02:00
Emilio Cobos Álvarez
9e0dd19e7e
style: Skip state pseudo-classes when finding a pseudo-element.
...
Bug: 1391577
Reviewed-by: heycam
MozReview-Commit-ID: 1ICBijtcf2b
2017-08-20 09:12:57 +02:00
Simon Sapin
b5a4b8d6a0
Upgrade to rustc 1.21.0-nightly (13d94d5fa 2017-08-10)
2017-08-15 14:10:44 +02:00
Cameron McCormack
16937ba7cd
style: Move invalidation map into PerOriginCascadeData.
2017-08-09 19:27:53 +08:00
Emilio Cobos Álvarez
4c391ca6ba
style: Avoid exponential blowup when processing invalidations of the same kind.
...
Bug: 1383981
Reviewed-by: heycam
MozReview-Commit-ID: HZ97UwvblkQ
2017-07-27 13:03:22 +02:00
Emilio Cobos Álvarez
2d57e001aa
style: Remove bogus assertion.
...
Bug: 1381682
Reviewed-by: heycam
MozReview-Commit-ID: E6bKyBdMUue
2017-07-19 09:44:00 +02:00
Emilio Cobos Álvarez
dee4aea264
style: Remove hashes from style rules and dependencies.
...
Dependencies are very numerous, and now we shouldn't be getting so many of them.
Style rules just don't need them, so it's a waste of memory.
2017-07-13 05:44:53 +02:00
Emilio Cobos Álvarez
f8346e598e
style: Look at XBL stylists to collect dependencies too.
...
Bug: 1375969
Reviewed-By: heycam
MozReview-Commit-ID: 72wZj6o667V
2017-06-28 16:02:10 -07:00
Emilio Cobos Álvarez
215d14b37e
style: Factor out computation for a given InvalidationMap.
...
Bug: 1375969
Reviewed-By: heycam
MozReview-Commit-ID: 9qSr1LcsKK5
2017-06-28 16:02:09 -07:00
bors-servo
6b99318f55
Auto merge of #17443 - emilio:smallwat, r=SimonSapin
...
style: Don't use SmallVec::into_iter to move into another vector.
See bug 1374848 for why.
<!-- 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/17443 )
<!-- Reviewable:end -->
2017-06-22 00:14:38 -07:00
Emilio Cobos Álvarez
1572bd0948
style: Don't use SmallVec::into_iter to move into another vector.
...
See bug 1374848 for why.
2017-06-21 01:39:15 +02:00
Bobby Holley
1d242ad760
Store selectors in matching order, rather than parse order.
...
We add a slow in-place reverse during parsing to achieve this for now, which
gets fixed up later on.
MozReview-Commit-ID: 42QkOzSgV3T
2017-06-20 11:59:10 -07:00