aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/shadowroot.rs
diff options
context:
space:
mode:
authorFernando Jiménez Moreno <ferjmoreno@gmail.com>2019-02-12 10:38:29 +0100
committerFernando Jiménez Moreno <ferjmoreno@gmail.com>2019-04-26 10:17:47 +0200
commitcd07574235bb4e9b3f8d23b83408ef636bdcef9f (patch)
treeb675a5c5fd1aa6b21e4121d6c1c953579c2a1318 /components/script/dom/shadowroot.rs
parente9f0e76d3c53888683fca4c9330f4b5884238f01 (diff)
downloadservo-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.rs16
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> {