This patch replaces the handwritten MallocSizeOf implementation for
PropertyDeclaration with a derived one, which gives much more thorough
measurement.
This requires (a) deriving MallocSizeOf for a *lot* of additional types (most
of which already have `derive(HeapSizeOf)` in Servo builds), and (b)
implementing MallocSizeOf for a few more types in the `malloc_size_of` crate.
These changes would significantly improve the reporting coverage for gmail if
it weren't for the fact that SpecifiedUrl isn't measured due to a lack of
clarity about its fields; that can be fixed as a follow-up once bug 1397971 has
landed.
PR #18103 disallowed interpolation between fill:none and fill:none, but that change was regressed by the refactoring in PR #18239.
This patch restores the intended behavior, disabling animation of SVGPaintKind::None.
Currently, Servo uses ComputeSquaredDistance derive for
SvgLengthOrPercentageOrNumber, so servo can't calculate between
LengthOrPercentage and Number.
This PR will allow calculating these value.
We need to use enum instead of Either since we can't interpolate stroke-* between
unitless length and unit length(e.g. '5' -> '10px').
This coomit make following:
* Introduce SVGLengthOrPercentageOrNumber on computed and specified values.
* Make SVGLengthOrPercentageOrNumber animatable.
* Make stroke-dasharray not-accumulate.