mirror of
https://github.com/servo/servo
synced 2026-05-05 06:32:13 +02:00
layout: Rewrite the block formatting context/float inline-size
speculation code.
The old code tried to do the speculation as a single bottom-up pass
after intrinsic inline-size calculation, which was unable to handle
cases like this:
<div>
<div style="float: left">Foo</div>
</div>
<div>
<div style="overflow: hidden">Bar</div>
</div>
No single bottom-up pass could possibly handle this case, because the
inline-size of the float flowing out of the "Foo" block could never make
it down to the "Bar" block, where it is needed for speculation.
On the pages I tried, this regresses layout performance by 1%-2%.
I first noticed this breaking some pages, like the Google SERPs, several
months ago.
This commit is contained in:
@@ -564,6 +564,18 @@
|
||||
"url": "/_mozilla/css/block_formatting_context_containing_floats_a.html"
|
||||
}
|
||||
],
|
||||
"css/block_formatting_context_float_inorder_interaction_a.html": [
|
||||
{
|
||||
"path": "css/block_formatting_context_float_inorder_interaction_a.html",
|
||||
"references": [
|
||||
[
|
||||
"/_mozilla/css/block_formatting_context_float_inorder_interaction_ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
"url": "/_mozilla/css/block_formatting_context_float_inorder_interaction_a.html"
|
||||
}
|
||||
],
|
||||
"css/block_formatting_context_float_placement_a.html": [
|
||||
{
|
||||
"path": "css/block_formatting_context_float_placement_a.html",
|
||||
@@ -6854,6 +6866,18 @@
|
||||
"url": "/_mozilla/css/block_formatting_context_containing_floats_a.html"
|
||||
}
|
||||
],
|
||||
"css/block_formatting_context_float_inorder_interaction_a.html": [
|
||||
{
|
||||
"path": "css/block_formatting_context_float_inorder_interaction_a.html",
|
||||
"references": [
|
||||
[
|
||||
"/_mozilla/css/block_formatting_context_float_inorder_interaction_ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
"url": "/_mozilla/css/block_formatting_context_float_inorder_interaction_a.html"
|
||||
}
|
||||
],
|
||||
"css/block_formatting_context_float_placement_a.html": [
|
||||
{
|
||||
"path": "css/block_formatting_context_float_placement_a.html",
|
||||
|
||||
Reference in New Issue
Block a user