Commit graph

89 commits

Author SHA1 Message Date
Emilio Cobos Álvarez
ae76578b49 servo: Merge #17688 - style: Split style resolution and dynamic change computation (from emilio:split-style-resolution); r=heycam,BorisChiou
This is the Servo side of Mozilla bug 1379505.

Source-Repo: https://github.com/servo/servo
Source-Revision: 16d6dc133b40a5d48e33b1f8e2aeafa88e36a6e3

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 83b8dd3ca19e1436b65f1b3d5a019c2ac4324def
2017-07-12 00:28:44 -07:00
Bobby Holley
cdffee1b35 servo: Merge #17602 - Use GC machinery rather than recursion for post-rule-tree-teardown node dropping (from bholley:rule_tree_custom_gc); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1378005

Source-Repo: https://github.com/servo/servo
Source-Revision: 006037f79839b94ae6a2db01919976c47d1589b5

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 0c1dee776d1e6fea458bc381653af9aac8fc392d
2017-07-04 13:44:52 -07:00
Bobby Holley
7f1609d841 servo: Merge #17585 - Allow dropping rule nodes after rule tree teardown (from bholley:rule_tree_teardown); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1377010

Source-Repo: https://github.com/servo/servo
Source-Revision: 78f05bf593d98acfd8e20eb79b6aeb9a4c386b2a

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 2129b073f779372ddf7610ae7f9390d0ca27f32f
2017-06-30 23:36:50 -07:00
J. Ryan Stinnett
d605e3dc6d servo: Merge #17481 - Stylo: Move match and cascade temporaries to CurrentElementInfo (from jryans:move-rule-node); r=bholley
https://bugzilla.mozilla.org/show_bug.cgi?id=1370719

Source-Repo: https://github.com/servo/servo
Source-Revision: 9ba71fcd57bd8aef7977f09b0f095aa51796c1b3

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 2ca8a42570127cf787f3a77f23511391fa104dc7
2017-06-22 17:46:55 -07:00
Emilio Cobos Álvarez
45787e3da4 servo: Merge #17443 - style: Don't use SmallVec::into_iter to move into another vector (from emilio:smallwat); r=SimonSapin
See bug 1374848 for why.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6b99318f552c1561392208efd9030d0b4a6f91d1

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 27123c796e94135b62aae6b5669017cbdd5e3c49
2017-06-22 00:14:38 -07:00
Ting-Yu Lin
4c8856f6c7 servo: Merge #17426 - stylo: Fix has_author_specified_rules() for rules in XBL stylesheets (from aethanyc:fix-has-author-specified-rules-xbl); r=heycam
This change is reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1372062

Source-Repo: https://github.com/servo/servo
Source-Revision: a7ac9214f2b3e6c5a2b9786aebf9073ce4531bc4

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : d3dcde327caf92964da7283466ca01cc3a645769
2017-06-20 02:05:08 -07:00
Brian Lewis
3bb211dfa3 servo: Merge #17404 - Shrink rulenode (from zuwow:shrink-rulenode); r=bholley
This shrinks rulenode by one word by removing the Option wrapper around the StyleSource and adding None to StyleSource as an additional variant. The issue mentions shrinking by two words but the free_count one was taken care of in #17368.

---
<!-- 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 #17280

Also tested with `./mach test-unit` and `./mach test-stylo` with no errors reported from either.

<!-- Either: -->
- [X] There are tests for these changes

<!-- 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. -->

r? @bholley

Source-Repo: https://github.com/servo/servo
Source-Revision: d700a301d3a34c898e1b32b18595f1e9a8000ab6

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : e614566a740d74d69290a142d320684514e14072
2017-06-19 15:30:21 -07:00
Bobby Holley
49d6c9f1bf servo: Merge #17368 - Rule tree gc never runs until teardown (from bholley:rule_tree_gc); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1373725

Source-Repo: https://github.com/servo/servo
Source-Revision: 2a856edf57dcad7e65861ffe12f5aae16db3aa9c

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 53920fd4c3e7a5a2921718f0085c22f28629d037
2017-06-16 14:13:38 -07:00
Emilio Cobos Álvarez
119222a345 servo: Merge #17294 - style: Less refcount churn while inserting in the rule tree (from emilio:less-refcount-churn); r=bholley
There's no need for it since we know no GC is happening while we're doing it.

Source-Repo: https://github.com/servo/servo
Source-Revision: 849bdc958c1aff230d308ecb5551aba4866dbf7a

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : d9eea0d8018c715c93d66646ac4d0e0a841533cb
2017-06-13 13:01:16 -07:00
Bobby Holley
b3cb44a9da servo: Merge #17281 - Pack bloom filter hashes better and save a word on Rule (from bholley:shrink_rule_again); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1371949

Source-Repo: https://github.com/servo/servo
Source-Revision: 75d6796cbd1274c3711472d1a8b728c3cf6ac70c

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 0676bb1f079485e8e8c734a9d83f3ed120a1f26d
2017-06-12 12:41:39 -07:00
Ting-Yu Lin
95ea4c3c55 servo: Merge #17221 - stylo: Get rules from Gecko XBL stylesheets in cascading (Bug 1290276) (from aethanyc:support-xbl-stylesheet); r=heycam
The change was reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1290276

Source-Repo: https://github.com/servo/servo
Source-Revision: 433b7bf9fab0fb4cd35bcb01670a14da903498a2

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : e6a70e513cff1bf22f96918df497f9a704110470
2017-06-08 00:19:27 -07:00
Xidorn Quan
adad1a1d17 servo: Merge #17219 - Support interpolation between currentcolor and numeric color (from upsuper:currentcolor); r=Manishearth,birtles
This is the Servo side change of [bug 1345709](https://bugzilla.mozilla.org/show_bug.cgi?id=1345709).

Source-Repo: https://github.com/servo/servo
Source-Revision: 24e944ad94816e607e833e34095c4f8b8136df4c

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 9bd6680c1a980543f2ebfc191186cc8d88fb075c
2017-06-07 21:03:52 -07:00
Bobby Holley
872395f116 servo: Merge #17197 - Force the NonZero optimization for servo_arc and StrongRuleNode (from bholley:nonzero_arc); r=Manishearth
https://bugzilla.mozilla.org/show_bug.cgi?id=1370711

Also addressing followup feedback from https://bugzilla.mozilla.org/show_bug.cgi?id=1370107

Source-Repo: https://github.com/servo/servo
Source-Revision: ffc47e89b3192c9e285dec4a0def52514c3024d6

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : ff7fe886435256279ddf40354eca2dc178fb4a44
2017-06-06 22:42:42 -07:00
Emilio Cobos Álvarez
7b2d94daee servo: Merge #17063 - style: Allow sharing styles across elements with presentational hints (from emilio:pres-hints-sharing); r=bholley
Source-Repo: https://github.com/servo/servo
Source-Revision: 38a6a3bff6f6e0e35eb592891d5e70e7cb897b69

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 5c6316d592dfa5ef57e7fc03f4c5211cbbc1b1d7
2017-05-30 07:28:06 -05:00
Brian Birtles
49ca3776b1 servo: Merge #17050 - Fix calculation of base styles to drop animation rules (from birtles:fix-base-styles); r=hiro
It seems that changeset 97ce9ed5b08f7b1c7c6cd71a9499068b8bd2ae4e mistakenly changed the check that a cascade level to keep is *not* an animation level to a check that it *is* an animation level.

This patch has been reviewed by @hiikezoe in [Mozilla bug 1367960](https://bugzilla.mozilla.org/show_bug.cgi?id=1367960).

Source-Repo: https://github.com/servo/servo
Source-Revision: 531fd12e132ecc4c092080267ea6fbc35d94c69f

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 9aaa557db97fdb121d0207653c69027ea53a8f82
2017-05-26 07:34:16 -05:00
J. Ryan Stinnett
e66e02c633 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

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 3599f6577ed3737bb4715be05528090712871f0b
2017-05-24 19:53:48 -05:00
Manish Goregaokar
1e42308ff1 servo: Merge #17027 - Rollup of 9 pull requests (from Manishearth:rollup); r=Manishearth
- Successful merges: #16993, #17000, #17010, #17013, #17014, #17017, #17019, #17020, #17022
- Failed merges:

Source-Repo: https://github.com/servo/servo
Source-Revision: 8ae546f7ea158466441987d4a86c5c440f0a5e00

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 5faf09bc26989c32da2c1962bfcd6cdef511077f
2017-05-24 16:08:02 -05:00
Emilio Cobos Álvarez
6edce05b77 servo: Merge #16974 - style: Minor cleanups in the rule tree code (from emilio:rule-tree-cleanup); r=heycam
Source-Repo: https://github.com/servo/servo
Source-Revision: df9286d67c51f7598862a275ebcf874eb83ec151

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 0faedde1542dcd9676362ca0618d4b3998561cd5
2017-05-24 07:12:25 -05:00
Boris Chiou
240f3de631 servo: Merge #16963 - stylo: Bug 1334036 - Enable animations running on compositor (from BorisChiou:stylo/animation/omta); r=emilio
These are interdependent patches of Bug 1334036, which enables off-main thread animations. We add one FFI to get the property id set which overriding animations, so we can make sure the cascade result is correct for off-main thread animations.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1334036](https://bugzilla.mozilla.org/show_bug.cgi?id=1334036)
- [X] These changes do not require tests because we support off-main thread animation only on Gecko, and there are enough test cases there.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5a012cc9b15890fe8ad132e941d8f896b405472c

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : f72aef04d69022c20bedbbb075d1385bfd15729a
2017-05-20 07:24:21 -05:00
Emilio Cobos Álvarez
775a6246f3 servo: Merge #16878 - stylo: Rework pseudo-elements to support pseudo selectors with state (from emilio:pseudos); r=bholley,xidorn,hiro
Source-Repo: https://github.com/servo/servo
Source-Revision: 161dc666b017803c671a260f9d5298fc4c83f634

--HG--
rename : servo/components/style/binding_tools/regen_atoms.py => servo/components/style/gecko/regen_atoms.py
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : d4a6f2d02df7ab7a55418c8ee58f58626385ac14
2017-05-15 20:46:42 -05:00
Bobby Holley
4f5a862710 servo: Merge #16813 - Handle importance when inserting into the rule tree (from bholley:importance_handling); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1358635

Source-Repo: https://github.com/servo/servo
Source-Revision: f5794055108adf508bb0fd16222c4e5cf1d416d8

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 9703d3c9052ae9d55dd36ce996e83e96249a094a
2017-05-11 12:21:02 -05:00
Matt Brubeck
964d3bb34e servo: Merge #16784 - Bug 1349651 - stylo: Implement HasAuthorSpecifiedRules (from mbrubeck:has_author); r=bholley
https://bugzilla.mozilla.org/show_bug.cgi?id=1349651

Source-Repo: https://github.com/servo/servo
Source-Revision: 66cfea6728135d18be253c6f97f4a65ef561ba55

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 24fa015b67008ac43f9f54a5ed4da6b616b6c0fe
2017-05-09 13:21:29 -05:00
Bobby Holley
f716af270a servo: Merge #16702 - Use a custom arc in the style system (from bholley:custom_arc); r=emilio
See https://bugzilla.mozilla.org/show_bug.cgi?id=1360889

Source-Repo: https://github.com/servo/servo
Source-Revision: 7b1006936a27232fb77fef5893cc141e66bb12b7

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 85baf2471e165666e2540cbcf4fbb55587e60f39
2017-05-02 20:01:10 -05:00
Brian Birtles
00e718c4d4 servo: Merge #16625 - SMIL support for Gecko (from birtles:smil-support); r=hiro,heycam
PR for [Gecko bug 1355348](https://bugzilla.mozilla.org/show_bug.cgi?id=1355348)

---
- [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 tested on the Gecko side

Source-Repo: https://github.com/servo/servo
Source-Revision: 8824a68063aa4f3ca87454468f382e4d2be66487

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 936553a846e86eacae01601c1ff1f515550200c6
2017-04-27 00:48:21 -05:00
Emilio Cobos Álvarez
79395f93b1 servo: Merge #15562 - style: Tweak rule tree memory ordering (from emilio:rule-mem-order); r=bholley
I've commented on the ones that I think are the most tricky. Note that this code
is stress-tested in the style tests (tests/unit/style/rule_tree/bench.rs).

Source-Repo: https://github.com/servo/servo
Source-Revision: dc8ed0d740ede21ed3eb11f8b64813858fc1ca06

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 59c875a2c76115599d9bfb0444946a4f0572f3a5
2017-04-03 15:15:49 -05:00
Hiroyuki Ikezoe
bfb0d94203 servo: Merge #16111 - Add functions for after-change style of CSS Transition (from hiikezoe:after-change-style); r=emilio
Add functions for after-change style of CSS Transition

<!-- Please describe your changes on the following line: -->
This is a PR of https://bugzilla.mozilla.org/show_bug.cgi?id=1346663

---
<!-- 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

<!-- Either: -->
- [X] These changes do not require tests because it's for stylo

<!-- 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: 089c71b5872839c5a6c32d1988ce4d42a73860e4

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : c927f27d69e985332af3f465785bf50bb0ed7fde
2017-03-23 19:05:03 -07:00
Simon Sapin
33a9e6d050 servo: Merge #16014 - Per-process lock for CSSOM objects (from servo:style-ref); r=emilio
<!-- Please describe your changes on the following line: -->

Before this PR, every object reflected in CSSOM is in `Arc<RwLock<_>>` to enable safe (synchronized) mutable aliasing. Acquiring all these locks has significant cost during selector matching:

* https://bugzilla.mozilla.org/show_bug.cgi?id=1311469
* https://bugzilla.mozilla.org/show_bug.cgi?id=1335941
* https://bugzilla.mozilla.org/show_bug.cgi?id=1339703

This PR introduce a mechanism to protect many objects with the same `RwLock` that only needs to be acquired once.

In Stylo, there is one such lock per process (in a `lazy_static`), used for everything.

I non-Stylo Servo, I originally intended to have one such lock per document (for author-origin stylesheets, and one per process for user-agent and user sytlesheets since they’re shared across documents, and never mutated anyway). However I failed to have the same document-specific (or pipeline-specific) `Arc` reachable from both `Document` nodes and `LayoutThread`. Recursively following callers lead me to include this `Arc` in `UnprivilegedPipelineContent`, but that needs to be serializable. So there is a second process-wide lock.

This was previously #15998, closed accidentally.

---
<!-- 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 _____

<!-- 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: bb54f0a429de0e8b8861f8071b6cf82f73622664

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 851230e57ac8775707df5f0f103be5feac81fc41
2017-03-19 14:31:19 -07:00
Simon Sapin
0ab278cd72 servo: Merge #15856 - Deduplicate declarations on insertion, not at the end of parsing a block (from servo:dedup); r=Manishearth
<!-- Please describe your changes on the following line: -->

---
<!-- 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 #15558 (github issue number if applicable).

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

<!-- 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: 4fc7034370b3d9c3511607968b7ce724b59c4817

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 9608a67e47feadb1c1dcd9ae73a31b91fe1f1f07
2017-03-08 03:07:04 -08:00
Bobby Holley
4596312de1 servo: Merge #15557 - stylo: various fixes to improve style logging in opt builds (from bholley:opt_logging); r=emilio
This adds a traversal time entry to the style statistics, and switches to warn! as discussed in [1].

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1339176

Source-Repo: https://github.com/servo/servo
Source-Revision: 715a16423095e1bba2c192c0aebecb8f6aaffab3

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 945c58dec89fcbd5f4e59729a37aacddf368b983
2017-02-15 03:05:07 -08:00
Bobby Holley
a890a85070 servo: Merge #15480 - Refactor style computation (from bholley:refactor_style_computation); r=emilio
See https://bugzilla.mozilla.org/show_bug.cgi?id=1338382

Source-Repo: https://github.com/servo/servo
Source-Revision: 0dd4afcf6dd3efb8e9f6e620e8e0dc7b135f8eee

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 092cfaab13e17d3d19e7107de593efc7692ad198
2017-02-10 10:34:57 -08:00
Emilio Cobos Álvarez
2043633565 servo: Merge #15317 - style: Avoid selector-matching when only the style attribute is changed (from emilio:style-attr-restyle); r=bholley
r? @bholley

Source-Repo: https://github.com/servo/servo
Source-Revision: fb7f65fc5711f41b991b72ed97d7286dd16301ed
2017-02-02 03:00:22 -08:00
Emilio Cobos Álvarez
97b30b2655 servo: Merge #15288 - Refactor more stuff in preparation for special handling for restyling using the style attribute (from emilio:style-attr-restyle); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 166b30484061ae7c58f721ac9082d13c83834fae
2017-01-30 14:54:26 -08:00
Emilio Cobos Álvarez
89013f9ba5 servo: Merge #14801 - style: Document and force documentation in a big chunk of the style crate (from emilio:no-missing-docs); r=mbrubeck,Manishearth,Wafflespeanut
Style no forced docs for the properties code and similar, but I ran out of time, and I think it's a nice improvement.

I'd appreciate a fast-ish turn-around time because this is pretty much prone to bitrot.

Source-Repo: https://github.com/servo/servo
Source-Revision: bd67163438317daa711b2411ce302aaf5bf4136a
2016-12-31 03:19:02 -08:00
Emilio Cobos Álvarez
a5eb28d500 servo: Merge #14485 - style: Add a simple rule-tree benchmarks (from servo:rule-tree-bench); r=heycam
<!-- Please describe your changes on the following line: -->

r? @heycam

Numbers on my machine, for the record:

```
test rule_tree::bench::bench_expensive_insersion          ... bench:   7,211,081 ns/iter (+/- 1,933,866)
test rule_tree::bench::bench_expensive_insersion_parallel ... bench:  78,728,097 ns/iter (+/- 11,738,010)
test rule_tree::bench::bench_insertion_basic              ... bench:     665,333 ns/iter (+/- 68,089)
test rule_tree::bench::bench_insertion_basic_parallel     ... bench:   1,587,203 ns/iter (+/- 372,124)
```

Source-Repo: https://github.com/servo/servo
Source-Revision: cb6a870077fc6bca98af688406926832ae3df038

--HG--
rename : servo/components/style/servo/mod.rs => servo/tests/unit/style/rule_tree/mod.rs
2016-12-19 00:47:34 -08:00
Cameron McCormack
2b1a7dd8de servo: Merge #14273 - ensure RuleNodes are dropped when Gecko drops the Stylist (from heycam:rule-tree-stylo); r=bholley,emilio
<!-- Please describe your changes on the following line: -->

These are the Servo-side patches from https://bugzilla.mozilla.org/show_bug.cgi?id=1318238, which already have been reviewed by @bholley and @emilio there.

Source-Repo: https://github.com/servo/servo
Source-Revision: 385e59e0f124d02b36a66e4d4a4a073a6612a20b
2016-11-21 08:16:36 -06:00
Emilio Cobos Álvarez
ba5988535f servo: Merge #14278 - style: Don't assert when the final rule tree GC happens in script (from emilio:layout-data-in-script); r=Ms2ger
This should silence the assertions in https://github.com/servo/servo/issues/14213.

r? @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: 976989fc8d6a61391b35639943c63e6aaa27068b
2016-11-20 14:23:39 -06:00
Cameron McCormack
f241c1d75a servo: Merge #14256 - GC the rule tree only when the free list gets to a certain size (from heycam:rn-gc-heuristic); r=emilio
<!-- Please describe your changes on the following line: -->

Use a heuristic similar to Gecko's to decide when to GC the rule tree.

r? @emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: b78622bd53b0b605c777b4af2319e032eb3fe190
2016-11-19 22:01:12 -06:00
Emilio Cobos Álvarez
a04521065b servo: Merge #14167 - style: Don't assume siblings are alive in the rule tree when removing ourselves from the child list (from emilio:rule-tree-list); r=Manishearth
<!-- Please describe your changes on the following line: -->

---
<!-- 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

<!-- Either: -->
- [x] There are tests for these changes OR

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

We can't assume all our siblings are alive because they may very well be in the
free list too.

This tempts to happen when the rule nodes are destroyed as part of the last GC,
the one that runs in the root destructor.

Also, properly put the next sibling back into the list when the rules are GCd.

Source-Repo: https://github.com/servo/servo
Source-Revision: d49840eeec30967cc6f482bc2db9055ab6404ea4
2016-11-11 13:33:06 -06:00
Simon Sapin
9c206a6cf3 servo: Merge #13202 - Rule tree, v1 (from emilio:rule-tree); r=SimonSapin,Manishearth,emilio
<!-- Please describe your changes on the following line: -->
---

<!-- 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

<!-- Either: -->
- [x] There are tests for these changes OR

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

This patch introduces infrastructure for the rule tree, and constructs it.

We don't use it yet, nor have good heuristics for GC'ing it, but this should not
happen anymore once we store the rule node reference in the node.

I haven't messed up with memory orders because I want to do a try run with it,
then mess with them.

Source-Repo: https://github.com/servo/servo
Source-Revision: ac0475971bb24a63ca5d36d1d17e3036ddb99049
2016-11-05 17:11:24 -05:00