aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/shadowroot.rs
diff options
context:
space:
mode:
authorFernando Jiménez Moreno <ferjmoreno@gmail.com>2019-01-22 12:58:42 +0100
committerFernando Jiménez Moreno <ferjmoreno@gmail.com>2019-04-26 10:17:44 +0200
commit569b4fce102a423b513b8282b7a12c02641fa61f (patch)
treef583f45e36307a19a635721c3c1eecb6e8d1a03b /components/script/dom/shadowroot.rs
parent4304ee28dceffa8ad66f5b088754705bc2bb3b4e (diff)
downloadservo-569b4fce102a423b513b8282b7a12c02641fa61f.tar.gz
servo-569b4fce102a423b513b8282b7a12c02641fa61f.zip
Element attachShadow implementation
Diffstat (limited to 'components/script/dom/shadowroot.rs')
-rw-r--r--components/script/dom/shadowroot.rs14
1 files changed, 11 insertions, 3 deletions
diff --git a/components/script/dom/shadowroot.rs b/components/script/dom/shadowroot.rs
index 7f21ca57ad0..c16c77f6b64 100644
--- a/components/script/dom/shadowroot.rs
+++ b/components/script/dom/shadowroot.rs
@@ -4,9 +4,10 @@
use crate::dom::bindings::codegen::Bindings::NodeBinding::NodeBinding::NodeMethods;
use crate::dom::bindings::codegen::Bindings::ShadowRootBinding::ShadowRootBinding::ShadowRootMethods;
-use crate::dom::bindings::codegen::Bindings::ShadowRootBinding::ShadowRootMode;
+use crate::dom::bindings::codegen::Bindings::ShadowRootBinding::{self, ShadowRootMode};
use crate::dom::bindings::inheritance::Castable;
use crate::dom::bindings::num::Finite;
+use crate::dom::bindings::reflector::reflect_dom_object;
use crate::dom::bindings::root::{Dom, DomRoot, MutNullableDom};
use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::document::Document;
@@ -35,8 +36,7 @@ pub struct ShadowRoot {
}
impl ShadowRoot {
- #[allow(dead_code)]
- pub fn new_inherited(host: &Element, document: &Document) -> ShadowRoot {
+ fn new_inherited(host: &Element, document: &Document) -> ShadowRoot {
ShadowRoot {
document_fragment: DocumentFragment::new_inherited(document),
has_browsing_context: true,
@@ -46,6 +46,14 @@ impl ShadowRoot {
}
}
+ pub fn new(host: &Element, document: &Document) -> DomRoot<ShadowRoot> {
+ reflect_dom_object(
+ Box::new(ShadowRoot::new_inherited(host, document)),
+ document.window(),
+ ShadowRootBinding::Wrap,
+ )
+ }
+
pub fn get_focused_element(&self) -> Option<DomRoot<Element>> {
//XXX get retargeted focused element
None