Emilio Cobos Álvarez
ffc45e9aaa
style: Inline RestyleData.
...
Bug: 1368236
MozReview-Commit-ID: 49s3SO0PMHf
2017-06-16 03:36:18 +02:00
Emilio Cobos Álvarez
deaa935f5b
layout: Stop doing unsafe transmutes between refcell references.
...
This commit splits the style and layout data in two separate refcells.
These transmutes have been a source of trouble (for example on Android), and
they feel like a hack anyway.
Fixes #16982
2017-05-25 10:31:40 +02:00
Anthony Ramine
499e81410f
Parse -moz-alt-content as a whole content value ( fixes #15726 )
2017-05-22 13:59:36 +02:00
Simon Sapin
02e1901bc1
Upgrade to rustc 1.19.0-nightly (ced823e26 2017-05-07)
2017-05-08 12:46:03 +02:00
Bobby Holley
3fcfc9c5fc
Bug 1325734 - Simplify ElementData and eliminate the concept of consuming styles. r=emilio
2017-01-09 11:51:37 -08:00
Bobby Holley
962a4a79bb
Bug 1325734 - Remove Servo Layout's dependency on the initial-ness of the style. r=emilio
2017-01-09 11:51:36 -08:00
Bobby Holley
b9d99390ad
Switch to crates.io for atomic_refcell.
2017-01-03 18:14:27 -08:00
Bobby Holley
992f7dddf4
Bug 1317016 - Basic infrastructure for RestyleHint-driven traversal.
...
MozReview-Commit-ID: 7wH5XcILVmX
2016-11-24 17:07:38 -08:00
Bobby Holley
fb70ee2c0c
Drop style data from descendants on display:none.
...
MozReview-Commit-ID: 8ls43oAGWRg
2016-11-01 11:03:04 -07:00
Bobby Holley
71b9004d86
Replace begin_styling with a centralized mechanism to set a node up for either styling or restyling.
...
We also make sure that an element never has an ElementData with ElementDataStyles::Uninitialized,
and eagerly call prepare_for_styling whenever an ElementData is instantiated.
MozReview-Commit-ID: 9YP6eSmdMt0
2016-11-01 11:03:04 -07:00
Bobby Holley
be89f73675
Rename NodeData and associated data structures to Element*.
...
MozReview-Commit-ID: 96VsmsoZtjZ
2016-10-29 14:58:07 -07:00
Bobby Holley
5442fbec3f
Hoist most styling functionality from TNode to TElement.
...
MozReview-Commit-ID: DZ8ZrsZIiAU
2016-10-29 13:45:40 -07:00
Bobby Holley
46e29184bd
Move core pseudo-element handling to ThreadSafeLayoutElement.
2016-10-28 10:47:57 -07:00
Bobby Holley
adf0fe9b9a
Rearrange some data structures in preparation for the new incremental restyle algorithm.
...
MozReview-Commit-ID: 8iOALQylOuK
2016-10-21 13:00:01 -07:00
Bobby Holley
bfbbef6ecd
Remove borrow_data and mutate_data from TNode.
...
The new restyle architecture doesn't store these things in consistent
places, so we need a more abstract API.
2016-10-10 20:36:31 -07:00
Bobby Holley
687e1f701c
Rename PrivateStyleData to PersistentStyleData and use AtomicRefCell instead of RefCell as a container.
...
This allows us to eliminate the unsafe borrows. \o/
MozReview-Commit-ID: 29hpGaWUFQz
2016-10-02 19:19:52 -07:00
UK992
93a103ba73
Reorder use
statements
2016-09-09 04:55:19 +02:00
Simon Sapin
789807b7b0
Remove the ComputedValue traits and style_struct_traits
2016-07-20 08:42:40 +02:00
Simon Sapin
f7f81e0ed0
Use our copy of RefCell for style data.
...
This allows removing `#![feature(as_unsafe_cell)]` in geckolib
and make progress towards #11815 .
2016-06-23 16:13:49 +02:00
Ms2ger
65b93c20b7
Remove the layout_wrapper re-exports from layout::wrapper.
2016-06-20 19:08:10 +02:00
Ms2ger
0616a60fd9
Move ServoLayoutNode and related structs to script.
2016-06-20 19:08:05 +02:00
Ms2ger
a8bb3d8d22
Make ServoLayoutNode::debug_id() less convoluted.
2016-06-20 19:08:03 +02:00
Ms2ger
7de3d165ad
Introduce LayoutJS<Node>::opaque() to replace OpaqueNodeMethods::from_jsmanaged().
2016-06-20 19:08:02 +02:00
Ms2ger
0d0b268138
Move LayoutNode and related traits to script_layout_interface.
2016-06-20 19:07:54 +02:00
Ms2ger
000e2de57a
Move HTMLCanvasData to script_layout_interface.
2016-06-20 19:04:41 +02:00
Ms2ger
6b847eb93a
Introduce LayoutNodeType and LayoutElementType enums.
2016-06-20 19:02:49 +02:00
Ms2ger
afc7118a67
Introduce a ThreadSafeLayoutNodeHelpers trait for methods to stay in layout.
2016-06-20 19:02:48 +02:00
Ms2ger
dac8878467
Introduce ThreadSafeLayoutNode::borrow_layout_data_unchecked.
2016-06-20 19:02:47 +02:00
Ms2ger
1039de8e7d
Introduce a node_text_content method.
2016-06-20 19:02:46 +02:00
Ms2ger
16d6555f4d
Move some more methods into the LayoutNodeLayoutData trait.
2016-06-20 19:02:45 +02:00
Ms2ger
c910ef2072
Introduce a LayoutNodeLayoutData trait for methods to stay in layout.
2016-06-20 19:02:44 +02:00
Ms2ger
310cb5a326
Introduce get_style_and_layout_data() methods.
2016-06-20 19:02:43 +02:00
Ms2ger
8b05833e52
Split initialize_data into two.
...
The first one handles the layout-specific part, and calls the second one to
handle the script-specific part.
2016-06-20 19:02:42 +02:00
Ms2ger
d50c166786
Use get_style_data() where possible.
2016-06-20 19:02:41 +02:00
Ms2ger
72632ac16d
Implement get_style_data() methods.
2016-06-20 19:02:40 +02:00
Ms2ger
bea96f60e3
Introduce PartialStyleAndLayoutData.
2016-06-20 19:02:39 +02:00
Ms2ger
6aaf3e6a01
Move OpaqueStyleAndLayoutData to script_layout_interface.
2016-06-20 19:02:38 +02:00
Ms2ger
5c03dd8eb1
Introduce a script_layout_interface crate and move RestyleDamage to it.
2016-06-20 19:02:36 +02:00
Ms2ger
e723d72570
Move the initialize_data method out of the TNode trait.
...
This reduces the dependency of TNode implementations on layout types.
2016-06-13 15:21:29 +01:00
Ms2ger
172aa226cc
Use Ref/RefMut::map rather than transmute for ServoLayoutNode.
2016-06-13 12:29:14 +01:00
Ms2ger
6a1722e18d
Make layout only depend on script::layout_interface.
2016-06-07 13:46:49 +02:00
Ms2ger
684510bc94
Stop re-exporting AttrValue.
2016-06-07 13:15:23 +02:00
Ms2ger
858ea2eb9a
Move the definition of ServoThreadSafeLayoutNode::iframe_pipeline_id to script.
2016-06-07 11:39:28 +02:00
Ms2ger
5859109197
Move the definition of ServoThreadSafeLayoutNode::canvas_data to script.
2016-06-07 11:10:40 +02:00
Ms2ger
ef3c6a7773
Move the definition of ServoThreadSafeLayoutNode::image_url to script.
2016-06-07 10:57:20 +02:00
Ms2ger
093b7b7710
Move the definition of ServoThreadSafeLayoutNode::selection to script.
2016-06-07 10:30:52 +02:00
Anthony Ramine
ff899dc703
Implement :placeholder-shown ( fixes #10561 )
2016-06-03 14:45:14 +02:00
Josh Matthews
3cb8af20c2
Remove empty lines following braces.
2016-05-27 13:32:05 -04:00
Bobby Holley
b521c293dc
Add string_cache override for geckolib based on gecko atoms.
...
The work in these patches is based on Ms2ger's gecko-atom crate.
2016-05-18 11:33:38 -07:00
Per Lundberg
2f7ed1d73e
Removed unused imports
...
This fixes #11185 .
2016-05-15 22:24:26 +03:00