diff options
author | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2019-02-05 20:50:44 +0100 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2019-04-26 10:17:47 +0200 |
commit | 3bb50cc4795c3ac98d25e2b54d871ded2c3f3fed (patch) | |
tree | 736690ba430ac32c66157ca93a2d304c5a969820 /components/script/dom/node.rs | |
parent | 0d6bd24245df02e8e745a273e37cd53d70c19ce6 (diff) | |
download | servo-3bb50cc4795c3ac98d25e2b54d871ded2c3f3fed.tar.gz servo-3bb50cc4795c3ac98d25e2b54d871ded2c3f3fed.zip |
ShadowRoot stylesheet list
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r-- | components/script/dom/node.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index b20f8cf037e..e1a40c13982 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -54,6 +54,7 @@ use crate::dom::nodelist::NodeList; use crate::dom::processinginstruction::ProcessingInstruction; use crate::dom::range::WeakRangeVec; use crate::dom::shadowroot::ShadowRoot; +use crate::dom::stylesheetlist::StyleSheetListOwner; use crate::dom::svgsvgelement::{LayoutSVGSVGElementHelpers, SVGSVGElement}; use crate::dom::text::Text; use crate::dom::virtualmethods::{vtable_for, VirtualMethods}; @@ -2786,6 +2787,22 @@ pub fn document_from_node<T: DerivedFrom<Node> + DomObject>(derived: &T) -> DomR derived.upcast().owner_doc() } +pub fn shadow_root_from_node<T: DerivedFrom<Node> + DomObject>( + derived: &T, +) -> Option<DomRoot<ShadowRoot>> { + derived.upcast().owner_shadow_root() +} + +pub fn stylesheets_owner_from_node<T: DerivedFrom<Node> + DomObject>( + derived: &T, +) -> Box<StyleSheetListOwner> { + if let Some(shadow_root) = shadow_root_from_node(derived) { + Box::new(Dom::from_ref(&*shadow_root)) + } else { + Box::new(Dom::from_ref(&*document_from_node(derived))) + } +} + pub fn window_from_node<T: DerivedFrom<Node> + DomObject>(derived: &T) -> DomRoot<Window> { let document = document_from_node(derived); DomRoot::from_ref(document.window()) |