diff options
author | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2019-02-12 10:38:29 +0100 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2019-04-26 10:17:47 +0200 |
commit | cd07574235bb4e9b3f8d23b83408ef636bdcef9f (patch) | |
tree | b675a5c5fd1aa6b21e4121d6c1c953579c2a1318 /components/script/dom/shadowroot.rs | |
parent | e9f0e76d3c53888683fca4c9330f4b5884238f01 (diff) | |
download | servo-cd07574235bb4e9b3f8d23b83408ef636bdcef9f.tar.gz servo-cd07574235bb4e9b3f8d23b83408ef636bdcef9f.zip |
Expose a way to flush shadow root stylesheets from layout
Diffstat (limited to 'components/script/dom/shadowroot.rs')
-rw-r--r-- | components/script/dom/shadowroot.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/components/script/dom/shadowroot.rs b/components/script/dom/shadowroot.rs index d99f0c86493..7f06b486b1d 100644 --- a/components/script/dom/shadowroot.rs +++ b/components/script/dom/shadowroot.rs @@ -21,6 +21,7 @@ use dom_struct::dom_struct; use servo_arc::Arc; use style::author_styles::AuthorStyles; use style::dom::TElement; +use style::shared_lock::SharedRwLockReadGuard; use style::stylesheets::Stylesheet; // https://dom.spec.whatwg.org/#interface-shadowroot @@ -122,6 +123,7 @@ pub trait LayoutShadowRootHelpers { unsafe fn get_style_data_for_layout<'a, E: TElement>( &self, ) -> &'a AuthorStyles<StyleSheetInDocument>; + unsafe fn flush_stylesheets<E: TElement>(&self, guard: &SharedRwLockReadGuard); } impl LayoutShadowRootHelpers for LayoutDom<ShadowRoot> { @@ -136,14 +138,16 @@ impl LayoutShadowRootHelpers for LayoutDom<ShadowRoot> { unsafe fn get_style_data_for_layout<'a, E: TElement>( &self, ) -> &'a AuthorStyles<StyleSheetInDocument> { - { - let mut author_styles = (*self.unsafe_get()).author_styles.borrow_mut_for_layout(); - // let document = &(*self.unsafe_get()).document; - // let guard = document.style_shared_lock().read(); - // author_styles.flush::<E>(&document.device(), document.quirks_mode(), &guard); - } (*self.unsafe_get()).author_styles.borrow_for_layout() } + + #[inline] + #[allow(unsafe_code)] + unsafe fn flush_stylesheets<E: TElement>(&self, guard: &SharedRwLockReadGuard) { + let document = &(*self.unsafe_get()).document; + let mut author_styles = (*self.unsafe_get()).author_styles.borrow_mut_for_layout(); + author_styles.flush::<E>(&document.device(), document.quirks_mode(), guard); + } } impl StyleSheetListOwner for Dom<ShadowRoot> { |