A single transition value that includes 'none' for transition-property is
valid, so we should store whole specified values (if it's valid). Whereas,
the spec [1] clearly says for the case where there are multiple entries;
If there is more than one <single-transition> in the shorthand, and any of
the transitions has none as the <single-transition-property>, then the
declaration is invalid.
'none 2s linear 2s' is a test case for the former, '1s width, 2s none' is a
test case for the latter.
Note that with this patch, 'transition: none' is serialized as 'none 0s ease 0s'
instead of 'none' but it matches Gecko.
[1] https://drafts.csswg.org/css-transitions/#single-transition
MozReview-Commit-ID: 3o3z5GFyMqh
Measure PropertyDeclaration better.
This increases the style-sheets counts for gmail by about 30 MiB.
<!-- Please describe your changes on the following line: -->
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 code is tested 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. -->
<!-- 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/18404)
<!-- Reviewable:end -->
Keep the unit of the serialization of specified::CalcLengthOrPercentage.
For the serialization of specified values of calc(), we should keep the
units of absolute lengths, so use AbsoluteLength.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1396692](https://bugzilla.mozilla.org/show_bug.cgi?id=1396692).
- [X] These changes do not require tests because we have wpt tests for this already.
<!-- 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/18409)
<!-- Reviewable:end -->
This patch adds measurement of Selectors within StyleRule. This requires
exposing the pointer within ThinArc.
The patch also adds measurement of the several CssRule variants, in order to
measure nested CssRules (and PropertyDeclarationBlocks) within them:
DocumentRule, MediaRule, PageRule, SupportsRule.
We were parsing @page rules correctly and serializing for cssom when we
we need. But we weren't actually including them to the pseudo element
declarations when we need to print a page.
Reduce duplication in generated ServoComputedData::to_declaration_block.
This reduces the size of the code in libXUL by 23.4k according to bloaty.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
<!-- 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/18396)
<!-- Reviewable:end -->