aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/element.rs7
-rw-r--r--components/script/dom/node.rs2
-rw-r--r--components/script/dom/webidls/Element.webidl2
3 files changed, 10 insertions, 1 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 6dc7b7c3147..599efd4a8cc 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -2642,6 +2642,13 @@ impl ElementMethods for Element {
let doc = document_from_node(self);
doc.enter_fullscreen(self)
}
+
+ // XXX Hidden under dom.shadowdom.enabled pref. Only exposed to be able
+ // to test partial Shadow DOM support for UA widgets.
+ // https://dom.spec.whatwg.org/#dom-element-attachshadow
+ fn AttachShadow(&self) -> Fallible<DomRoot<ShadowRoot>> {
+ self.attach_shadow()
+ }
}
impl VirtualMethods for Element {
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index 7dd402796df..4aa6f390b16 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -23,7 +23,6 @@ use crate::dom::bindings::inheritance::{EventTargetTypeId, HTMLElementTypeId, No
use crate::dom::bindings::inheritance::{SVGElementTypeId, SVGGraphicsElementTypeId, TextTypeId};
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
use crate::dom::bindings::root::{Dom, DomRoot, DomSlice, LayoutDom, MutNullableDom};
-use crate::dom::shadowroot::ShadowRoot;
use crate::dom::bindings::str::{DOMString, USVString};
use crate::dom::bindings::xmlname::namespace_from_domstring;
use crate::dom::characterdata::{CharacterData, LayoutCharacterDataHelpers};
@@ -51,6 +50,7 @@ use crate::dom::mutationobserver::{Mutation, MutationObserver, RegisteredObserve
use crate::dom::nodelist::NodeList;
use crate::dom::processinginstruction::ProcessingInstruction;
use crate::dom::range::WeakRangeVec;
+use crate::dom::shadowroot::ShadowRoot;
use crate::dom::svgsvgelement::{LayoutSVGSVGElementHelpers, SVGSVGElement};
use crate::dom::text::Text;
use crate::dom::virtualmethods::{vtable_for, VirtualMethods};
diff --git a/components/script/dom/webidls/Element.webidl b/components/script/dom/webidls/Element.webidl
index b7de03ac344..af14f81b373 100644
--- a/components/script/dom/webidls/Element.webidl
+++ b/components/script/dom/webidls/Element.webidl
@@ -81,6 +81,8 @@ interface Element : Node {
void insertAdjacentText(DOMString where_, DOMString data);
[CEReactions, Throws]
void insertAdjacentHTML(DOMString position, DOMString html);
+
+ [Throws, Pref="dom.shadowdom.enabled"] ShadowRoot attachShadow();
};
// http://dev.w3.org/csswg/cssom-view/#extensions-to-the-element-interface