This allows us to do layout off the main thread, which is necessary for
transitions.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 46d4ef81674d1de4b9066185c7e63c32b04c167e
50% layout improvement in a photo gallery demo I'm working on.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 2a9f29f3824479da357d5cded2dc0847e6854813
- Most of util::memory has been moved into profile::mem, though the
`SizeOf` trait and related things remain in util::memory. The
`SystemMemoryReporter` code is now in a submodule
profile::mem::system_reporter.
- util::time has been moved entirely into profile::time.
Source-Repo: https://github.com/servo/servo
Source-Revision: d1268ec9c6633684270015e7b2619181aeb47b8b
The new `Vec::append` method is clearer and potentially faster.
Source-Repo: https://github.com/servo/servo
Source-Revision: 646f82147946c3221a6de0e575b4750dc61d5610
Fixes deprecation warnings. Also removes a workaround for a fixed bug in Rust.
Source-Repo: https://github.com/servo/servo
Source-Revision: 2346c9b94055f84a536808e40ad0b596ee21fbf4
This fixes a bug in finding the top left corner of an RTL block in physical coordinates. (The old code used the `start` point of the `position` rect, which is not always the top left.)
It also fixes the setting of `position.start.i` in certain mixed LTR/RTL cases.
There is still a bug related to `position.size` for RTL blocks with margins. See the FIXME comments for details.
r? @pcwalton or @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: b255b49e2e2246ff8bf7f8751088bfe0a0ee41a2
These changeset implements the beginnings of fine-grained measurement of Servo's data structures.
@pcwalton, @jdm: are you likely reviewers for this?
Source-Repo: https://github.com/servo/servo
Source-Revision: f093620922621e1877393b03968ed0ce767fdf12
Cycles were being created in the flow tree since absolutely positioned
descendants had pointers to their containing blocks. This adds
WeakFlowRef (based on Weak<T>) and makes these backpointers weak
references. This also harmonizes our custom Arc<T>, FlowRef, to be
consistent with the upstream implementation.
Fixes#4915.
Source-Repo: https://github.com/servo/servo
Source-Revision: f5ddbcf19fcd477dee61d6c03434ef7cfca188bf
Don't add a stylesheet if the current device does not match the media
query specified in a link or style tag.
Cheers,
cyndis
Source-Repo: https://github.com/servo/servo
Source-Revision: 660ea05ddb3b17b0bb914cb09968cbcf7c6b1aec
When a viewport is resized, the computed values for a style containing viewport percentage length units become stale. However, there's no way for those styles to be invalidated after a resize. As a solution, this commit invalidates the computed values cache after a resize has occurred, which is probably over-kill.
A better solution would probably be to track under what conditions computed values remain valid, and invalidate them as indicated.
Source-Repo: https://github.com/servo/servo
Source-Revision: a50807051b0ff9a46ce6f76189617534b8294276
Table layout code has been refactored to push the spacing down to
rowgroups and rows; this will aid the implementation of
`border-collapse` as well.
r? @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 8e811229bae6b338fabcd7df602079730c942889
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.
Reconstructed from #5138 via raw diffing.
r? @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: fd1bb49a65dd998c8ef9890a1576aaf62ddfdba1
...and vice-versa. This is not a complete fix for all mixed-direction layout cases, but it fixes enough problems to make some simple test cases pass, like tha attached reftest.
There are FIXME comments for many of the remaining issues. In particular, this does not yet handle RTL layout of fixed/absolute elements, nor does it completely fix the overconstrained_block reftest.
r? @SimonSapin or @pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 2df4dd9e098671fdbe2951f6669473e7737d6ed3
`background-size` per CSS-BACKGROUNDS § 3.9.
Nearest neighbor interpolation is used for `crisp-edges`, like Firefox.
A note has been added that we could do better if we wanted to.
Multiple backgrounds are not yet supported.
Rebase of #4368. Fixes#4368.
Source-Repo: https://github.com/servo/servo
Source-Revision: e1a50c771973fe3223cf98feea5d570375d68fa9
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.
Moved from #4544, because Critic.
Fixes#4544.
Source-Repo: https://github.com/servo/servo
Source-Revision: 5cd6316addc1acf145ed3220719387ef6ef08d2f
Move culling of transparent display items to paint task rather than display list builder, so that hit testing detects mouse over on transparent background elements.
Source-Repo: https://github.com/servo/servo
Source-Revision: ac4a690e8fa98da4e4f7adbc2d888a94c6d99e0e
Also introduce a clear() function to layout data which will be used to clear items such as compositor layouts.
Clear the layout data when a node becomes display:none.
Source-Repo: https://github.com/servo/servo
Source-Revision: 65454e51c806c7d91c869a7b4afce872b4eeea57
Inline fragments that are part of a text run don't have interior borders.
So don't draw interior borders or include them when calculating positioning.
Fixes https://github.com/servo/servo/issues/4658, where multiple text nodes that are adjacent have distinct borders.
r? @Ms2ger, @pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: b2f099026a8c649daf063dc7e119a514c2680697
Prior to incremental layout, the code would remove the existing
construction result. However, with incremental layout the construction result
is cloned rather than removed. This change ensures that the previous
construction result is cleared when an element's display type
changes to none.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8ad3c5aeb65e473a4c099b12e9439dfc556024f8
This patch will iterate through the DisplayList after the reflow is done and print its elements (as also any sub-lists associated to a child node stacking context).
Source-Repo: https://github.com/servo/servo
Source-Revision: 67b78983db31128604339e2fd7f391e878cf9f9b
The behavior of this code was changed in #3631. The parent no longer sets the inline size to a temporary value.
r? @pcwalton or @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 213b90fdacc3dc27d59e145ae37484dbc808f316
When executing servo with proper flags (i.e. --debug dump-flow-tree), it should print the flow tree. We had the code, but it was commented.
Source-Repo: https://github.com/servo/servo
Source-Revision: 2eb71bda83c175ec4af9aca4e22b74ef7fea9097