Make StyleSheetListOwner an enum instead of a trait object

This commit is contained in:
Fernando Jiménez Moreno 2019-03-01 18:10:18 +01:00
parent 8b353ee3ce
commit 2350f0e3d1
7 changed files with 177 additions and 134 deletions

View file

@ -2802,13 +2802,14 @@ pub fn shadow_root_from_node<T: DerivedFrom<Node> + DomObject>(
derived.upcast().owner_shadow_root()
}
#[allow(unrooted_must_root)]
pub fn stylesheets_owner_from_node<T: DerivedFrom<Node> + DomObject>(
derived: &T,
) -> Box<StyleSheetListOwner> {
) -> StyleSheetListOwner {
if let Some(shadow_root) = shadow_root_from_node(derived) {
Box::new(Dom::from_ref(&*shadow_root))
StyleSheetListOwner::ShadowRoot(Dom::from_ref(&*shadow_root))
} else {
Box::new(Dom::from_ref(&*document_from_node(derived)))
StyleSheetListOwner::Document(Dom::from_ref(&*document_from_node(derived)))
}
}