Fix `linear_gradients_lengths_a.html` and fix Servo's use of "background-clip" to actually make it work.
See the commit messages for details.
r? @mbrubeck
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9171)
<!-- Reviewable:end -->
Correctly handle local sources for CSS3 fonts
Currently, servo panics for me when loading something like this:
```
@font-face {
font-family: "test family";
src: local(test font face);
}
```
That's due to a bug in `FontCacheTask`. `FontCacheTask` tries to get the value for the key
"test font face" from `self.web_families`, but previously initialized a value for the key "test family".
These two commits add an awkward test and fix the bug by not shadowing the variable `family_name`. Since the argument to `local()` should explicitly not be the name of a font family, the previous variable name was wrong and misleading anyways.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9149)
<!-- Reviewable:end -->
Implement EventSource and update test expectations
Partial #8925.
Most of the processing model for `EventSource` are unimplemented because we currently don't have a fetch implementation.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9029)
<!-- Reviewable:end -->
`linear_gradients_lengths_ref.html` use `background-clip: content-box`.
The tests clearly expect the background painting area to have width of
100px, but since the default value of `background-clip` is `border-box`
and the boxes in question have a 1-pixel border the background painting
areas are actually 102px. This commit fixes the tests so that the width
of the background painting area is actually 100px.
This test tries to add a web font to the `FontCacheTask`. The added web font
corresponds to the following CSS font definition:
```
@font-face {
font-family: "test family";
src: local(test font face);
}
```
This test fails, since `FontCacheTask` tries to get the value for the key
"test font face" from `self.web_families`, but previously initialized
a value for the key "test family".
Support empty strings as the repeat argument (CreatePattern)
According to the third step in the specification [1], createPattern
should let the repetition argument be "repeat" when it is the empty
string.
The code in CanvasRenderingContext2D::CreatePattern did not implement
this step and instead threw a SyntaxError exception when an empty
string was supplied as the repetition argument.
Fixes#9079.
[1] https://html.spec.whatwg.org/multipage/#dom-context-2d-createpattern
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9109)
<!-- Reviewable:end -->
Refactor AssertRequestsMustNotHaveHeaders
Improve correctness of AssertRequestMustNotHaveHeaders tests
- Changed AssertRequestsMustNotHaveHeaders to AssertRequestMustNotIncudeHeaders
- Added an assertion that headers_not_expected is not empty
tested by command
./mach test unit
and all passed.
resolves#9098
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9104)
<!-- Reviewable:end -->
According to the third step in the specification [1], createPattern
should let the repetition argument be "repeat" when it is the empty
string.
The code in CanvasRenderingContext2D::CreatePattern did not implement
this step and instead threw a SyntaxError exception when an empty
string was supplied as the repetition argument.
Fixes#9079.
[1] https://html.spec.whatwg.org/multipage/#dom-context-2d-createpattern