aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/browsercontext.rs
diff options
context:
space:
mode:
authorbors-servo <release+servo@mozilla.com>2014-05-02 19:10:20 -0400
committerbors-servo <release+servo@mozilla.com>2014-05-02 19:10:20 -0400
commit1a88996c0438212a4e77369515a243c9c24c4518 (patch)
tree8d3ca70eb151331cb0acefdb397e857e2c7c284f /src/components/script/dom/browsercontext.rs
parent1ab22d947008b90e01c565736d3d3953ad491648 (diff)
parent81f5da9dd852065cdf87a9d038d45cd8d8df3662 (diff)
downloadservo-1a88996c0438212a4e77369515a243c9c24c4518.tar.gz
servo-1a88996c0438212a4e77369515a243c9c24c4518.zip
auto merge of #2235 : pcwalton/servo/parallel-floats, r=larsbergstrom
layout: Rewrite display list building to be parallel and to handle overflow correctly, and opportunistically lay out blocks in parallel even if floats are present. This series of commits fixes the `inline-height-test` in Acid2 by implementing proper overflow as well as the inline "strut". (See CSS 2.1 § 10.8.1.) It was accidentally working before because tables' descendant flows were not being laid out properly. Display list building is now parallel and is done by bubbling up display items and layers from parent to child. Speedups of around 60%-70% are observed on Wikipedia with a 4-core HyperThreaded Core i7. More optimizations are possible; this is just a start. To minimize the amount of data that needs to be bubbled up, as well as to make proper handling of `overflow: hidden` clipping easier, the `StackingContext` abstraction is now purely internal to the display list. Instead of placing items into a stacking context directly, display items are placed into display lists with an explicit `StackingLevel` provided. The stacking level determines a display item's position within the stacking context. When a stacking context is finished, it is flattened with the the `flatten` method, which shuffles the display items that make up the context into their proper order while handling clipping properly. r? @SimonSapin and/or @larsbergstrom
Diffstat (limited to 'src/components/script/dom/browsercontext.rs')
0 files changed, 0 insertions, 0 deletions