diff options
author | Martin Robinson <mrobinson@igalia.com> | 2025-04-16 18:58:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-16 16:58:52 +0000 |
commit | d8a7abda69dc2e03a845cb053c28764babd5b9de (patch) | |
tree | bb15a30aa8729eda1feaeec4ea9a9d7294020be7 /components/servo/tests/common/mod.rs | |
parent | 7a8e75266ff2c138f212a301de9774eafb2b3143 (diff) | |
download | servo-d8a7abda69dc2e03a845cb053c28764babd5b9de.tar.gz servo-d8a7abda69dc2e03a845cb053c28764babd5b9de.zip |
libservo: Expose a `ServoBuilder` (#36549)
Expose a `ServoBuilder` for easily creating Servo instances using
default values. This change enables removing `EmbedderTraits`.
Testing: This is covered by `Servo` unit tests.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Diffstat (limited to 'components/servo/tests/common/mod.rs')
-rw-r--r-- | components/servo/tests/common/mod.rs | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/components/servo/tests/common/mod.rs b/components/servo/tests/common/mod.rs index 9f6b3f03449..8c00826a0d8 100644 --- a/components/servo/tests/common/mod.rs +++ b/components/servo/tests/common/mod.rs @@ -8,13 +8,12 @@ use std::sync::{Arc, OnceLock}; use std::time::Duration; use anyhow::Error; -use compositing::windowing::EmbedderMethods; use compositing_traits::rendering_context::{RenderingContext, SoftwareRenderingContext}; use crossbeam_channel::{Receiver, Sender, unbounded}; use dpi::PhysicalSize; use embedder_traits::EventLoopWaker; use parking_lot::Mutex; -use servo::Servo; +use servo::{Servo, ServoBuilder}; pub struct ServoTest { servo: Servo, @@ -42,14 +41,6 @@ impl ServoTest { assert!(rendering_context.make_current().is_ok()); #[derive(Clone)] - struct EmbedderMethodsImpl(Arc<AtomicBool>); - impl EmbedderMethods for EmbedderMethodsImpl { - fn create_event_loop_waker(&mut self) -> Box<dyn embedder_traits::EventLoopWaker> { - Box::new(EventLoopWakerImpl(self.0.clone())) - } - } - - #[derive(Clone)] struct EventLoopWakerImpl(Arc<AtomicBool>); impl EventLoopWaker for EventLoopWakerImpl { fn clone_box(&self) -> Box<dyn EventLoopWaker> { @@ -62,13 +53,9 @@ impl ServoTest { } let user_event_triggered = Arc::new(AtomicBool::new(false)); - let servo = Servo::new( - Default::default(), - Default::default(), - rendering_context.clone(), - Box::new(EmbedderMethodsImpl(user_event_triggered)), - Default::default(), - ); + let servo = ServoBuilder::new(rendering_context.clone()) + .event_loop_waker(Box::new(EventLoopWakerImpl(user_event_triggered))) + .build(); Self { servo } } |