Use it to be consistent in InsetRect serialization and storage between Servo and
Gecko.
Differential Revision: https://phabricator.services.mozilla.com/D21493
--HG--
extra : moz-landing-system : lando
Instead of per-document. This also allows to reuse this thread-pool if needed
for other stuff, like parallel CSS parsing (#22478), and to share more code with
Gecko, which is always nice.
This cherry-picks https://github.com/servo/servo/pull/22487, with a few minor
fixes to the build that are landing as part of the sync associated to this bug,
and an lsan exception tweak to point to the right module since it's moving.
Introduce RuleCollector, which contains all the state we need during the
cascade, and allows to reuse a bit of code.
Differential Revision: https://phabricator.services.mozilla.com/D11233
--HG--
extra : moz-landing-system : lando
This moves most of the code to be Rust, except potentially some evaluator
functions, and allows to unblock the use case from any-hover / any-pointer and
remove nsMediaFeatures.
Differential Revision: https://phabricator.services.mozilla.com/D2976
This saves about 37 KiB of memory across the UA style sheets.
MozReview-Commit-ID: EoZnlmyWwxX
--HG--
extra : rebase_source : cd8ef0ba838618f9a4583b7d9896caa3a0602199
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
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 2b228d52a084bc832444ac686290840c4369f98d
Introduce AuthorStyles, which is just a struct aggregating stylesheets +
CascadeData, with a quirks_mode parameter because XBL sucks so bad.
Bug: 1436059
Reviewed-by: xidorn
MozReview-Commit-ID: 7q99tSNXo0K
Source-Repo: https://github.com/servo/servo
Source-Revision: 504b901cc82db5c5e02e157cec9753f7c297ac2c
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 79252144a91938156e03e4bf1be76988a14beeed
This shaves 40KB off of libxul.
Source-Repo: https://github.com/servo/servo
Source-Revision: 2f4362e0c1371c9ae45f1a71a406578eadc94a8b
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : df1457b06a0eb8d7bdc1097b1c0bf4f79ff14b27
Much like we optimize to_ascii_lowercase.
Source-Repo: https://github.com/servo/servo
Source-Revision: a0e4ea9f56947e9e47397984566e3e0cb5c3561e
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : f521b9538c760908309d22f88178b669f5a7fa47
We already have https://github.com/servo/servo/pull/19612 to deny warnings at the time of landing into master. But it’s not useful to break the build when later compiler with a more recent Rust version that has introduced new warnings:
https://bugzilla.mozilla.org/show_bug.cgi?id=1434619
Source-Repo: https://github.com/servo/servo
Source-Revision: 7546c37f1e921a112fef5828c59c6738a98c3f30
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : ed5c34f72e321ce0051347bd5156389d1ef26bef
One less crate pointlessly in components/.
Source-Repo: https://github.com/servo/servo
Source-Revision: 6938b4f3ebcb7bea6c44081796b254a31e0df5cb
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 64dac15fa38023f09a61e2c6d9289067b6fcb081
It was accidentally commented out in #19197 because I was developing on a Gecko
tree without #19162.
Source-Repo: https://github.com/servo/servo
Source-Revision: 2d78751b80f5757e6d3ab739bdf5b2cff354affc
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 186f2e5e33df66a61aec0dbaede77a9a1c7ae427
This is the servo side of bug 1403213.
Take 2 of #18941 which got backed out because we botched the landing of the gecko side and I wasn't able to fix it in time.
Source-Repo: https://github.com/servo/servo
Source-Revision: 0e6946fd9c279425e66721e6eb2b1e323e4c640f
--HG--
rename : servo/components/style/gecko_bindings/nsstring_vendor/src/lib.rs => servo/support/gecko/nsstring/src/lib.rs
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 6d2fb196b2ed25c0201097d20e07b2e757096d00
This is the servo side of bug 1403213.
This cannot merge until https://bugzilla.mozilla.org/show_bug.cgi?id=1377351 merges. It is currently on inbound. This will break autoland when it merges until the gecko-side part has also landed.
Source-Repo: https://github.com/servo/servo
Source-Revision: 7e0f5afa83d9f0eba07988735e56f47a2c18b451
--HG--
rename : servo/components/style/gecko_bindings/nsstring_vendor/src/lib.rs => servo/support/gecko/nsstring/src/lib.rs
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : ee57178ea85a844d5fb5c15e9aab3d430c0ac9a1
Servo currently uses `heapsize`, but Stylo/Gecko use `malloc_size_of`.
`malloc_size_of` is better -- it handles various cases that `heapsize` does not
-- so this patch changes Servo to use `malloc_size_of`.
This patch makes the following changes to the `malloc_size_of` crate.
- Adds `MallocSizeOf` trait implementations for numerous types, some built-in
(e.g. `VecDeque`), some external and Servo-only (e.g. `string_cache`).
- Makes `enclosing_size_of_op` optional, because vanilla jemalloc doesn't
support that operation.
- For `HashSet`/`HashMap`, falls back to a computed estimate when
`enclosing_size_of_op` isn't available.
- Adds an extern "C" `malloc_size_of` function that does the actual heap
measurement; this is based on the same functions from the `heapsize` crate.
This patch makes the following changes elsewhere.
- Converts all the uses of `heapsize` to instead use `malloc_size_of`.
- Disables the "heapsize"/"heap_size" feature for the external crates that
provide it.
- Removes the `HeapSizeOf` implementation from `hashglobe`.
- Adds `ignore` annotations to a few `Rc`/`Arc`, because `malloc_size_of`
doesn't derive those types, unlike `heapsize`.
<!-- 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
- [ ] These changes fix https://bugzilla.mozilla.org/show_bug.cgi?id=1409255
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because testing is on the Gecko side.
<!-- 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: 4c538b642e4bdfbf42c522c5a59c258a6d14546e
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : f9a6feed1088d0b0be2b55d7f0c2ec9c594ac33b