aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/traversal.rs
Commit message (Collapse)AuthorAgeFilesLines
* layout: Implement ordered lists, CSS counters, and `quotes` per CSS 2.1Patrick Walton2015-03-091-2/+4
| | | | | | | | | | | | | | § 12.3-12.5. Only simple alphabetic and numeric counter styles are supported. (This is most of them though.) Although this PR adds a sequential pass to layout, I verified that on pages that contain a reasonable number of ordered lists (Reddit `/r/rust`), the time spent in generated content resolution is dwarfed by the time spent in the parallelizable parts of layout. So I don't expect this to negatively affect our parallelism expect perhaps in pathological cases.
* auto merge of #5154 : luniv/servo/viewpoint-percent-lengths, r=SimonSapinbors-servo2015-03-051-1/+2
|\ | | | | | | Spec: http://dev.w3.org/csswg/css-values-3/#viewport-relative-lengths
| * Make the initial viewport size available to style::properties::cascadeJames Gilbertson2015-03-051-1/+2
| |
| * Revert "layout: Implement ordered lists, CSS counters, and `quotes` per CSS 2.1"Simon Sapin2015-03-031-3/+2
| | | | | | | | This reverts commit 30fd28d1077fbb3f47140f6ab1252c0d24f44d23.
| * layout: Implement ordered lists, CSS counters, and `quotes` per CSS 2.1Patrick Walton2015-03-031-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | § 12.3-12.5. Only simple alphabetic and numeric counter styles are supported. (This is most of them though.) Although this PR adds a sequential pass to layout, I verified that on pages that contain a reasonable number of ordered lists (Reddit `/r/rust`), the time spent in generated content resolution is dwarfed by the time spent in the parallelizable parts of layout. So I don't expect this to negatively affect our parallelism expect perhaps in pathological cases.
* | Get rid of servo_utilDan Fox2015-03-051-2/+2
|/
* Move selector matching to an external library, for use outside Servo.Simon Sapin2015-02-231-1/+1
|
* Update a comment about STYLE_BLOOM.Nicholas Nethercote2015-02-161-1/+1
|
* Avoid bloom filter churn.Nicholas Nethercote2015-02-151-4/+3
| | | | | | | | | | | | | When a cached bloom filter is found during traversal, there are two cases, both of which currently do unnecessary allocations. This patch avoids these allocations. In the process, it renders correct two previously-incorrect comments, and moves one of those comments into a better spot. While scrolling moderately fast all the way through the "Guardians of the Galaxy" Wikipedia page, this patch (a) avoids 1.2 million calls to `clone()` and (b) replaces 111,000 `BloomFilter::new()` calls with `clear()` calls.
* Opt-in rather than opt-out to unsafe blocks in layout.Ms2ger2015-02-081-0/+2
|
* Remove transmutes from put_task_local_bloom_filter.Ms2ger2015-02-081-3/+1
|
* End the libstyle 'pub use' madness.Simon Sapin2015-01-301-1/+1
|
* Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev.Josh Matthews2015-01-281-10/+10
|
* Update rustc to revision 2cfb5acb5a2751c759627377e602bac4f88f2d19.Ms2ger2015-01-081-33/+48
|
* layout: Paint stacking contexts' overflow areas properly.Patrick Walton2015-01-041-6/+1
| | | | | This was making `box-shadow` not show up in many cases, in particular, but the effects were not limited to that.
* Update rustc to revision 3dcd2157403163789aaf21a9ab3c4d30a7c6494d.Ms2ger2014-12-171-3/+3
|
* Rust upgrade to rustc hash b03a2755193cd756583bcf5831cf4545d75ecb8aJack Moffitt2014-11-131-7/+7
|
* layout: Make incremental reflow more fine-grained by introducing "reflowPatrick Walton2014-10-311-39/+36
| | | | | | out-of-flow" and "reconstruct flow" damage bits. This is needed for good performance on the maze solver.
* layout: Implement flow tree dumping with RUST_LOG=debug is on.Clark Gaebel2014-10-281-1/+1
| | | | r? @pcwalton
* Clear reflow flags after reflow.Clark Gaebel2014-10-221-12/+28
|
* Fixes the table_percentage_width_a.html reftest with incremental reflow ↵Clark Gaebel2014-10-201-3/+14
| | | | turned on.
* Use opts as a global, to avoid cloning and passing the struct all over the code.Glenn Watson2014-10-201-1/+2
|
* Fix image_dynamic_remove reftest with incremental layout turned outClark Gaebel2014-10-171-1/+1
| | | | | | | | 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. r? @pcwalton
* Removes duplicate CSS selector matching logic.Clark Gaebel2014-10-141-25/+17
| | | | | | | | | | 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/ r? @pcwalton
* auto merge of #3640 : cgaebel/servo/incremental-flow-construction, r=pcwaltonbors-servo2014-10-141-6/+27
|\ | | | | | | | | | | 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.
| * try to reset flows which need reflow, since reflow isn't yet idempotentClark Gaebel2014-10-141-6/+27
| |
* | layout: Introduce support for legacy presentational attributes to selectorPatrick Walton2014-10-141-1/+1
|/ | | | | | | | matching, and use it for `<input size>` and `<td width>`. This implements a general framework for legacy presentational attributes to the DOM and style calculation, so that adding more of them later will be straightforward.
* layout: Rewrite clipping to be per-display-item instead of havingPatrick Walton2014-10-131-7/+1
| | | | | | | | | | | | | | | | | | | a separate `ClipDisplayItem`. 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
* Use Gecko's simpler Bloom filter instead of one based on hashPatrick Walton2014-10-101-41/+45
| | | | | | | | 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.
* Factors out DOM traversal, keeping the code in `parallel` free of ↵Clark Gaebel2014-10-101-0/+333
traversal-specific logic. DOM traversals and Flow traversals look very similar. This patch unifies them with the preorder/postorder pattern. Hopefully, it also opens the door for writing the traversal code only once, instead of the duplication we have today.