WR now has a concept of font templates and font instances. This
makes the WR font interfaces closer to Cairo and Gecko, and also
makes some future performance optimizations possible.
A font template is the font family, and data backing the font.
A font instance is a reference to a font template and per-instance
options, such as font size, anti-aliasing settings etc.
To update Servo in a minimally invasive way, I added a new font
cache call, that creates a font instance. This means that when
a font is created, and doesn't exist in the cache there are now
two calls to the font cache thread. We could refactor the font
cache to make this work in one call, which we should do in the
future. However, refactoring the font cache is a large chunk of
work by itself. The extra call is only when a font doesn't already
exist in the font context cache, so it should have minimal
performance impact.
Source-Repo: https://github.com/servo/servo
Source-Revision: f7d238d1f38e4d6798cf2f18d72e61b3dd35bd2c
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : c85ae1d0c1a530c0fbe27fb76ba4b30f5c345f26
<!-- 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#9372 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because enabling pref flag.
<!-- 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: e10e56930fa8733e47f0a201aa5a80a5dc7c2d10
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : daf04f94252c04ecacc3915292d7a96632d79d88
Stylo is currently skipping parent display-based style fixups for all NAC,
whereas we probably only want to do this for NAC roots.
In this patch, we ensure that we skip it for NAC roots, and pseudo-elements,
but not other NAC.
---
<!-- 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 1359303](https://bugzilla.mozilla.org/show_bug.cgi?id=1359303)
Source-Repo: https://github.com/servo/servo
Source-Revision: cb4ce934299ce97499c766f1b09bd9f1303b5e38
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 765a1f5ed553c6c417560f6ecf497ecfb5ccb376
This is the Servo side change of [bug 1393189](https://bugzilla.mozilla.org/show_bug.cgi?id=1393189).
Source-Repo: https://github.com/servo/servo
Source-Revision: 12ca7d9e96ebeddd040b1eceb82f80ddd780c294
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 631f3c8fbbaa09d2a156227f53ee7131147197c1
<!-- Please describe your changes on the following line: -->
This is for https://bugzilla.mozilla.org/show_bug.cgi?id=1394729, which was r=heycam.
---
<!-- 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
- [X] These changes do not require tests because tests exist in Gecko.
<!-- 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: d795ceae17b2ce5346d4f211f73c62e5c25dce79
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 35eab4a64c3f287a38c2b6fcdbe91276482b4001
<!-- Please describe your changes on the following line: -->
This is a PR for https://bugzilla.mozilla.org/show_bug.cgi?id=1390352
This patch will skip adding/accumulating the values which corresponding rect offset is auto, and make Servo_AnimationValues_ComputeDistance return negative value instead of 0.0 when the function fails to distinguish its failure.
---
<!-- 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: -->
There are already these tests in dom/smil/tests of gecko, this PR will enable these tests.
For detail, see https://bugzilla.mozilla.org/show_bug.cgi?id=1390352.
<!-- 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: 5624c0e3f16e0057bb228627eaf9018ef88e7786
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : b387ca2a23f2e20f5344e409ec0f14f9e8457163
<!-- Please describe your changes on the following line: -->
The new rust-webvr version includes features like multiview, opaque framebuffers and multiple layer rendering support that will land in separate PRs.
It also splits rust-webvr traits to a separate crate. This allows much faster compilations when using local cargo replaces.
---
<!-- 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: -->
- [x] 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: 9a9866117a5e2a7d0e5de56ca70afec62f8b690f
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : cc8489ab957f4e455672880b15c1a74f89ba8f93
Implement ComputeSquaredDistance for mismatched transform lists.
In order to do this, we have to convert a transform list into a 3d matrix,
so I move the code from layout module into style module for reusing it.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1390039](https://bugzilla.mozilla.org/show_bug.cgi?id=1390039).
- [X] These changes do not require tests because this is a Gecko feature and I add many tests in Gecko already.
Source-Repo: https://github.com/servo/servo
Source-Revision: 3fa5d83ab798a9f1f88a73bf8618e6d7ccbb4b64
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : dd0b5e85f3be270d00657881351cd86286d436ff
It's not needed since #18268, let's kill it.
Source-Repo: https://github.com/servo/servo
Source-Revision: 5dee83d54d3f05cc631ee89de612c14e21dd92ec
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : e6f1d82f2005c8203891fedd5bd564411817e858
This error may happen in some cases, and we shouldn't panic in debug mode,
so let's return Err(()) for it to fall back to discrete animation.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1393605](https://bugzilla.mozilla.org/show_bug.cgi?id=1393605).
- [X] These changes do not require tests because we just downgrade the panic to an Err result.
Source-Repo: https://github.com/servo/servo
Source-Revision: afb874becd03627c6501434957f47ee7821119ef
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : ed29cd15a8417ead19fda5803070f5463ecd33ea
This is the Servo side change of [bug 1393189](https://bugzilla.mozilla.org/show_bug.cgi?id=1393189).
Source-Repo: https://github.com/servo/servo
Source-Revision: 88e7906191d9ba2afc6f5eabeec3407996403f2b
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 7fd7bf85f48ebdcb7b71f2d56b850f339fd9526b
One of Stylo's common assertion turns out to be from having a null Atom (see [Gecko 1385925 bug comment 7](https://bugzilla.mozilla.org/show_bug.cgi?id=1385925#c7)). It would be helpful if we can catch this kind of crash earlier via a release-assertion.
This may regress performance to some extent which I'm not sure. But we can probably have it there for diagnosis for now, and remove later.
Source-Repo: https://github.com/servo/servo
Source-Revision: 421e6d8f917c721094d5b8d2afe6453e2b004a17
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 94d0c571d326ee8dbacda78dd894905effb4e8db
No need to call the `assign_block_size_block_base()` method of normal block in flex.rs since it is implemented for CSS2.
<!-- 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#14813 (github issue number if applicable).
<!-- 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. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 7e363d60bb201a526eeebefbd57844cb1f070354
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : c3f973af43e188358cc41301c3d04aed7dfdd5a4
This allows us to simplify a lot of code.
On top of #18267.
Source-Repo: https://github.com/servo/servo
Source-Revision: 473934c989c94773c38f585b1c4500cd8c811738
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 77ef7ecc453b26b3747233aeb411c85c4cb8757a
<!-- Please describe your changes on the following line: -->
@paulrouget Here is a first sketch of the proposed "design", handling a first message as a proof of concept, if you could please already take a look before I move all the messages(or method calls) across... thanks
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix#15934 (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: ef401dd6373a393ff1d76e31e13d1827a5f0571e
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 8b2373eec68e021f211f2514571342dea995eee6
This is not a problem for regular Servo because these values are toggled when the command line is parsed. But it's not the case when embedding Servo.
Source-Repo: https://github.com/servo/servo
Source-Revision: 62930d0073fbf07362b02be0bd774986c8fb94e9
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : e75ce51dbd60c9988da6741a8fb42ebaeeca409d
Report more specific errors for invalid CSS selectors. Reviewed by @heycam in https://bugzilla.mozilla.org/show_bug.cgi?id=1384216.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes
Source-Repo: https://github.com/servo/servo
Source-Revision: b2f8974ab88c98277f03c727708096edce898974
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 3e6e805e10d74b130a1687dfdb8c9e85ec4d255f
This should fix the assertions in https://bugzilla.mozilla.org/show_bug.cgi?id=1394558.
Source-Repo: https://github.com/servo/servo
Source-Revision: 1c4d0d2d5d3e34e62ad3585b96632f354dbbe208
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : f2941fbe8ccc27e2c55f4e0c8cf1d1f3db2b7c21
This makes the overhead of this function much lower according to `perf`.
And in general makes sense, removing overhead from the fast path.
Source-Repo: https://github.com/servo/servo
Source-Revision: bd9cf3ce984081244389ea8326babc7583f7f850
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 43c858e579b246068d7e3aa20489ae28d78d4d7e
cssparser provides a way to set the initial line number on a
ParserInput. This patch changes servo to use this facility, rather than
reimplement the same functionality itself.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #_N/A_ (github issue number if applicable).
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because pre-existing tests cover this change.
Source-Repo: https://github.com/servo/servo
Source-Revision: 4804e211e859c730c0d2a116296560c5cbe867ee
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 4860b2c0588b9ffc401588326046b77ee61517c8
That literally made no sense, and is probably leftover from where we passed Map
directly there.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9e2f243b4d7015f67b4ea8310c9d242ec2eb6f69
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 51d6c5febdc78943d1276ae436b3433024059b12
This should cause a slight improvement in the common case where we are parsing non-custom property names.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
Source-Repo: https://github.com/servo/servo
Source-Revision: d68c57158d95bd79f930add86842e3b2c94dc436
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 7c6bd833a5b2dce5139e4cbbd21630f97050a59f
Fix a simple warning.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
This change is obviously too trivial for tests.
Source-Repo: https://github.com/servo/servo
Source-Revision: 04fb310847c55ba70c27e7badcfb6b04c2e50d63
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : c148e8ea68a1583155e0055578e6862182557d1c
Following #18176, it uses the new implementation and removes the old one.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#18186
- [x] These changes do not require tests because it’s only internal changes in `components/script/dom/performance.rs`
Source-Repo: https://github.com/servo/servo
Source-Revision: c2deac171d2407579b4fd0284b5f3c71be696f2d
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : af38d1572be4a0eafa38c31bfea4cb183005cfd5
Use whether we've computed any viewport unit instead.
This is more accurate (we avoid restyling unnecessarily if we've found anything
ever on the stylesheet, but that hasn't matched).
This has the benefit of also matching Gecko, and simplify some code and
fishyness around, and also hopefully speeding up stylesheet parsing.
Source-Repo: https://github.com/servo/servo
Source-Revision: 96b4e064a1f0b0fc1ee2811d0c1b528f85a718c6
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 87d0d22c6e23617f3dbf09f5d8a0b2c9ffd421fb
Per #18108, add `buffered` flag in the `PerformanceObserverInit` dict.
Per W3C spec, when `buffered` is set, `PerformanceObserver.observe()` method adds the entries buffered in the `Performance` instance into the observer's entry buffer.
One step is the implementation of the [filter by name and type](https://w3c.github.io/performance-timeline/#filter-buffer-by-name-and-type) algorithm. Don't think that the sort operation is useful in this case, but the spec states that this algorithm is to be used.
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#18108
- [X] These changes do not require tests (yet) because the timeline API is not powered.
Source-Repo: https://github.com/servo/servo
Source-Revision: ced303b9cbc193b5ebf221cbf2048ac1e7d0d552
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 9315f65ffa12e342d9eb6a4d8c66dd40763d0506
<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1394287
---
<!-- 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
Source-Repo: https://github.com/servo/servo
Source-Revision: 478da86bb94fad9738ec368174caf849e2c6d72d
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : a4c810378418c350026e49abe0003d701dd25fbb
Reviewed by Bobby on bug 1389645.
Source-Repo: https://github.com/servo/servo
Source-Revision: 08b9588011b0e70ad48177e890fc5475048db96b
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : a8ea0493dac558e5797b2697c87651c6759c3114
<!-- Please describe your changes on the following line: -->
Check line_count before attempting to calculate space around 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#18224 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because changes are minimal and the error was triggered by a test
<!-- 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: 163f29ff63882a9ffd7d94825110e4f1dd0d28db
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 0e8e678e774a9b491c0aef4a8b09b9b2d325ed4a
The stylo tests that check for sizes of various things are intended for 64-bit platforms, not for 32-bit platforms, so we should just disable them there. Servo's CI doesn't run them on 32-bit platforms, but Gecko's CI will soonish.
- [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 tests are just being disabled
Source-Repo: https://github.com/servo/servo
Source-Revision: 761709e65ea4e6a6e525b58f008282172d50a2d5
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 6b9d34cadb255453f28ca1030ca8bafc8832ab5d
**Do not merge yet.** This pulls in unrelated cssparser changes which add a dependency to `dota`, and we’d like to resolve https://github.com/dtolnay/dtoa/pull/9 before landing dtoa in mozilla-central. Also, the dependency change may require manually revendoring in mozilla-central.
Gecko’s CSS parsing microbenchmarks before:
```
43.437 ± 0.391 ms Stylo.Servo_StyleSheet_FromUTF8Bytes_Bench
29.244 ± 0.042 ms Stylo.Gecko_nsCSSParser_ParseSheet_Bench
281.884 ± 0.028 ms Stylo.Servo_DeclarationBlock_SetPropertyById_Bench
426.242 ± 0.008 ms Stylo.Servo_DeclarationBlock_SetPropertyById_WithInitialSpace_Bench
```
After:
```
29.779 ± 0.254 ms Stylo.Servo_StyleSheet_FromUTF8Bytes_Bench
28.841 ± 0.031 ms Stylo.Gecko_nsCSSParser_ParseSheet_Bench
296.240 ± 4.744 ms Stylo.Servo_DeclarationBlock_SetPropertyById_Bench
293.855 ± 4.304 ms Stylo.Servo_DeclarationBlock_SetPropertyById_WithInitialSpace_Bench
```
Source-Repo: https://github.com/servo/servo
Source-Revision: 8812422bfa504633a7011b0b002e9a2682c7d045
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 04932cab7a8b02bce89111c0326689c84cf72d8c