diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-04-14 18:14:11 -0500 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-04-14 18:14:11 -0500 |
commit | bdcf606f4802e5b1ab3ee251b45ee1e81800359a (patch) | |
tree | faca884b34b5ae66de7e3742436e95b2a5d6bcf4 /components/script/dom/namednodemap.rs | |
parent | 3dc25af9e121db010e4385efb3863ba45b0e0bcf (diff) | |
parent | 82fcbf78704cce6f425d1d8a5abbdd58469e8eb0 (diff) | |
download | servo-bdcf606f4802e5b1ab3ee251b45ee1e81800359a.tar.gz servo-bdcf606f4802e5b1ab3ee251b45ee1e81800359a.zip |
Auto merge of #5691 - pcwalton:hypothetical-box-reform, r=glennw
Before this change, Servo used one code path that computed the position
of flows with `position: static` or `position: relative` and another
separate code path that computed the position of flows with `position:
absolute` or `position: fixed`. The latter code attempted to duplicate
the former code to determine the static position of hypothetical boxes,
but this was both fragile and incorrect in the case of hypothetical
boxes nested inside floats. In fact, it's impossible to determine the
static position of an absolute flow relative to its containing block at
inline-size assignment time, because that static position could depend
on a float that cannot be placed until block-size assignment!
This patch changes block layout to use the same code path for static
positioning of regular flows and static positioning of absolute flows
where applicable. This both simplifies the code and improves its
efficiency, since it allows the `hypothetical_position` field and
`static_block_offsets` data structure to be removed. Moreover, it
improves correctness in the above case (which the new reftest checks).
This allows the sidebar in Facebook Timeline to be positioned properly.
r? @glennw
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/5691)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/namednodemap.rs')
0 files changed, 0 insertions, 0 deletions