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.
This commit is contained in:
Patrick Walton 2015-09-04 16:58:17 -07:00
parent 7df4ff7572
commit ded4a5793e
4 changed files with 33 additions and 4 deletions

View file

@ -1327,10 +1327,16 @@ impl BlockFlow {
let mut inline_size_of_preceding_left_floats = Au(0);
let mut inline_size_of_preceding_right_floats = Au(0);
if self.formatting_context_type() == FormattingContextType::None {
inline_size_of_preceding_left_floats =
max(self.inline_size_of_preceding_left_floats - inline_start_content_edge, Au(0));
inline_size_of_preceding_right_floats =
max(self.inline_size_of_preceding_right_floats - inline_end_content_edge, Au(0));
if inline_start_content_edge > Au(0) {
inline_size_of_preceding_left_floats =
max(self.inline_size_of_preceding_left_floats - inline_start_content_edge,
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);