diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-03-26 07:08:41 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2016-03-26 07:08:41 +0530 |
commit | 1554331f06900e69f246ed9986a08aae91a0a71e (patch) | |
tree | d45bd79776dc8c60df8868627e4c7c73bd8c2f26 /components/layout/construct.rs | |
parent | 9b2ae3a62faafceb3149dc455fc6123de2b306f7 (diff) | |
parent | b29719e36bdf2867b1391bbc3b017675975e27ae (diff) | |
download | servo-1554331f06900e69f246ed9986a08aae91a0a71e.tar.gz servo-1554331f06900e69f246ed9986a08aae91a0a71e.zip |
Auto merge of #10085 - pcwalton:floats-inout-revamp, r=mbrubeck
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.
r? @mbrubeck
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10085)
<!-- Reviewable:end -->
Diffstat (limited to 'components/layout/construct.rs')
0 files changed, 0 insertions, 0 deletions