diff options
author | Bobby Holley <bobbyholley@gmail.com> | 2016-10-28 15:37:22 -0700 |
---|---|---|
committer | Bobby Holley <bobbyholley@gmail.com> | 2016-11-01 11:03:04 -0700 |
commit | fb70ee2c0c907fc079350baa116f7315cf8869e3 (patch) | |
tree | cf8a9fc2a34de25c56084c3dbd399c244c5778c8 /components/script/dom/node.rs | |
parent | 1a5e2b4673c559de289e78f4a5357d4e44b0dfa2 (diff) | |
download | servo-fb70ee2c0c907fc079350baa116f7315cf8869e3.tar.gz servo-fb70ee2c0c907fc079350baa116f7315cf8869e3.zip |
Drop style data from descendants on display:none.
MozReview-Commit-ID: 8ls43oAGWRg
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r-- | components/script/dom/node.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index ec2c45bfe8c..767a3132eb3 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -952,6 +952,7 @@ pub trait LayoutNodeHelpers { unsafe fn get_style_and_layout_data(&self) -> Option<OpaqueStyleAndLayoutData>; unsafe fn init_style_and_layout_data(&self, OpaqueStyleAndLayoutData); + unsafe fn take_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData; fn text_content(&self) -> String; fn selection(&self) -> Option<Range<usize>>; @@ -1051,6 +1052,14 @@ impl LayoutNodeHelpers for LayoutJS<Node> { (*self.unsafe_get()).style_and_layout_data.set(Some(val)); } + #[inline] + #[allow(unsafe_code)] + unsafe fn take_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData { + let val = (*self.unsafe_get()).style_and_layout_data.get().unwrap(); + (*self.unsafe_get()).style_and_layout_data.set(None); + val + } + #[allow(unsafe_code)] fn text_content(&self) -> String { if let Some(text) = self.downcast::<Text>() { |