| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
They are to be removed from the language in the next rust upgrade.
|
| |
|
|
|
|
| |
Improves Reddit, GitHub, etc.
|
|
|
|
|
|
| |
list building into multiple functions.
This should have no functional changes; it's just code cleanup.
|
| |
|
|
|
|
|
| |
I'm not sure how we want to handle Linux cursors, and GLFW has no
ability to set cursors (short of disabling it and managing it yourself).
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This doesn't touch some "render" words which are used as general means.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This makes these parameters self-documenting.
This patch does not attempt to push those enums into the data
structures that feed calls to this function.
Fixes #4158.
|
|
|
|
|
|
|
|
|
| |
This adds the infrastructure necessary to support stacking contexts that
are not containing blocks for absolutely-positioned elements. Our
infrastructure did not support that before. This minor revamp actually
ended up simplifying the logic around display list building and
stacking-relative position computation for absolutely-positioned flows,
which was nice.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
first-class.
This implements the scheme described here:
https://groups.google.com/forum/#!topic/mozilla.dev.servo/sZVPSfPVfkg
This commit changes Servo to generate one display list per stacking
context instead of one display list per layer. This is purely a
refactoring; there are no functional changes. Performance is essentially
the same as before. However, there should be numerous future benefits
that this is intended to allow for:
* It makes the code simpler to understand because the "new layer needed"
vs. "no new layer needed" code paths are more consolidated.
* It makes it easy to support CSS properties that did not fit into our
previous flat display list model (without unconditionally layerizing
them):
o `opacity` should be easy to support because the stacking context
provides the higher-level grouping of display items to which opacity
is to be applied.
o `transform` can be easily supported because the stacking context
provides a place to stash the transformation matrix. This has the side
benefit of nicely separating the transformation matrix from the
clipping regions.
* The `flatten` logic is now O(1) instead of O(n) and now only needs to
be invoked for pseudo-stacking contexts (right now: just floats),
instead of for every stacking context.
* Layers are now a proper tree instead of a flat list as far as layout
is concerned, bringing us closer to a production-quality
compositing/layers framework.
* This commit opens the door to incremental display list construction at
the level of stacking contexts.
Future performance improvements could come from optimizing allocation of
display list items, and, of course, incremental display list
construction.
|
| |
|
|
|
|
|
|
| |
Instead of creating a display list for the entire page, only create one
for an area that expands around the viewport. On my machine this makes
incremental layout of http://timecube.com 50% faster.
|
| |
|
|
|
|
|
|
|
|
|
| |
Instead of looking at the display tree, have ContentBox(es)Query consult
the flow tree. This allow optimizing away parts of the display tree
later. To do this we need to be more careful about how we send reflow
requests, only querying the flow tree when possible.
Fixes #3790.
|
|
|
|
|
|
| |
out-of-flow" and "reconstruct flow" damage bits.
This is needed for good performance on the maze solver.
|
|\
| |
| |
| |
| |
| | |
These were showing up in the profile.
r? @glennw
|
| |
| |
| |
| |
| |
| | |
in display list construction.
These were showing up in the profile.
|
|\ \
| |/
|/|
| |
| |
| | |
These should have no effect on functionality.
r? @metajack
|
| |
| |
| |
| | |
These should have no effect on functionality.
|
|\ \
| |/
|/|
| | |
r? @pcwalton
|
| |
| |
| |
| | |
r? @pcwalton
|
| | |
|
| | |
|
|/
|
|
|
|
| |
Currently, both restyle/flow construction _and_ reflow are skipped
during resize. Reflow should not be in that list. This patch fixes
that.
|
| |
|
| |
|
|
|
|
| |
turned on.
|
| |
|
|\
| |
| |
| |
| |
| | |
The flow tree is currently dumped for debugging purposes early on in
the flow process, so many values are still zero. If we wait to dump it
until later, the output will more accurately reflect the real flow tree.
|
| |
| |
| |
| |
| |
| | |
The flow tree is currently dumped for debugging purposes early on in
the flow process, so many values are still zero. If we wait to dump it
until later, the output will more accurately reflect the real flow tree.
|
| | |
|
|/
|
|
|
|
|
|
| |
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
|
|\
| |
| |
| | |
@pcwalton r?
|
| |
| |
| |
| | |
@pcwalton r?
|
|/
|
|
|
| |
This patch switches FlowRefs to using the Deref and DerefMut traits, instead of
the custom `get` and `get_mut` functions.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
|/| |
|
| |
| |
| |
| | |
like bootstrap3.
|
|\ \
| |/
|/|
| |
| |
| | |
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.
|
| | |
|
|\ \
| |/
|/| |
|