Commit graph

72 commits

Author SHA1 Message Date
Josh Matthews
0169cfeafe servo: Merge #2726 - Split layout code into a separate crate (from jdm:layoutsplit)
Source-Repo: https://github.com/servo/servo
Source-Revision: 21e4d85511ffb928d0cab00b221413d54864afa5

--HG--
rename : servo/src/components/main/compositing/compositor.rs => servo/src/components/compositing/compositor.rs
rename : servo/src/components/main/compositing/compositor_layer.rs => servo/src/components/compositing/compositor_layer.rs
rename : servo/src/components/main/compositing/compositor_task.rs => servo/src/components/compositing/compositor_task.rs
rename : servo/src/components/main/constellation.rs => servo/src/components/compositing/constellation.rs
rename : servo/src/components/main/compositing/headless.rs => servo/src/components/compositing/headless.rs
rename : servo/src/components/main/pipeline.rs => servo/src/components/compositing/pipeline.rs
rename : servo/src/components/main/platform/common/glfw_windowing.rs => servo/src/components/compositing/platform/common/glfw_windowing.rs
rename : servo/src/components/main/platform/common/glut_windowing.rs => servo/src/components/compositing/platform/common/glut_windowing.rs
rename : servo/src/components/main/platform/mod.rs => servo/src/components/compositing/platform/mod.rs
rename : servo/src/components/main/compositing/quadtree.rs => servo/src/components/compositing/quadtree.rs
rename : servo/src/components/main/windowing.rs => servo/src/components/compositing/windowing.rs
rename : servo/src/components/main/layout/block.rs => servo/src/components/layout/block.rs
rename : servo/src/components/main/layout/construct.rs => servo/src/components/layout/construct.rs
rename : servo/src/components/main/layout/context.rs => servo/src/components/layout/context.rs
rename : servo/src/components/main/css/matching.rs => servo/src/components/layout/css/matching.rs
rename : servo/src/components/main/css/node_style.rs => servo/src/components/layout/css/node_style.rs
rename : servo/src/components/main/css/node_util.rs => servo/src/components/layout/css/node_util.rs
rename : servo/src/components/main/css/select.rs => servo/src/components/layout/css/select.rs
rename : servo/src/components/main/css/user-agent.css => servo/src/components/layout/css/user-agent.css
rename : servo/src/components/main/layout/extra.rs => servo/src/components/layout/extra.rs
rename : servo/src/components/main/layout/floats.rs => servo/src/components/layout/floats.rs
rename : servo/src/components/main/layout/flow.rs => servo/src/components/layout/flow.rs
rename : servo/src/components/main/layout/flow_list.rs => servo/src/components/layout/flow_list.rs
rename : servo/src/components/main/layout/flow_ref.rs => servo/src/components/layout/flow_ref.rs
rename : servo/src/components/main/layout/fragment.rs => servo/src/components/layout/fragment.rs
rename : servo/src/components/main/layout/incremental.rs => servo/src/components/layout/incremental.rs
rename : servo/src/components/main/layout/inline.rs => servo/src/components/layout/inline.rs
rename : servo/src/components/main/layout/layout_task.rs => servo/src/components/layout/layout_task.rs
rename : servo/src/components/main/layout/model.rs => servo/src/components/layout/model.rs
rename : servo/src/components/main/layout/parallel.rs => servo/src/components/layout/parallel.rs
rename : servo/src/components/main/layout/table.rs => servo/src/components/layout/table.rs
rename : servo/src/components/main/layout/table_caption.rs => servo/src/components/layout/table_caption.rs
rename : servo/src/components/main/layout/table_cell.rs => servo/src/components/layout/table_cell.rs
rename : servo/src/components/main/layout/table_colgroup.rs => servo/src/components/layout/table_colgroup.rs
rename : servo/src/components/main/layout/table_row.rs => servo/src/components/layout/table_row.rs
rename : servo/src/components/main/layout/table_rowgroup.rs => servo/src/components/layout/table_rowgroup.rs
rename : servo/src/components/main/layout/table_wrapper.rs => servo/src/components/layout/table_wrapper.rs
rename : servo/src/components/main/layout/text.rs => servo/src/components/layout/text.rs
rename : servo/src/components/main/layout/util.rs => servo/src/components/layout/util.rs
rename : servo/src/components/main/layout/wrapper.rs => servo/src/components/layout/wrapper.rs
2014-07-01 05:02:50 -07:00
Brendan Zabarauskas
eab7a7f3d5 servo: Merge #2682 - Assorted cleanups in gfx and layout (from bjz:assorted-cleanups)
Source-Repo: https://github.com/servo/servo
Source-Revision: 7df50ae089ff57b8f3160f5ad6ee3d5f2daf5d87
2014-06-21 08:07:14 -05:00
Jack Moffitt
0efdf108b8 servo: Merge #2538 - Upgrade Rust (from servo:rustup-20140528); r=SimonSapin
Not yet ready for merge, but you can start reviewing.

Still need to fix linux and some make check code.

Source-Repo: https://github.com/servo/servo
Source-Revision: b2e7e67087370e30a310bb3673b074c97c19d548

--HG--
rename : servo/src/components/style/common_types.rs => servo/src/components/style/properties/common_types.rs
rename : servo/src/components/style/properties.rs.mako => servo/src/components/style/properties/mod.rs.mako
rename : servo/src/components/util/debug.rs => servo/src/components/util/debug_utils.rs
2014-06-05 13:58:44 -04:00
Patrick Walton
a0a637d36c servo: Merge #2570 - layout: Implement reference counting for flows (from pcwalton:ref-count-flows); r=pcwalton
r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 57ab4206167ab091c6745fa5d3ddf6a8c90b15d3
2014-06-04 01:25:28 -04:00
Brendan Zabarauskas
f457bf9b3d servo: Merge #2553 - Remove inline fragment map (from brendanzab:remove-inline-fragment-map); r=pcwalton
This simplifies inline.rs and makes things easier to understand.

I've also added some documentation for `Line`.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 184d8b5bab2aa999280c6c3b7618428bb22b5205
2014-06-02 19:34:16 -04:00
Brendan Zabarauskas
b239a5f811 servo: Merge #2497 - Rename box type (from brendanzab:rename-box-type); r=pcwalton
I tried to make sure to keep 'box' where it made sense, and alter comments so they still make sense.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 547ad2dc480c69798c80a25057ebc9d91ed79389
2014-05-28 20:34:06 -04:00
Simon Sapin
66e96d5fea servo: Merge #2478 - Make ComputedStyle fields private and add getters (from SimonSapin:style-getters); r=metajack
This isolates layout code from upcoming refactoring in properties.rs.mako.

Source-Repo: https://github.com/servo/servo
Source-Revision: 50c2af8ef19de31c4b41100f4278c937ced47c64
2014-05-28 17:49:05 -04:00
Ms2ger
9cfa16cd52 servo: Merge #2433 - Rust upgrade (from mozilla:rustup_20140511)
Source-Repo: https://github.com/servo/servo
Source-Revision: c753f3ee05a25b2bb756c3b0c3131eac7ad58f1a
2014-05-22 18:14:24 -06:00
Glenn Watson
f1ddb9f98b servo: Merge #2411 - Potential fix for #2335 (from glennw:issue-2335); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 891ca7378583418c8739d833b21173f012258cbf
2014-05-22 09:17:13 -04:00
Simon Sapin
37ce7ff4c6 servo: Merge #2432 - Remove OptNewVector and use Vec instead (from SimonSapin:remove-optnewvector); r=larsbergstrom
Before we had Vec<T>, Option<~[T]> was used as an optimization of ~[T] to avoid allocating for empty vectors when that was the common case. Vec<T> itself does this optimization, so there is no need for this anymore.

r? @larsbergstrom

Source-Repo: https://github.com/servo/servo
Source-Revision: 309c9db2ac313cb78760615e893b2723a380eace
2014-05-14 13:43:15 -04:00
Brendan Zabarauskas
9d0710537b servo: Merge #2389 - Add wrapper types for glyph, character, and box indices (from brendanzab:indices); r=pcwalton
r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 9fe115192a38648360440a2fbbebeb0b834aedb9
2014-05-13 16:43:27 -04:00
Brendan Zabarauskas
711b04311c servo: Merge #2365 - Make range generic over signed integers (from brendanzab:generic-range); r=pcwalton
Signed integers allow for generic +ve/-ve offsets.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 8e0febb1091fa601f4caff9a2ce2f4e58944f6c3
2014-05-07 18:10:22 -04:00
Brendan Zabarauskas
d9a801e2dc servo: Merge #2337 - Replace most of the SmallVec0 usages with std::vec::Vec (from brendanzab:smallvec); r=pcwalton
We can't replace the ones in the `style` crate because some functions expect generic `SmallVec`s.

I also did some reorganisation of the `smallvec` macros.

cc @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: b6c785692645b22c8b6119cb28109e85e703e430
2014-05-05 21:01:24 -04:00
Ms2ger
24d211ff8e servo: Merge #2322 - Replace some ~[T] by Vec<T> (from Ms2ger:vec); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: deacda7d225e0b57ec3b7fcebd741c185c111cec
2014-05-05 15:22:13 -04:00
Matt Murphy
4bbc965d43 servo: Merge #2317 - Convert ~[] to Vec (from Ms2ger:rebased-vec); r=Ms2ger
#2271 rebased.

Source-Repo: https://github.com/servo/servo
Source-Revision: 67c9883d9aceb3a3f6395938629c38fc176e62ab
2014-05-04 17:25:39 -04:00
Ms2ger
6b4df23ee7 servo: Merge #2312 - Remove most ~"string"s (from Ms2ger:owned-strings); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: b1d0dac50d30506f85c7711437eb4957ee59cc0b
2014-05-04 06:22:21 -04:00
Josh Matthews
0c3a130356 servo: Merge #2101 - Implement a safe, mostly-sound rooting rooting strategy (from jdm:newroot_rebase); r=Ms2ger
As described in #1764, this strategy uses the following properties:
* DOM members are `JS<T>` types. These cannot be used with being explicitly rooted, but they are required for compiler-derived trace hooks.
* Methods that take DOM type arguments receive `&[mut] JSRef<T>`. These are rooted value references that are cloneable but cannot escape.
* Methods that return DOM values use `Unrooted<T>`. These are values that may or may not be rooted elsewhere, but callers must root them in order to interact with them in any way. One unsoundness hole exists - `Unrooted` values must be rooted ASAP, or there exists the danger that JSAPI calls could be made that could cause the underlying JS value to be GCed.
* All methods are implemented on `JSRef<T>`, enforcing the requirement that all DOM values are rooted for the duration of a method call (with a few exceptions for layout-related code, which cannot root values and therefore interacts with `JS<T>` and `&T` values - this is safe under the assumption that layout code interacts with DOM nodes that are in the tree, therefore rooted, and does not run concurrently with content code)

Source-Repo: https://github.com/servo/servo
Source-Revision: 731e66ff132e41cdc49bc5324c0e15be19c46ec2
2014-05-03 14:25:22 -04:00
Patrick Walton
ba9ebac463 servo: Merge #2235 - Rewrite display list building and opportunistically lay out blocks in parallel even if floats are present (from pcwalton: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

Source-Repo: https://github.com/servo/servo
Source-Revision: 1a88996c0438212a4e77369515a243c9c24c4518
2014-05-02 19:10:20 -04:00
Patrick Walton
d7513ce938 servo: Merge #2174 - layout: Re-enable parallel layout and refactor boxes significantly (from pcwalton:reparallelize); r=SimonSapin
layout: Re-enable parallel layout by removing all `RefCell` instances from `Flow`s; in the process, remove `InlineInfo` in favor of the range-based design that was originally planned and halfway implemented.

Now, the DOM tree structure for inline flows is reflected not by a
series of arrays but instead by a flat list of ranges into the list of
boxes. As part of this, the `border` and `padding` fields, which were
incorrect in the case of inlines and necessitated separate
`noncontent_inline_foo` methods, have been merged into a single
`border_padding` field that is always guaranteed to be correct after
width assignment, even for inlines.

r? @SimonSapin and/or @larsbergstrom

Closes #1280
Closes #1926
Closes #1999
Closes #2013
Closes #2018

Source-Repo: https://github.com/servo/servo
Source-Revision: 1ab22d947008b90e01c565736d3d3953ad491648
2014-05-02 14:58:29 -04:00
Lars Bergstrom
0c4d69cdc5 servo: Merge #2238 - Rust upgrade to April 10th, 2014 (from servo:rustup_20140410c); r=Ms2ger
r? @metajack

Note that all pending submodule PRs must be landed before this should be given r+.

Source-Repo: https://github.com/servo/servo
Source-Revision: 493aa2cdf30fb2ff5886c714030a20d714764b67
2014-04-27 18:52:39 -04:00
Simon Sapin
19187b6be3 servo: Merge #2097 - Start cleaning up pseudo-element flow construction (from SimonSapin:pseudo-cleanup); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 0616297c4633efb9b1be443054a508ec56861358
2014-04-16 17:19:12 -04:00
hyunjunekim
16f2e34e3b servo: Merge #2071 - Support pseudo for inline element(ex. span, etc) (from hyunjunekim:try); r=larsbergstrom
If <span> element has pseudo style, draw pseudo element.

Source-Repo: https://github.com/servo/servo
Source-Revision: 257e1c0130d6716178e2c61f1084b90fd2c94d7b
2014-04-11 16:04:17 -04:00
Manish Goregaokar
44caa0d258 servo: Merge #2045 - Fix "Private type in exported type signature" warnings (from Manishearth:pub-struct-2044); r=SimonSapin
See #2044

Source-Repo: https://github.com/servo/servo
Source-Revision: d7f450dbd7bb7dcc8b0ecf688e999a7ceb3c1154
2014-04-09 10:40:26 -04:00
Josh Matthews
a3b4dbff7f servo: Merge #2041 - Upgrade rust (from servo:rustup_20140321b); r=larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 83aabe327d3b713581a4183b7f23cea0c39a94c9
2014-04-04 18:52:50 -04:00
Simon Sapin
0297c25705 servo: Merge #1988 - Acid2 2 (from pcwalton:acid2-2); r=SimonSapin
r? @metajack @SimonSapin @larsbergstrom @june0cho @hyunjunekim

Source-Repo: https://github.com/servo/servo
Source-Revision: 3ec22157ca20227cd2d648744b6c711ed0ae8366
2014-04-03 21:01:48 -04:00
Junyoung Cho
6b55d50f05 servo: Merge #1973 - Support fixed-layout table and a part of anonymous table object (from june0cho:table_rebase); r=larsbergstrom,metajack
This is a rebase of #1548 on recent master.

There have been many changes since #1548 is first uploaded, so I'm creating new PR.
This PR includes:
 - construction of table-* flows (table-wrapper, table-caption, table, table-rowgroup, table-row, table-cell)
 - fixed-layout table calculation
 - a part of anonymous table object implementation
[CSS 2.1, 17.2.1](http://www.w3.org/TR/CSS21/tables.html#anonymous-boxes) (Step 1-1, 1-2, Step 2)

Source-Repo: https://github.com/servo/servo
Source-Revision: fd5e5cd18b41f0ce2b33fb97fb4e3d75ddbbbceb
2014-03-25 13:40:47 -04:00
Tetsuharu OHZEKI
082a3a0c0b servo: Merge #1867 - Change from TNode/TElement::with_element() to as_element() (from saneyuki:1828); r=pcwalton
Fix #1828

Source-Repo: https://github.com/servo/servo
Source-Revision: 0265fb9784baff3ea025198f3e5e73e6b81fe18e
2014-03-20 14:10:54 -04:00
Tetsuharu OHZEKI
cb6991627c servo: Merge #1864 - Split TCast::to into TCast::to_unchecked and TCast::to (from saneyuki:split_cast_to); r=jdm
fix #1836

Source-Repo: https://github.com/servo/servo
Source-Revision: 831712206865e2c0516009b16e2ac60f754dd1a8
2014-03-20 10:58:36 -04:00
Lars Bergstrom
382dd8c9ba servo: Merge #1934 - Rust upgrade (from larsbergstrom:rust_20140224_squashed); r=jdm
For review only - don't approve yet (need to squash and land submodule updates first).

critic? @metajack

Source-Repo: https://github.com/servo/servo
Source-Revision: f7aa6e3d9b8bfcc0565624f1094241b3b8658bd8
2014-03-19 12:35:17 -04:00
S Pradeep Kumar
9dacacdb7d servo: Merge #1805 - Implement position: absolute for replaced elements (from pradeep90:replaced-absolute-position); r=pcwalton
Add reftests for replaced and nested absolute flows.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6f43c8aaf695f885ebbf88493814474fbb5e9a5c
2014-03-05 17:19:30 -05:00
S Pradeep Kumar
49b6ce84d3 servo: Merge #1681 - Implement position: absolute for non-replaced elements (from pradeep90:absolute-position); r=pcwalton
+ Re-implement fixed positioning using the absolute positioning code.
+ Add reftests for absolute positioning and fixed positioning.
+ Refactor assign_widths in BlockFlow to isolate the calculation of
widths and margins.
+ Pass down details of the Containing Block for absolute and fixed flows
during layout. Use it to calculate the static position of absolute flows.
+ Defer calculation of absolute flow dimensions till we build the
display list.

This implements https://github.com/mozilla/servo/issues/1537 and https://github.com/mozilla/servo/issues/787

Source-Repo: https://github.com/servo/servo
Source-Revision: ada9224d0ef5b403562ebaaeb2e5f66729ffc589
2014-03-03 13:37:33 -05:00
hgentry
ef56cb65fc servo: Merge #1781 - Renamed HTMLIframeElementTypeId to HTMLIFrameElementTypeId (from hgentry:mozilla-servo); r=metajack
Simple change. I hope I'm using github correctly; I'm not too familiar with the PR system. Fixes #1777.

Source-Repo: https://github.com/servo/servo
Source-Revision: 021d32368d569298da619041c9ffe262c91063e4
2014-02-28 11:37:40 -05:00
Patrick Walton
b763ff0d2a servo: Merge #1770 - layout: Rewrite the float context (from pcwalton:rewrite-float-context); r=kmcallister
This rewrites the float context to avoid dynamic failures resulting from
`.clone()` misuse. It also renames the float context to the simpler
`Floats`. The new version is modeled on WebKit's `FloatingObjects`.

r? @kmcallister

Source-Repo: https://github.com/servo/servo
Source-Revision: 580c23f35bd7c43498d61fec04745cedabb8246a
2014-02-27 15:01:49 -05:00
Patrick Walton
b1c3f2acc3 servo: Merge #1700 - Remove leaf sets (from pcwalton:deleafset); r=kmcallister
cc @pradeep90 — This removes leaf sets and should be enough to get you started.

This series of patches combines various layout passes to eliminate the overhead involved with bottom-up passes. It also makes assign-widths and flow construction run in parallel. No raw layout code was touched (except in trivial ways); rather this just changes the way methods are invoked. So the overall level of code cleanliness should remain the same. In fact, this is a (slight) net loss in LOC, and should be an improvement in safety due to not having to ensure that the nodes in the leaf sets stay alive!

This was quite a nice speedup; we're now 38% faster than Blink sequentially for style recalc on the rainbow page and 2.56x faster with 4 cores. (The relatively low speedup is because the LRU cache hits perfectly on that page sequentially.)

There is a data race somewhere in the unsafe code I added, so *do not merge yet*.

Source-Repo: https://github.com/servo/servo
Source-Revision: da16e54243e256dee927f720ce6b9903b62ec14e
2014-02-25 00:04:32 -05:00
Ms2ger
63a5574635 servo: Merge #1739 - Merge HTMLDocument into Document (from Ms2ger:document-cleanup); r=jdm
The specs currently have only Document; this may well change, but the split won't be along the lines we've implemented right now. In the meantime, this simplifies our code quite a bit.

Source-Repo: https://github.com/servo/servo
Source-Revision: 22760b6665c75f6908bcfd7cad4de111187ac6f7
2014-02-24 17:13:46 -05:00
Josh Matthews
6ce95abf91 servo: Merge #1591 - Convert all DOM types from @mut to JSManaged (from jdm:jsmanaged); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: ffcf3b2905b7f9e886904015b1583e93f78f1199
2014-02-24 15:19:51 -05:00
Junyoung Cho
fe3d7796c9 servo: Merge #1728 - Prevent '&nbsp' from stripping as whitespace (from june0cho:whitespace_nbsp); r=SimonSapin
Fix #1727.

Source-Repo: https://github.com/servo/servo
Source-Revision: 013010ddd584573dc9280946ca1ed7042ef40b6f
2014-02-21 08:29:03 -05:00
Youngmin Yoo
9dac034c9a servo: Merge #1664 - Impl <object> element (from recrack:object-element); r=jdm
Support for #1636

Now, we can see eyes in acid2.html :)

Source-Repo: https://github.com/servo/servo
Source-Revision: 1f90716bc10d9134a13ac41a97d217104247010f
2014-02-20 04:28:55 -05:00
Adam Sinnett
e47e98187c servo: Merge #1702 - Change Text, Comment and ProcessingInstructions parent name from element (from quandrum:element_to_characterdata); r=jdm
... to characterdata

All other node's parent type names reflect the actual type of the parent. This change extends that convention to the indicated nodes.

closes #1594

Source-Repo: https://github.com/servo/servo
Source-Revision: a0b55b4c6cfacf3c9d59a07c8ee756c0dffad7f9
2014-02-15 22:05:04 -05:00
Patrick Walton
f96de358d8 servo: Merge #1644 - Implement style sharing and related optimizations (from pcwalton:style-sharing); r=larsbergstrom
This series of patches implements style struct sharing as found in existing browser engines, as well as a bunch of related important optimizations. With them, we are faster than Blink, WebKit, and Gecko on the rainbow page for style recalc in sequential mode by at least 15%. Parallel gains are mixed—the rainbow page turns out to be a degenerate sequential case for the LRU cache used to track candidates for style sharing and so there is no improvement. For cases in which the cache is not hit, such as `perf-rainbow-hard.html`, we are around 25% slower than Blink sequentially, but have very large parallel wins so that we are around 2x faster at style recalc. (Note that parallel flow tree construction will improve this further.)

This patch series also fixes, as near as I can tell, some bugs related to ordering of properties that other properties depend on in selector matching.

r? @larsbergstrom
feedback? @SimonSapin (for selector matching changes)
feedback? @bzbarsky (for style sharing heuristics)

Source-Repo: https://github.com/servo/servo
Source-Revision: 425210b9b404ca769037879f9c2a01c63a0375c8
2014-02-14 20:47:01 -05:00
Bruno de Oliveira Abinader
553065ff14 servo: Merge #1620 - Implement ProcessingInstruction DOM interface (from brunoabinader:dom-processinginstruction); r=Ms2ger
Spec:
http://dom.spec.whatwg.org/#interface-processinginstruction

Closes #1619.

Source-Repo: https://github.com/servo/servo
Source-Revision: 799e0ace786582f79b54d3652de5e84cd88bedbf
2014-02-06 13:46:58 -05:00
Patrick Walton
01a6cb51d2 servo: Merge #1630 - layout: Lazily create boxes for whitespace, speculating that they won't (from pcwalton:short-circuit-whitespace); r=larsbergstrom
be needed.

33% win in flow construction on the rainbow page.

r? @larsbergstrom

Source-Repo: https://github.com/servo/servo
Source-Revision: 5a7d22c43775264359b8ddea8f60d237f5715593
2014-02-06 12:37:55 -05:00
Patrick Walton
b456312b0d servo: Merge #1615 - layout: Refactor flow construction to move around large structs less (from pcwalton:fewer-memmoves); r=larsbergstrom
5% perf win, and a net loss in lines of code.

r? @larsbergstrom

Source-Repo: https://github.com/servo/servo
Source-Revision: 1dbc73ea1c5ab395d03934024e3f1a773b357032
2014-02-05 14:43:47 -05:00
Patrick Walton
e3f58374fb servo: Merge #1605 - layout: Enforce that flow construction is thread-safe (from pcwalton:harden-layout-more); r=metajack
Closes #1584.

r? @metajack

Source-Repo: https://github.com/servo/servo
Source-Revision: 301a057da6e8de11fb50d246fa4c7d267c9c5365
2014-01-31 18:22:36 -08:00
Patrick Walton
617427e3cb servo: Merge #1600 - layout: Use the concurrent hash map for the leaf sets (from pcwalton:use-concurrent-hash-map); r=larsbergstrom
64% improvement in style recalc.

r? @larsbergstrom

Source-Repo: https://github.com/servo/servo
Source-Revision: e2e848c6adae74b564d6696da5a7f9b346347a08
2014-01-30 16:28:18 -08:00
Patrick Walton
acce5f3c6f servo: Merge #1593 - layout: Introduce a DOM leaf set as a prerequisite for parallel flow (from pcwalton:dom-leaf-set); r=metajack
construction.

This will be very slow until we have the concurrent hash table, but we
might as well get it in.

r? @metajack

Source-Repo: https://github.com/servo/servo
Source-Revision: 6c2e48f04d83cb0491138d8cc8a5c81ebc160cc6
2014-01-30 12:10:35 -08:00
Patrick Walton
cf80ead612 servo: Merge #1589 - layout: Stop adding flows to the leaf set that are obviously never going (from pcwalton:stop-removing-flows); r=larsbergstrom
to be leaves.

60% improvement in flow tree construction time on the rainbow page.

r? @larsbergstrom

Source-Repo: https://github.com/servo/servo
Source-Revision: 9f6ab8ed7761edd218ac6e65e74cfb7aafca4cb2
2014-01-29 15:09:52 -08:00
patrick kim
8a9f03867f servo: Merge #1546 - implement inline border (from ksh8281:inline_add2); r=larsbergstrom
implement inline border.
it gives same result in "src/test/html/test_inline_border.html" with chrome,firefox

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: d944567b9a2a7e5757d3f7c681dd4d42c69c58da
2014-01-26 20:55:13 -08:00
Patrick Walton
600bb3b406 servo: Merge #1551 - layout: Port parallel layout over to a generic "work queue" (from pcwalton:generic-parallel-layout); r=larsbergstrom
infrastructure.

The work queue accepts abstract generic "work units", which in this case
are layout operations. The same speedups have been observed.

r? @larsbergstrom

Source-Repo: https://github.com/servo/servo
Source-Revision: 5ca55bb996b2a447ff05c09aa0a8d87e80e75ee5
2014-01-24 20:51:59 -08:00
Patrick Walton
d9b0ec2d04 servo: Merge #1540 - layout: Destroy flows properly under display: none (from pcwalton:destroy-flows); r=larsbergstrom
Fixes a crash on http://en.wikipedia.org/wiki/South_China_Sea

It plants a destructor bomb on flows so that this can't happen again.

r? @larsbergstrom

Source-Repo: https://github.com/servo/servo
Source-Revision: 6e4d96a7f65b33baac8d4a0848e65b3e2e9f0e37
2014-01-24 10:41:25 -08:00