Clark Gaebel
f552e2f750
try to reset flows which need reflow, since reflow isn't yet idempotent
2014-10-14 10:33:46 -07:00
Patrick Walton
ee2ccc4f87
script: Use atom comparison in more places, especially for attributes.
...
75% improvement in style recalc for Guardians of the Galaxy.
2014-10-14 10:32:40 -07:00
Ms2ger
16e071168c
Don't borrow CharacterData.data from layout.
...
This should fix the most frequent intermittent wpt failure.
2014-10-14 10:49:33 +02:00
Tim Taubert
cbe50f1f14
Privatize Element
2014-10-13 13:25:44 +02:00
Tim Taubert
28061b1c91
Privatize Node
2014-10-13 13:25:44 +02:00
Tim Taubert
9a52bb8310
Privatize InheritTypes
2014-10-13 11:13:12 +02:00
Patrick Walton
2a790d06dd
Use Gecko's simpler Bloom filter instead of one based on hash
...
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.
2014-10-10 17:02:27 -07:00
Clark Gaebel
24bff2416b
Factors out DOM traversal, keeping the code in parallel
free of 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.
2014-10-10 14:55:18 -04:00
Clark Gaebel
d12c6e7383
Incremental Style Recalc
...
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
2014-10-09 12:55:21 -04:00
Patrick Walton
a0b369ae7d
layout: Mark the styles of elements with pseudos as unshareable.
...
Makes multiple `<br>` elements work, since those are implemented via
`before` pseudos.
2014-10-08 22:46:54 -07:00
Tim Taubert
b9e23563bb
Support [*|attr], attribute selectors in any namespace ( fixes #1558 )
2014-10-08 11:01:31 +02:00
Cameron Zwarich
fb810c08dc
Remove trailing whitespace
...
The Mach test runner doesn't actually make these failures yet, which is
tracked by #3482 .
2014-10-06 14:40:42 -07:00
Manish Goregaokar
a8f96ddfb2
Remove Traceable/Untraceable from node.rs
2014-10-05 22:36:08 +05:30
Manish Goregaokar
dcda2cb94b
Remove Traceable from htmliframelement.rs
2014-10-05 22:16:41 +05:30
Manish Goregaokar
96f6c2fd67
Remove Traceable from element.rs
2014-10-05 22:09:12 +05:30
Manish Goregaokar
4f574b4732
Remove Traceable from characterdata.rs
2014-10-05 21:33:43 +05:30
Josh Matthews
8112859d55
Disallow toggling radio buttons. Use generated content for checkboxes and radio buttons. Switching to the glyph 0 for the average advance width.
2014-10-01 15:37:40 -04:00
Josh Matthews
f70bb68503
Implement simple layout for text, button, radio, and checkbox inputs. Implement simple interaction for checkboxes and radio buttons.
2014-10-01 15:35:42 -04:00
Cameron Zwarich
79b4ec99b4
Convert TNode / TElement to use self methods rather than &self
2014-09-30 21:26:19 -07:00
Cameron Zwarich
ccc5d976f7
Refine a lifetime parameter on TElement's get_local_name
2014-09-30 21:22:24 -07:00
Cameron Zwarich
4ef0f39c78
Remove a prefix from a method name by manually resolving methods
2014-09-30 21:21:00 -07:00
Keegan McAllister
d50114c41d
Use string-cache's Namespace type
2014-09-29 21:40:54 -07:00
Keegan McAllister
6429750b33
Eliminate servo_util::atom
...
We only needed this for Encodable, and now we use JSTraceable instead.
2014-09-29 18:39:36 -07:00
Cameron Zwarich
b2a3519011
Remove the 'static lifetime parameters from TElement methods
...
This improves the static correctness of layout's use of DOM nodes.
Fixes #2595 .
2014-09-27 11:14:10 -07:00
Cameron Zwarich
bf025e9b9b
Refine a lifetime parameter
2014-09-27 11:14:10 -07:00
Cameron Zwarich
61ae80e186
Add an extra lifetime parameter to TElement / TNode
...
This isn't used for anything yet, but it's easier to propagate this
change in a separate commit.
2014-09-27 11:14:10 -07:00
Patrick Walton
47fc64052c
layout: Support any display
property in generated content, and allow
...
tables to clear floats.
Improves the GitHub header.
2014-09-26 14:09:25 -07:00
Keegan McAllister
dc86e83654
Eliminate warnings
2014-09-20 13:00:55 -07:00
Tetsuharu OHZEKI
de0866ab42
Use Untraceable<T> to hold LayoutDataRef instead of manual Encodable implementation.
2014-09-20 15:19:01 +09:00
Patrick Walton
b4db9aeaeb
Handle generated content with display: block
correctly during flow
...
construction.
The iteration was incorrect here. Although it accidentally worked
before, it will cause problems when we have incremental style
recalculation.
The `after_block_iteration` reftest will become interesting once we have
incremental style recalc.
2014-09-19 12:25:37 -07:00
Patrick Walton
f5c0124363
layout: Remove layout/extra.rs
.
...
Also, rename a few methods in layout that arguably had confusing names.
2014-09-18 11:33:04 -07:00
Josh Matthews
9607b468bc
Revert "script: Use atom comparison in more places, especially for attributes." for persistent test failures.
...
This reverts commit 874db26104
.
2014-09-18 09:20:19 -04:00
Patrick Walton
874db26104
script: Use atom comparison in more places, especially for attributes.
...
75% improvement in style recalc for Guardians of the Galaxy.
2014-09-17 13:17:12 -07:00
Clark Gaebel
acd83ff47b
Added a bloom filter to CSS selector matching.
2014-09-15 16:29:45 -07:00
Gilles Leblanc
81a0d065f1
Make use of the list of Atoms in ClassSelector
...
Make use of the list of Atoms in the class attribute selector
(ClassSelector) in selector_matching.
Fixes #3111
2014-09-11 23:19:26 -04:00
Jack Moffitt
c6ab60dbfc
Cargoify servo
2014-09-08 20:21:42 -06:00