diff --git a/components/layout_thread/dom_wrapper.rs b/components/layout_thread/dom_wrapper.rs index 3ad5927c89b..4e6f187d5d5 100644 --- a/components/layout_thread/dom_wrapper.rs +++ b/components/layout_thread/dom_wrapper.rs @@ -141,7 +141,7 @@ impl<'ln> ServoLayoutNode<'ln> { impl<'ln> NodeInfo for ServoLayoutNode<'ln> { fn is_element(&self) -> bool { - unsafe { self.node.is_element_for_layout() } + self.node.is_element_for_layout() } fn is_text_node(&self) -> bool { diff --git a/components/layout_thread_2020/dom_wrapper.rs b/components/layout_thread_2020/dom_wrapper.rs index 673f6d29db9..15616315542 100644 --- a/components/layout_thread_2020/dom_wrapper.rs +++ b/components/layout_thread_2020/dom_wrapper.rs @@ -148,7 +148,7 @@ impl<'ln> ServoLayoutNode<'ln> { impl<'ln> NodeInfo for ServoLayoutNode<'ln> { fn is_element(&self) -> bool { - unsafe { self.node.is_element_for_layout() } + self.node.is_element_for_layout() } fn is_text_node(&self) -> bool { diff --git a/components/script/dom/bindings/root.rs b/components/script/dom/bindings/root.rs index 9f571f1379c..4f4d376e951 100644 --- a/components/script/dom/bindings/root.rs +++ b/components/script/dom/bindings/root.rs @@ -441,6 +441,15 @@ where debug_assert!(thread_state::get().is_layout()); self.value.downcast::().map(|value| LayoutDom { value }) } + + /// Returns whether this inner object is a U. + pub fn is(&self) -> bool + where + U: DerivedFrom, + { + debug_assert!(thread_state::get().is_layout()); + self.value.is::() + } } impl LayoutDom<'_, T> diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 5f8d518b514..eaceeb9ea2c 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1316,7 +1316,7 @@ pub trait LayoutNodeHelpers<'dom> { unsafe fn owner_doc_for_layout(self) -> LayoutDom<'dom, Document>; fn containing_shadow_root_for_layout(self) -> Option>; - unsafe fn is_element_for_layout(self) -> bool; + fn is_element_for_layout(self) -> bool; unsafe fn get_flag(self, flag: NodeFlags) -> bool; unsafe fn set_flag(self, flag: NodeFlags, value: bool); @@ -1347,9 +1347,8 @@ impl<'dom> LayoutNodeHelpers<'dom> for LayoutDom<'dom, Node> { } #[inline] - #[allow(unsafe_code)] - unsafe fn is_element_for_layout(self) -> bool { - (*self.unsafe_get()).is::() + fn is_element_for_layout(self) -> bool { + self.is::() } #[inline]