Commit Graph

20 Commits

Author SHA1 Message Date
Clark Gaebel
b649ed2763 servo: Merge #3706 - Fix image_dynamic_remove reftest with incremental layout turned out (from cgaebel:fix-image-dynamic-remove); r=pcwalton
This also adds some extra debugging infrastructure which I found useful tracking
this bug down. A regression in the br reftests is also uncovered by this patch,
which I'll work on fixing next.

EDIT: nevermind. no regression, I just tested that before a rebase.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: b86344b697f814b982e52f4a72c26d58c915c37b
2014-10-17 12:15:23 -06:00
Clark Gaebel
cdf4116c36 servo: Merge #3692 - Fix append_style reftests with incremental reflow turned on (from cgaebel:fix-incremental-append-style); r=pcwalton
@pcwalton r?

Source-Repo: https://github.com/servo/servo
Source-Revision: b83352f7eb511ca2e993e1cc92504f41363ccc95
2014-10-15 20:00:20 -06:00
Clark Gaebel
9487112680 servo: Merge #3686 - Use the Deref traits for FlowRefs (from cgaebel:deref-flows); r=pcwalton
This patch switches FlowRefs to using the Deref and DerefMut traits, instead of
the custom `get` and `get_mut` functions.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6a11ee89de82abae9d6607a6c2890692df5259eb
2014-10-15 16:18:23 -06:00
Clark Gaebel
704f292f6a servo: Merge #3668 - Removes duplicate CSS selector matching logic (from cgaebel:sequential-reflow); r=pcwalton
Now that DOM/Flow traversals have been refactored out, the `recalc_style_for_subtree`
function in `css/matching.rs` can be removed, in lieu of just running the standard
`recalc_style_for_node` and `construct_flows` traversals sequentially. Now we
no longer have the maintenance headache of duplicating selector matching logic
in two places! \o/

This passes reftests with both default arguments, and with `-y 1`.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 7eaeaeeb217e7cbd083fe318863e7de4b9f38e2b
2014-10-14 19:33:28 -06:00
Glenn Watson
409e8d4a22 servo: Merge #3610 - Implement media queries parser and matching. Improves mobile first sites like bootstrap3 (from glennw:media-queries); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 3eb6b17137964fc12779eca9597fa77930440138
2014-10-14 18:36:29 -06:00
Clark Gaebel
be2f0cc040 servo: Merge #3640 - Try to reset flows which need reflow, since reflow isn't yet idempotent (from cgaebel:incremental-flow-construction); r=pcwalton
This also hides the not-yet-working parts of incremental reflow behind a runtime
flag. As I get the failing reftests passing, I'll send pull requests for them one
by one.

Source-Repo: https://github.com/servo/servo
Source-Revision: 56989b8dec4aa95a3b484d45f15b23f9b3daaf13
2014-10-14 16:51:30 -06:00
Glenn Watson
ef7c0d2e17 servo: Merge #3675 - Add support for local font faces. Improves fonts on rust lang and guide (from glennw:local-fonts); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 48ce107d7275c08273cea6dca3523d0eee23eea7
2014-10-14 11:33:34 -06:00
Patrick Walton
58bfe948cb servo: Merge #3654 - layout: Rewrite clipping to be per-display-item instead of having a separate ClipDisplayItem (from pcwalton:clip-reform); r=mrobinson
We push down clipping areas during absolute position calculation. This
makes display items into a flat list, improving cache locality. It
dramatically simplifies the code all around.

Because we need to push down clip rects even for absolutely-positioned
children of non-absolutely-positioned flows, this patch alters the
parallel traversal to compute absolute positions for
absolutely-positioned children at the same time it computes absolute
positions for other children. This doesn't seem to break anything either
in theory (since the overall order remains correct) or in practice. It
simplifies the parallel traversal code quite a bit.

See the relevant Gecko bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=615734

r? @mrobinson

Source-Repo: https://github.com/servo/servo
Source-Revision: fd70b366aeada7f8cb4b2457c04fd07f0ea9b143
2014-10-14 00:42:35 -06:00
Patrick Walton
47c280c684 servo: Merge #3639 - Use Gecko's simpler Bloom filter instead of one based on hash (from pcwalton:rewrite-bloom-filter); r=zwarich
stretching.

This preserves the usage of the Bloom filter throughout style recalc,
but the implementation is rewritten. Provides a 15% improvement on
Guardians of the Galaxy.

Source-Repo: https://github.com/servo/servo
Source-Revision: e048f3f940e124d45b43a53a850177c45907822d
2014-10-10 20:27:39 -06:00
Clark Gaebel
0cd95a4fa4 servo: Merge #3638 - Factors out DOM traversal, keeping the code in parallel free of traversal-specific logic (from cgaebel:parallel-dom-traversal)
Source-Repo: https://github.com/servo/servo
Source-Revision: be6cde93224c3ad266f5f98c4f4e670062146124
2014-10-10 19:08:49 -04:00
Clark Gaebel
c0d7a56ba4 servo: Merge #3590 - Incremental Style Recalc (from cgaebel:slow-incremental-reflow-rebase); r=pcwalton
This patch puts in the initial framework for incremental reflow. Nodes' styles
are no longer recalculated unless the node has changed.

I've been hacking on the general problem of incremental reflow for the past
couple weeks, and I've yet to get a full implementation that actually passes all
the reftests + wikipedia + cnn. Therefore, I'm going to try to land the different
parts of it one by one.

This patch only does incremental style recalc, without incremental flow
construction, inline-size bubbling, reflow, or display lists. Those will be coming
in that order as I finish them.

At least with this strategy, I can land a working version of incremental reflow,
even if not yet complete.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 85b277655f07db1cb99c4d3dee93804735ed0470
2014-10-09 11:21:32 -06:00
Patrick Walton
4bd9850e8c servo: Merge #3599 - layout: Implement z-index (from pcwalton:z-index); r=glennw
r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: c4ac93b315f058d9a061b20ce64cacbead339f86
2014-10-08 23:33:33 -06:00
Simon Sapin
e245f210fb servo: Merge #3438 - Upgrade Rust (from servo:rustup)
Source-Repo: https://github.com/servo/servo
Source-Revision: 045328c8e94f5bdfcd67105c5dfa9209f4cd501c
2014-09-20 15:35:08 -07:00
Patrick Walton
3367860bc2 servo: Merge #3401 - layout: Remove layout/extra.rs (from pcwalton:refactor-layout)
Source-Repo: https://github.com/servo/servo
Source-Revision: f139eb51763091165136c88a7b9931fc09ebe2cc
2014-09-19 10:51:02 -04:00
Clark Gaebel
9e4f97cf2d servo: Merge #3397 - Fixes #3386 (from cgaebel:issue-3386)
Source-Repo: https://github.com/servo/servo
Source-Revision: 667f887f49902c4750b80b8be15ba1d4dc3dccdf
2014-09-18 09:29:21 -07:00
Clark Gaebel
603e2d1c80 servo: Merge #3379 - Added more complex profiling metadata (from cgaebel:bucketed-timing)
Source-Repo: https://github.com/servo/servo
Source-Revision: 1b251db7323dce3b7838709c7d2dfb685d8b24a9
2014-09-18 09:12:34 -07:00
Matt Brubeck
6bf4cede00 servo: Merge #3352 - Move link rel=stylesheet fetching to layout task. r=jdm (from mbrubeck:link-style)
Source-Repo: https://github.com/servo/servo
Source-Revision: 0e2cdc5cca80e636bd904ea99e86f31a4ea9bcd2
2014-09-16 08:16:29 -07:00
Clark Gaebel
2ce9a1478b servo: Merge #3212 - Added a bloom filter to CSS selector matching (from cgaebel:style-resolution-bloom-filter)
Source-Repo: https://github.com/servo/servo
Source-Revision: ad02534c10d85cc011908fe6b2ba06cfcdcb226c
2014-09-15 22:27:24 -06:00
Clark Gaebel
484ddd4401 servo: Merge #3254 - Block LayoutRPC until the first reflow (from cgaebel:issue-3232)
Source-Repo: https://github.com/servo/servo
Source-Revision: 8116ee1b349f8a620c04734aec632af6b64570e0
2014-09-12 08:00:13 +10:00
Jack Moffitt
132ee35633 servo: Merge #3230 - Cargoify servo (from servo:cargoify)
Source-Repo: https://github.com/servo/servo
Source-Revision: b1305bb7d051f83850c51bb0da0ccc86a5e07922
2014-09-09 08:18:18 -06:00