diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-07-05 18:55:36 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-05 18:55:36 -0700 |
commit | abdf2f28a0bd25a76a31b4fd2410c7a87448ed54 (patch) | |
tree | 762287ff3121993d51e3741e84a2a99ac93435ce /components/script_layout_interface | |
parent | 3d557b6f25eb9dbd084cb53bbc9a9cf93bad825b (diff) | |
parent | 187a47d89d2a4187abca85690429f85293e618cd (diff) | |
download | servo-abdf2f28a0bd25a76a31b4fd2410c7a87448ed54.tar.gz servo-abdf2f28a0bd25a76a31b4fd2410c7a87448ed54.zip |
Auto merge of #11886 - bholley:attr_refactor, r=SimonSapin
Refactor attribute handling to avoid marshalling attributes from Gecko into Servo
This marshaling is slow, because Gecko stores attributes as UTF-16 and does not atomize them in all cases, and it turns out that the need for them in Servo is pretty minimal. With some refactoring across servo and rust-selectors we can fix this.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11886)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script_layout_interface')
-rw-r--r-- | components/script_layout_interface/Cargo.toml | 2 | ||||
-rw-r--r-- | components/script_layout_interface/wrapper_traits.rs | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/components/script_layout_interface/Cargo.toml b/components/script_layout_interface/Cargo.toml index 51b767c753f..41c1f6e2598 100644 --- a/components/script_layout_interface/Cargo.toml +++ b/components/script_layout_interface/Cargo.toml @@ -26,7 +26,7 @@ plugins = {path = "../plugins"} profile_traits = {path = "../profile_traits"} range = {path = "../range"} script_traits = {path = "../script_traits"} -selectors = {version = "0.6", features = ["heap_size"]} +selectors = {version = "0.7", features = ["heap_size"]} string_cache = {version = "0.2.20", features = ["heap_size"]} style = {path = "../style"} url = {version = "1.0.0", features = ["heap_size"]} diff --git a/components/script_layout_interface/wrapper_traits.rs b/components/script_layout_interface/wrapper_traits.rs index a816321ec28..bdbf31c37c8 100644 --- a/components/script_layout_interface/wrapper_traits.rs +++ b/components/script_layout_interface/wrapper_traits.rs @@ -86,7 +86,7 @@ pub trait LayoutNode: TNode { pub trait ThreadSafeLayoutNode: Clone + Copy + Sized + PartialEq { type ConcreteThreadSafeLayoutElement: ThreadSafeLayoutElement<ConcreteThreadSafeLayoutNode = Self> - + ::selectors::Element<Impl=ServoSelectorImpl>; + + ::selectors::Element<Impl=ServoSelectorImpl, AttrString=String>; type ChildrenIterator: Iterator<Item = Self> + Sized; /// Creates a new `ThreadSafeLayoutNode` for the same `LayoutNode` @@ -351,7 +351,7 @@ pub trait DangerousThreadSafeLayoutNode: ThreadSafeLayoutNode { } pub trait ThreadSafeLayoutElement: Clone + Copy + Sized + - ::selectors::Element<Impl=ServoSelectorImpl> + + ::selectors::Element<Impl=ServoSelectorImpl, AttrString=String> + PresentationalHintsSynthetizer { type ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode<ConcreteThreadSafeLayoutElement = Self>; |