Introduce and derive ComputeSquaredDistance
This new trait merges the former `Animatable` methods `compute_distance` and `compute_squared_distance`.
<!-- 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/18058)
<!-- Reviewable:end -->
Now that we do process normal traversal even in the case of throttled animation
flush so that we don't need to do special handling for the case.
Note about the comment in has_current_styles():
the remaining animation hints is not caused by either this patch or the
previous patch in this patch series, it's been there in the first place, but
it should be fixed somehow later. See bug 1389675.
MozReview-Commit-ID: JojHufxNCiS
Deduplicating code is nice, and it will help us when we make the bit
propagation more complicated in upcoming patches.
MozReview-Commit-ID: KIQnNJVayrM
Continue after failed attempt to delete old nightly
Failure to catch this error broke bholley's PR https://github.com/servo/servo/pull/18048http://build.servo.org/builders/linux-dev/builds/8616/steps/shell__1/logs/stdio.
Logs below for posterity.
```
Current Rust nightly version: 599be0d18f4c6ddf36366d2a5a2ca6dc65886896
Current Rust stable version: 1.19.0
Removing /home/servo/.servo/cargo/13d94d5fa8129a34f5c77a1bcd76983f5aed2434
Error running mach:
['clean-nightlies', '--keep', '3', '--force']
The error occurred in code that was called by the mach command. This is either
a bug in the called code itself or in the way that mach is calling it.
You should consider filing a bug for this issue.
If filing a bug, please include the full output of mach, including this error
message.
The details of the failure are as follows:
OSError: [Errno 2] No such file or directory:
'/home/servo/.servo/cargo/13d94d5fa8129a34f5c77a1bcd76983f5aed2434'
File
"/home/servo/buildbot/slave/linux-dev/build/python/servo/bootstrap_commands.py",
line 334, in clean_nightlies
delete(full_path)
File "/home/servo/buildbot/slave/linux-dev/build/python/servo/util.py", line
28, in delete
os.remove(path)
```
I don't know how the builder got into the edge case where the old nightly wasn't there for deletion, but in the case that removal fails for some reason, mach should just keep going. In the incredibly unlikely event that the failure to remove the file has consequences down the line, we'll have the failed remove in the log for troubleshooting.
Also this passed tidy so if I failed to python I'll need to fix tidy as well as this.
<!-- 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/18051)
<!-- Reviewable:end -->
Failure to catch this error broke bholley's PR:
http://build.servo.org/builders/linux-dev/builds/8616/steps/shell__1/logs/stdio.
Logs below for posterity.
Current Rust nightly version: 599be0d18f4c6ddf36366d2a5a2ca6dc65886896
Current Rust stable version: 1.19.0
Removing /home/servo/.servo/cargo/13d94d5fa8129a34f5c77a1bcd76983f5aed2434
Error running mach:
['clean-nightlies', '--keep', '3', '--force']
The error occurred in code that was called by the mach command. This is either
a bug in the called code itself or in the way that mach is calling it.
You should consider filing a bug for this issue.
If filing a bug, please include the full output of mach, including this error
message.
The details of the failure are as follows:
OSError: [Errno 2] No such file or directory:
'/home/servo/.servo/cargo/13d94d5fa8129a34f5c77a1bcd76983f5aed2434'
File
"/home/servo/buildbot/slave/linux-dev/build/python/servo/bootstrap_commands.py",
line 334, in clean_nightlies
delete(full_path)
File "/home/servo/buildbot/slave/linux-dev/build/python/servo/util.py", line
28, in delete
os.remove(path)
The buggy animation handling isn't a regression, since currently we pass
UnstyledChildrenOnly in those cases, which blocks the animation traversal
in Servo_TraverseSubtree.
In general I really wanted to handle these two paths together. But there's
enough broken with the NewChildren path that I wanted to scope the buginess
as tightly as possible. And I really need to separate the handling here from
StyleDocument() to make the restyle root stuff work.
MozReview-Commit-ID: 9F0mcQl7AAX
Doing anything else is non-sensical, since we're not guaranteed to reach all of
the bits from traversal Y when doing traversal X.
MozReview-Commit-ID: FQliRxBan70
Make -webkit-text-stroke-width animatable.
<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1389452
---
<!-- 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