Auto merge of #13401 - notriddle:master, r=pcwalton

Implement sequential fallback to float speculation

This shouldn't impact any pages that are already rendering correctly, but it is a very naive implementation of this pass.

---

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13284 and fix #13223
- [X] There are tests for these changes

<!-- 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/13401)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-09-29 13:16:24 -05:00 committed by GitHub
commit 4ebecc915a
11 changed files with 193 additions and 35 deletions

View file

@ -1,3 +0,0 @@
[block-formatting-contexts-015.htm]
type: reftest
expected: FAIL

View file

@ -1,3 +0,0 @@
[floats-bfc-002.htm]
type: reftest
expected: FAIL

View file

@ -1592,6 +1592,18 @@
"url": "/_mozilla/css/float_clearance_intrinsic_width_a.html"
}
],
"css/float_cleared_with_just_height.html": [
{
"path": "css/float_cleared_with_just_height.html",
"references": [
[
"/_mozilla/css/float_cleared_with_just_height_ref.html",
"=="
]
],
"url": "/_mozilla/css/float_cleared_with_just_height.html"
}
],
"css/float_intrinsic_height.html": [
{
"path": "css/float_intrinsic_height.html",
@ -15242,6 +15254,18 @@
"url": "/_mozilla/css/float_clearance_intrinsic_width_a.html"
}
],
"css/float_cleared_with_just_height.html": [
{
"path": "css/float_cleared_with_just_height.html",
"references": [
[
"/_mozilla/css/float_cleared_with_just_height_ref.html",
"=="
]
],
"url": "/_mozilla/css/float_cleared_with_just_height.html"
}
],
"css/float_intrinsic_height.html": [
{
"path": "css/float_intrinsic_height.html",

View file

@ -0,0 +1,25 @@
<!doctype html>
<meta charset="utf-8">
<title>floats can be cleared with just height</title>
<link rel="match" href="float_cleared_with_just_height_ref.html">
<style>
.a {
height: 20px;
}
.b {
height: 10px;
width: 50px;
float: right;
}
.c {
border: solid 1px #000;
background: red;
height: 10px;
overflow: auto
}
</style>
<div class=b></div>
<div class=a></div>
<div class=b></div>
<div class=a></div>
<div class=c></div>

View file

@ -0,0 +1,17 @@
<!doctype html>
<meta charset="utf-8">
<title>REFERENCE: floats can be cleared with just height</title>
<style>
.a {
height: 20px;
}
.c {
border: solid 1px #000;
background: red;
height: 10px;
overflow: auto
}
</style>
<div class=a></div>
<div class=a></div>
<div class=c></div>