mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Implement shadow-including root, set node as in doc when connected. Makes JS work in shadow trees
This commit is contained in:
parent
48975840dd
commit
640fc04743
5 changed files with 44 additions and 16 deletions
|
@ -14,7 +14,7 @@ use crate::dom::bindings::codegen::Bindings::ElementBinding::ElementMethods;
|
|||
use crate::dom::bindings::codegen::Bindings::EventBinding::EventMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::FunctionBinding::Function;
|
||||
use crate::dom::bindings::codegen::Bindings::HTMLTemplateElementBinding::HTMLTemplateElementMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::NodeBinding::{GetRootNodeOptions, NodeMethods};
|
||||
use crate::dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::WindowBinding::{ScrollBehavior, ScrollToOptions};
|
||||
use crate::dom::bindings::codegen::UnionTypes::NodeOrString;
|
||||
|
@ -484,9 +484,6 @@ impl Element {
|
|||
return Err(Error::InvalidState);
|
||||
}
|
||||
|
||||
self.upcast::<Node>()
|
||||
.set_flag(NodeFlags::IS_IN_SHADOW_TREE, true);
|
||||
|
||||
// Steps 4, 5 and 6.
|
||||
Ok(self
|
||||
.shadow_root
|
||||
|
@ -3293,7 +3290,9 @@ impl Element {
|
|||
/// <https://dom.spec.whatwg.org/#connected>
|
||||
pub fn is_connected(&self) -> bool {
|
||||
let node = self.upcast::<Node>();
|
||||
let root = node.GetRootNode();
|
||||
let mut options = GetRootNodeOptions::empty();
|
||||
options.composed = true; // shadow included.
|
||||
let root = node.GetRootNode(&options);
|
||||
root.is::<Document>()
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue