aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-09-03 11:55:03 -0600
committerbors-servo <metajack+bors@gmail.com>2015-09-03 11:55:03 -0600
commit8bbace7815b489e1b87df2ec496e65e78721d929 (patch)
treebf12a7adb6f5cfb485a535342601e0c5cbfbed81 /tests
parent3f9b6f8586b60929ccbfe1cf51b84887ef711b77 (diff)
parentee8741b7a8d7313a3ad1ea6ef81cebf7cb262891 (diff)
downloadservo-8bbace7815b489e1b87df2ec496e65e78721d929.tar.gz
servo-8bbace7815b489e1b87df2ec496e65e78721d929.zip
Auto merge of #7207 - pcwalton:surround-whitespace-stripping, r=mbrubeck
layout: Fix several bugs relating to inline borders, padding, and margins. * The code that attempted to strip out borders that span multiple fragments in the same element could go wrong if fragments were stripped out due to text clumping or whitespace stripping. This patch rewrites that code to maintain flags in the inline fragment context specifying whether the node is the beginning or end of the element. Not only is this easier to maintain, it's closer in spirit to what roc originally suggested two years ago: it's isomorphic to "begin element, end element" markers for inline layout. * Padding and margins for spans containing inline-blocks are now properly handled via a division of labor between the `InlineBlock` fragment and the `BlockFlow` that represents the inline-block. * Unscanned text fragments may not be joined together into a text run if borders, padding, or margins separate them. Because Servo now matches the rendering of Gecko and WebKit on the `input_button_margins_a` reftest, I had to modify it to add some vertical alignment. The combined effect of all of these fixes places "Advertising" on the right place on google.com. r? @mbrubeck <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7207) <!-- Reviewable:end -->
Diffstat (limited to 'tests')
-rw-r--r--tests/ref/basic.list1
-rw-r--r--tests/ref/input_button_margins_a.html2
-rw-r--r--tests/ref/input_button_margins_ref.html1
-rw-r--r--tests/ref/margin_padding_inline_block_a.html10
-rw-r--r--tests/ref/margin_padding_inline_block_ref.html17
5 files changed, 31 insertions, 0 deletions
diff --git a/tests/ref/basic.list b/tests/ref/basic.list
index c7aeb3a1de8..e68864215a6 100644
--- a/tests/ref/basic.list
+++ b/tests/ref/basic.list
@@ -224,6 +224,7 @@ flaky_cpu == linebreak_simple_a.html linebreak_simple_b.html
!= list_style_type_a.html list_style_type_ref.html
== many_brs_a.html many_brs_ref.html
== margin_a.html margin_b.html
+== margin_padding_inline_block_a.html margin_padding_inline_block_ref.html
== margins_inside_floats_a.html margins_inside_floats_ref.html
== marker_block_direction_placement_a.html marker_block_direction_placement_ref.html
== max_width_float_simple_a.html max_width_float_simple_b.html
diff --git a/tests/ref/input_button_margins_a.html b/tests/ref/input_button_margins_a.html
index b35a3b5ccb6..a207daac455 100644
--- a/tests/ref/input_button_margins_a.html
+++ b/tests/ref/input_button_margins_a.html
@@ -5,6 +5,8 @@ body, html {
}
input {
margin-left: 64px;
+ border: none;
+ vertical-align: top;
}
</style>
<input type=button value=Hello>
diff --git a/tests/ref/input_button_margins_ref.html b/tests/ref/input_button_margins_ref.html
index 07ecda7c227..63b80497bf4 100644
--- a/tests/ref/input_button_margins_ref.html
+++ b/tests/ref/input_button_margins_ref.html
@@ -6,6 +6,7 @@ body, html {
input {
position: absolute;
left: 64px;
+ border: none;
}
</style>
<input type=button value=Hello>
diff --git a/tests/ref/margin_padding_inline_block_a.html b/tests/ref/margin_padding_inline_block_a.html
new file mode 100644
index 00000000000..d2a8f5d4b82
--- /dev/null
+++ b/tests/ref/margin_padding_inline_block_a.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<style>
+html, body {
+ margin: 0;
+}
+</style>
+<div><span style="padding-left: 100px; display: inline-block">Boo</span></div>
+<div><span style="padding-left: 100px">Foo</span></div>
+<div><span style="margin-left: 100px">Foo</span></div>
+
diff --git a/tests/ref/margin_padding_inline_block_ref.html b/tests/ref/margin_padding_inline_block_ref.html
new file mode 100644
index 00000000000..58f5ba65980
--- /dev/null
+++ b/tests/ref/margin_padding_inline_block_ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<style>
+html, body {
+ margin: 0;
+}
+div {
+ position: relative;
+}
+span {
+ position: relative;
+ left: 100px;
+}
+</style>
+<div><span>Boo</span></div>
+<div><span>Foo</span></div>
+<div><span>Foo</span></div>
+