aboutsummaryrefslogtreecommitdiffstats
path: root/components/servo/tests/common/mod.rs
diff options
context:
space:
mode:
authorMartin Robinson <mrobinson@igalia.com>2025-04-16 18:58:52 +0200
committerGitHub <noreply@github.com>2025-04-16 16:58:52 +0000
commitd8a7abda69dc2e03a845cb053c28764babd5b9de (patch)
treebb15a30aa8729eda1feaeec4ea9a9d7294020be7 /components/servo/tests/common/mod.rs
parent7a8e75266ff2c138f212a301de9774eafb2b3143 (diff)
downloadservo-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.rs21
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 }
}