mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
First bits of shadow dom layout
This commit is contained in:
parent
be06f1e9b3
commit
7c9e8aa4cc
5 changed files with 118 additions and 30 deletions
|
@ -295,8 +295,8 @@ impl Node {
|
|||
if parent_in_shadow_tree {
|
||||
if let Some(shadow_root) = self.downcast::<ShadowRoot>() {
|
||||
node.set_owner_shadow_root(&*shadow_root);
|
||||
} else {
|
||||
node.set_owner_shadow_root(&*self.owner_shadow_root());
|
||||
} else if let Some(shadow_root) = self.owner_shadow_root() {
|
||||
node.set_owner_shadow_root(&*shadow_root);
|
||||
}
|
||||
}
|
||||
let mut is_connected = parent_is_connected;
|
||||
|
@ -946,8 +946,8 @@ impl Node {
|
|||
self.owner_doc.set(Some(document));
|
||||
}
|
||||
|
||||
pub fn owner_shadow_root(&self) -> DomRoot<ShadowRoot> {
|
||||
self.owner_shadow_root.get().unwrap()
|
||||
pub fn owner_shadow_root(&self) -> Option<DomRoot<ShadowRoot>> {
|
||||
self.owner_shadow_root.get()
|
||||
}
|
||||
|
||||
pub fn set_owner_shadow_root(&self, shadow_root: &ShadowRoot) {
|
||||
|
@ -1184,6 +1184,7 @@ pub trait LayoutNodeHelpers {
|
|||
unsafe fn next_sibling_ref(&self) -> Option<LayoutDom<Node>>;
|
||||
|
||||
unsafe fn owner_doc_for_layout(&self) -> LayoutDom<Document>;
|
||||
unsafe fn owner_shadow_root_for_layout(&self) -> Option<LayoutDom<ShadowRoot>>;
|
||||
|
||||
unsafe fn is_element_for_layout(&self) -> bool;
|
||||
unsafe fn get_flag(&self, flag: NodeFlags) -> bool;
|
||||
|
@ -1260,6 +1261,12 @@ impl LayoutNodeHelpers for LayoutDom<Node> {
|
|||
.unwrap()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
#[allow(unsafe_code)]
|
||||
unsafe fn owner_shadow_root_for_layout(&self) -> Option<LayoutDom<ShadowRoot>> {
|
||||
(*self.unsafe_get()).owner_shadow_root.get_inner_as_layout()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
#[allow(unsafe_code)]
|
||||
unsafe fn get_flag(&self, flag: NodeFlags) -> bool {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue