From 86c4e014b40805ba7048f6357e4276680d3a7451 Mon Sep 17 00:00:00 2001 From: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> Date: Thu, 15 Aug 2024 21:05:29 +0900 Subject: [PATCH] Replace the lazy_static crate with `std::sync::LazyLock` in components/shared (#33060) * replace in pub_domains.rs Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * replace in embedder/resources.rs Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * replace in base/id.rs Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * replace in net/lib.rs Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * remove lazy_static from components/shared Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> --------- Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> --- Cargo.lock | 5 ---- .../shared/background_hang_monitor/Cargo.toml | 1 - components/shared/base/Cargo.toml | 1 - components/shared/base/id.rs | 23 ++++++++----------- components/shared/canvas/Cargo.toml | 1 - components/shared/embedder/Cargo.toml | 1 - components/shared/embedder/resources.rs | 10 ++++---- components/shared/net/Cargo.toml | 1 - components/shared/net/lib.rs | 7 +++--- components/shared/net/pub_domains.rs | 6 ++--- 10 files changed, 19 insertions(+), 37 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fad14769ea7..f8245101a08 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -305,7 +305,6 @@ version = "0.0.1" dependencies = [ "base", "ipc-channel", - "lazy_static", "malloc_size_of", "malloc_size_of_derive", "parking_lot", @@ -335,7 +334,6 @@ version = "0.0.1" dependencies = [ "crossbeam-channel", "ipc-channel", - "lazy_static", "malloc_size_of", "malloc_size_of_derive", "parking_lot", @@ -669,7 +667,6 @@ dependencies = [ "crossbeam-channel", "euclid", "ipc-channel", - "lazy_static", "malloc_size_of", "malloc_size_of_derive", "pixels", @@ -1610,7 +1607,6 @@ dependencies = [ "crossbeam-channel", "ipc-channel", "keyboard-types", - "lazy_static", "log", "num-derive", "num-traits", @@ -4537,7 +4533,6 @@ dependencies = [ "hyper_serde", "image", "ipc-channel", - "lazy_static", "log", "malloc_size_of", "malloc_size_of_derive", diff --git a/components/shared/background_hang_monitor/Cargo.toml b/components/shared/background_hang_monitor/Cargo.toml index 1ac91d57a7c..61fc03e0438 100644 --- a/components/shared/background_hang_monitor/Cargo.toml +++ b/components/shared/background_hang_monitor/Cargo.toml @@ -15,7 +15,6 @@ doctest = false [dependencies] base = { workspace = true } ipc-channel = { workspace = true } -lazy_static = { workspace = true } malloc_size_of = { workspace = true } malloc_size_of_derive = { workspace = true } parking_lot = { workspace = true } diff --git a/components/shared/base/Cargo.toml b/components/shared/base/Cargo.toml index 1d1aa0bb701..ec01fb5cc20 100644 --- a/components/shared/base/Cargo.toml +++ b/components/shared/base/Cargo.toml @@ -15,7 +15,6 @@ doctest = false [dependencies] crossbeam-channel = { workspace = true } ipc-channel = { workspace = true } -lazy_static = { workspace = true } malloc_size_of = { workspace = true } malloc_size_of_derive = { workspace = true } parking_lot = { workspace = true } diff --git a/components/shared/base/id.rs b/components/shared/base/id.rs index 339356bf35b..30b4744a2a4 100644 --- a/components/shared/base/id.rs +++ b/components/shared/base/id.rs @@ -9,10 +9,9 @@ use std::cell::Cell; use std::fmt; use std::num::NonZeroU32; -use std::sync::Arc; +use std::sync::{Arc, LazyLock}; use ipc_channel::ipc::{self, IpcReceiver, IpcSender}; -use lazy_static::lazy_static; use malloc_size_of::malloc_size_of_is_0; use malloc_size_of_derive::MallocSizeOf; use parking_lot::Mutex; @@ -108,17 +107,15 @@ impl PipelineNamespaceInstaller { } } -lazy_static! { - /// A per-process unique pipeline-namespace-installer. - /// Accessible via PipelineNamespace. - /// - /// Use PipelineNamespace::set_installer_sender to initiate with a sender to the constellation, - /// when a new process has been created. - /// - /// Use PipelineNamespace::fetch_install to install a unique pipeline-namespace from the calling thread. - static ref PIPELINE_NAMESPACE_INSTALLER: Arc> = - Arc::new(Mutex::new(PipelineNamespaceInstaller::default())); -} +/// A per-process unique pipeline-namespace-installer. +/// Accessible via PipelineNamespace. +/// +/// Use PipelineNamespace::set_installer_sender to initiate with a sender to the constellation, +/// when a new process has been created. +/// +/// Use PipelineNamespace::fetch_install to install a unique pipeline-namespace from the calling thread. +static PIPELINE_NAMESPACE_INSTALLER: LazyLock>> = + LazyLock::new(|| Arc::new(Mutex::new(PipelineNamespaceInstaller::default()))); /// Each pipeline ID needs to be unique. However, it also needs to be possible to /// generate the pipeline ID from an iframe element (this simplifies a lot of other diff --git a/components/shared/canvas/Cargo.toml b/components/shared/canvas/Cargo.toml index f62f48c73a7..4a8fb4393dd 100644 --- a/components/shared/canvas/Cargo.toml +++ b/components/shared/canvas/Cargo.toml @@ -18,7 +18,6 @@ base = { workspace = true } crossbeam-channel = { workspace = true } euclid = { workspace = true } ipc-channel = { workspace = true } -lazy_static = { workspace = true } malloc_size_of = { workspace = true } malloc_size_of_derive = { workspace = true } pixels = { path = "../../pixels" } diff --git a/components/shared/embedder/Cargo.toml b/components/shared/embedder/Cargo.toml index ecef60b73f3..fed42bde17a 100644 --- a/components/shared/embedder/Cargo.toml +++ b/components/shared/embedder/Cargo.toml @@ -16,7 +16,6 @@ cfg-if = { workspace = true } crossbeam-channel = { workspace = true } ipc-channel = { workspace = true } keyboard-types = { workspace = true } -lazy_static = { workspace = true } log = { workspace = true } num-derive = "0.4" num-traits = { workspace = true } diff --git a/components/shared/embedder/resources.rs b/components/shared/embedder/resources.rs index 808e380287d..9be7be3f8b7 100644 --- a/components/shared/embedder/resources.rs +++ b/components/shared/embedder/resources.rs @@ -3,13 +3,12 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use std::path::PathBuf; -use std::sync::RwLock; +use std::sync::{LazyLock, RwLock}; use cfg_if::cfg_if; -use lazy_static::lazy_static; -lazy_static! { - static ref RES: RwLock>> = { +static RES: LazyLock>>> = + LazyLock::new(|| { cfg_if! { if #[cfg(servo_production)] { RwLock::new(None) @@ -21,8 +20,7 @@ lazy_static! { RwLock::new(Some(resources_for_tests())) } } - }; -} + }); pub fn set(reader: Box) { *RES.write().unwrap() = Some(reader); diff --git a/components/shared/net/Cargo.toml b/components/shared/net/Cargo.toml index ab1b1ba5e38..89b1a69e0d6 100644 --- a/components/shared/net/Cargo.toml +++ b/components/shared/net/Cargo.toml @@ -23,7 +23,6 @@ hyper = { workspace = true } hyper_serde = { workspace = true } image = { workspace = true } ipc-channel = { workspace = true } -lazy_static = { workspace = true } log = { workspace = true } malloc_size_of = { workspace = true } malloc_size_of_derive = { workspace = true } diff --git a/components/shared/net/lib.rs b/components/shared/net/lib.rs index db3519f30ad..554f2334b8a 100644 --- a/components/shared/net/lib.rs +++ b/components/shared/net/lib.rs @@ -5,6 +5,7 @@ #![deny(unsafe_code)] use std::fmt::Display; +use std::sync::LazyLock; use std::time::{SystemTime, UNIX_EPOCH}; use base::id::HistoryStateId; @@ -16,7 +17,6 @@ use hyper_serde::Serde; use ipc_channel::ipc::{self, IpcReceiver, IpcSender}; use ipc_channel::router::ROUTER; use ipc_channel::Error as IpcError; -use lazy_static::lazy_static; use malloc_size_of::malloc_size_of_is_0; use malloc_size_of_derive::MallocSizeOf; use mime::Mime; @@ -819,6 +819,5 @@ pub fn http_percent_encode(bytes: &[u8]) -> String { percent_encoding::percent_encode(bytes, HTTP_VALUE).to_string() } -lazy_static! { - pub static ref PRIVILEGED_SECRET: u32 = servo_rand::ServoRng::default().next_u32(); -} +pub static PRIVILEGED_SECRET: LazyLock = + LazyLock::new(|| servo_rand::ServoRng::default().next_u32()); diff --git a/components/shared/net/pub_domains.rs b/components/shared/net/pub_domains.rs index ca56a6f0bbb..5aa0d47afe4 100644 --- a/components/shared/net/pub_domains.rs +++ b/components/shared/net/pub_domains.rs @@ -16,9 +16,9 @@ use std::collections::HashSet; use std::iter::FromIterator; +use std::sync::LazyLock; use embedder_traits::resources::{self, Resource}; -use lazy_static::lazy_static; use servo_url::{Host, ImmutableOrigin, ServoUrl}; #[derive(Clone, Debug, Default)] @@ -28,9 +28,7 @@ pub struct PubDomainRules { exceptions: HashSet, } -lazy_static! { - static ref PUB_DOMAINS: PubDomainRules = load_pub_domains(); -} +static PUB_DOMAINS: LazyLock = LazyLock::new(|| load_pub_domains()); impl<'a> FromIterator<&'a str> for PubDomainRules { fn from_iter(iter: T) -> Self