Auto merge of #20128 - Manishearth:rowspan, r=mbrubeck

Rowspan support for tables

fixes #20092

This just contains the first steps.

We apply a naive algorithm: Spanning cells apply a pressure equal to `block_size / rowspan` on each row they are in. We move table row block size computation into the tables, and make it two pass. In the first pass we compute the sizes of each row, and in the
second pass we assign them, adding them up for any involved cells.

This is missing:

 - [x] Accounting for border sizes
 - [x] Applying pressure to rows that are not the row containing the cell
 - [ ] Reducing pressure on future rows if the current row is able to accomodate more of the cell
 - [x] For tables containing both rows and rowgroups, reset the rowspan info when we hit a rowgroup
 - [x] Correctly handle overflowing rowspans

cc @mbrubeck @pcwalton

<!-- 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/20128)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-02-28 18:40:39 -05:00 committed by GitHub
commit e2f2814018
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 300 additions and 108 deletions

View file

@ -5837,6 +5837,18 @@
{}
]
],
"css/table_rowspan_notequal_a.html": [
[
"/_mozilla/css/table_rowspan_notequal_a.html",
[
[
"/_mozilla/css/table_rowspan_notequal_ref.html",
"!="
]
],
{}
]
],
"css/table_rowspan_rowgroup_a.html": [
[
"/_mozilla/css/table_rowspan_rowgroup_a.html",
@ -9756,6 +9768,11 @@
{}
]
],
"css/table_rowspan_notequal_ref.html": [
[
{}
]
],
"css/table_rowspan_rowgroup_ref.html": [
[
{}
@ -63932,6 +63949,14 @@
"e045db1f738850e516079b66f915ba314b54ed99",
"support"
],
"css/table_rowspan_notequal_a.html": [
"ec7ab6318a498f6b88369f097af53a0626c6fb1d",
"reftest"
],
"css/table_rowspan_notequal_ref.html": [
"2a07facbd9f417264b46f6419ab00593051dae56",
"support"
],
"css/table_rowspan_rowgroup_a.html": [
"aadc4cdd09585330446dd231452c04810833f586",
"reftest"