diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 14b45c5615d..efb18a8d285 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -2314,7 +2314,7 @@ impl Window { self.Document().url() } - pub fn with_layout<'a, T>(&self, call: impl FnOnce(&mut dyn Layout) -> T) -> Result { + pub fn with_layout(&self, call: impl FnOnce(&mut dyn Layout) -> T) -> Result { ScriptThread::with_layout(self.pipeline_id(), call) } @@ -2414,9 +2414,7 @@ impl Window { reply: IpcSender>, ) { *self.devtools_marker_sender.borrow_mut() = Some(reply); - self.devtools_markers - .borrow_mut() - .extend(markers.into_iter()); + self.devtools_markers.borrow_mut().extend(markers); } pub fn drop_devtools_timeline_markers(&self, markers: Vec) { diff --git a/components/script/layout_dom/node.rs b/components/script/layout_dom/node.rs index a941009dcda..2b30f678a09 100644 --- a/components/script/layout_dom/node.rs +++ b/components/script/layout_dom/node.rs @@ -54,12 +54,12 @@ pub struct ServoLayoutNode<'dom, LayoutDataType: LayoutDataTrait> { pub(super) phantom: PhantomData, } -//// Those are supposed to be sound, but they aren't because the entire system -//// between script and layout so far has been designed to work around their -//// absence. Switching the entire thing to the inert crate infra will help. +/// Those are supposed to be sound, but they aren't because the entire system +/// between script and layout so far has been designed to work around their +/// absence. Switching the entire thing to the inert crate infra will help. /// -//// FIXME(mrobinson): These are required because Layout 2020 sends non-threadsafe -//// nodes to different threads. This should be adressed in a comprehensive way. +/// FIXME(mrobinson): These are required because Layout 2020 sends non-threadsafe +/// nodes to different threads. This should be adressed in a comprehensive way. unsafe impl Send for ServoLayoutNode<'_, LayoutDataType> {} unsafe impl Sync for ServoLayoutNode<'_, LayoutDataType> {} @@ -97,7 +97,9 @@ impl<'dom, LayoutDataType: LayoutDataTrait> ServoLayoutNode<'dom, LayoutDataType phantom: PhantomData, } } - + /// # Safety + /// + /// This function should not be called if there is no TrustedNodeAddress. pub unsafe fn new(address: &TrustedNodeAddress) -> Self { ServoLayoutNode::from_layout_js(LayoutDom::from_trusted_node_address(*address)) } diff --git a/components/script/layout_dom/shadow_root.rs b/components/script/layout_dom/shadow_root.rs index 090d1e84f8b..3da0e2cc537 100644 --- a/components/script/layout_dom/shadow_root.rs +++ b/components/script/layout_dom/shadow_root.rs @@ -71,6 +71,9 @@ impl<'dom, LayoutDataType: LayoutDataTrait> ServoShadowRoot<'dom, LayoutDataType } } + /// # Safety + /// + /// This function should not mutate StyleSharedRwLockReadGuard. pub unsafe fn flush_stylesheets( &self, stylist: &mut Stylist,