Auto merge of #20752 - pyfisch:backgrounds42, r=emilio

Fix crash in DL building

Fix one crash and some style changes.

This HTML crashed servo before. Key parts are `background-clip: content-box` and `direction: rtl`

```html
<!DOCTYPE html>
<html>
    <style>
        #span1 {
            background-clip: content-box;
        }
        #span2
        {
            direction: rtl;
        }
    </style>
    <span id="span1">Filler Text <span id="span2">txeT relliF</span></span>
</html>
```
Should I add this as a test? And where do I put this "does-it-crash?" test?

I find always passing rectangles by value a lot easier as it avoids many references and dereferences and I assume that the compiler will always use the faster one either way. If you don't like the change feel free to only merge the first commit.

<!-- 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/20752)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-05-19 11:02:01 -04:00 committed by GitHub
commit ea214e9bc3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 220 additions and 191 deletions

View file

@ -307,6 +307,18 @@
{}
]
],
"css/background_border_padding_crash.html": [
[
"/_mozilla/css/background_border_padding_crash.html",
[
[
"/_mozilla/css/background_border_padding_crash-ref.html",
"=="
]
],
{}
]
],
"css/background_clip_a.html": [
[
"/_mozilla/css/background_clip_a.html",
@ -7459,6 +7471,11 @@
{}
]
],
"css/background_border_padding_crash-ref.html": [
[
{}
]
],
"css/background_clip_ref.html": [
[
{}
@ -60187,6 +60204,14 @@
"a85620b9a57b3cb46b7629b7a8fead6417d2dd28",
"reftest"
],
"css/background_border_padding_crash-ref.html": [
"eae17c2be5646f7fa1dc26e5a28a89c527da00e6",
"support"
],
"css/background_border_padding_crash.html": [
"600d0c014aabfe13f09dec11757d5d7740a5ba74",
"reftest"
],
"css/background_clip_a.html": [
"e2d43d67ea0485e171fc1280498ac68a483e881a",
"reftest"

View file

@ -0,0 +1,5 @@
<!DOCTYPE html>
<html>
<title>Assure that different writing modes do not crash background building in Servo</title>
<span>Filler Text txeT relliF</span>
</html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<title>Assure that different writing modes do not crash background building in Servo</title>
<link rel=match href=background_border_padding_crash-ref.html>
<style>
#span1 {
background-clip: content-box;
}
#span2
{
direction: rtl;
}
</style>
<span id="span1">Filler Text <span id="span2">txeT relliF</span></span>
</html>