mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Auto merge of #7550 - pcwalton:block-formatting-context-overflow, r=mbrubeck
layout: Defend the block formatting context speculation against going wrong in the presence of blocks that overflow in the inline direction. Makes the Google search result links appear. Closes #7298. r? @mbrubeck <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7550) <!-- Reviewable:end -->
This commit is contained in:
commit
c3f9e1813a
4 changed files with 33 additions and 4 deletions
|
@ -1347,10 +1347,16 @@ impl BlockFlow {
|
||||||
let mut inline_size_of_preceding_left_floats = Au(0);
|
let mut inline_size_of_preceding_left_floats = Au(0);
|
||||||
let mut inline_size_of_preceding_right_floats = Au(0);
|
let mut inline_size_of_preceding_right_floats = Au(0);
|
||||||
if self.formatting_context_type() == FormattingContextType::None {
|
if self.formatting_context_type() == FormattingContextType::None {
|
||||||
inline_size_of_preceding_left_floats =
|
if inline_start_content_edge > Au(0) {
|
||||||
max(self.inline_size_of_preceding_left_floats - inline_start_content_edge, Au(0));
|
inline_size_of_preceding_left_floats =
|
||||||
inline_size_of_preceding_right_floats =
|
max(self.inline_size_of_preceding_left_floats - inline_start_content_edge,
|
||||||
max(self.inline_size_of_preceding_right_floats - inline_end_content_edge, Au(0));
|
Au(0));
|
||||||
|
}
|
||||||
|
if inline_end_content_edge > Au(0) {
|
||||||
|
inline_size_of_preceding_right_floats =
|
||||||
|
max(self.inline_size_of_preceding_right_floats - inline_end_content_edge,
|
||||||
|
Au(0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let opaque_self = OpaqueFlow::from_flow(self);
|
let opaque_self = OpaqueFlow::from_flow(self);
|
||||||
|
|
|
@ -48,6 +48,7 @@ flaky_cpu == append_style_a.html append_style_b.html
|
||||||
== block_formatting_context_containing_floats_a.html block_formatting_context_containing_floats_ref.html
|
== block_formatting_context_containing_floats_a.html block_formatting_context_containing_floats_ref.html
|
||||||
== block_formatting_context_float_placement_a.html block_formatting_context_float_placement_ref.html
|
== block_formatting_context_float_placement_a.html block_formatting_context_float_placement_ref.html
|
||||||
== block_formatting_context_max_width_a.html block_formatting_context_max_width_ref.html
|
== block_formatting_context_max_width_a.html block_formatting_context_max_width_ref.html
|
||||||
|
== block_formatting_context_overflow_a.html block_formatting_context_overflow_ref.html
|
||||||
== block_formatting_context_relative_a.html block_formatting_context_ref.html
|
== block_formatting_context_relative_a.html block_formatting_context_ref.html
|
||||||
== block_formatting_context_translation_a.html block_formatting_context_translation_ref.html
|
== block_formatting_context_translation_a.html block_formatting_context_translation_ref.html
|
||||||
== block_formatting_context_with_margin_a.html block_formatting_context_with_margin_ref.html
|
== block_formatting_context_with_margin_a.html block_formatting_context_with_margin_ref.html
|
||||||
|
|
19
tests/ref/block_formatting_context_overflow_a.html
Normal file
19
tests/ref/block_formatting_context_overflow_a.html
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<style>
|
||||||
|
section {
|
||||||
|
display: block;
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
nav {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
aside {
|
||||||
|
display: block;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
main {
|
||||||
|
width: 500px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<section><main><nav><aside>Hello</aside>world!</nav></main></section>
|
||||||
|
|
3
tests/ref/block_formatting_context_overflow_ref.html
Normal file
3
tests/ref/block_formatting_context_overflow_ref.html
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<div>Hello</div><div>world!</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue