aboutsummaryrefslogtreecommitdiffstats
path: root/components/servo/lib.rs
diff options
context:
space:
mode:
authorPaul Rouget <me@paulrouget.com>2019-04-17 10:18:14 +0200
committerPaul Rouget <me@paulrouget.com>2019-04-29 10:04:51 +0200
commit21ed7653f491d9e378aa7a334b40e7327f4bfc90 (patch)
tree28ef0394a720aa569d25dd2f6989a16ea11a3708 /components/servo/lib.rs
parentd58ea974baff1b51a43d2e2bf4b287ff11991a8d (diff)
downloadservo-21ed7653f491d9e378aa7a334b40e7327f4bfc90.tar.gz
servo-21ed7653f491d9e378aa7a334b40e7327f4bfc90.zip
Refactoring of the Glutin port in preparation of the compositor refactoring.
Diffstat (limited to 'components/servo/lib.rs')
-rw-r--r--components/servo/lib.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/components/servo/lib.rs b/components/servo/lib.rs
index d919613c9c0..d3d8d8eb1cb 100644
--- a/components/servo/lib.rs
+++ b/components/servo/lib.rs
@@ -67,7 +67,7 @@ use canvas::webgl_thread::WebGLThreads;
use compositing::compositor_thread::{
CompositorProxy, CompositorReceiver, InitialCompositorState, Msg,
};
-use compositing::windowing::{WindowEvent, WindowMethods};
+use compositing::windowing::{EmbedderMethods, WindowEvent, WindowMethods};
use compositing::{CompositingReason, IOCompositor, ShutdownState};
#[cfg(all(
not(target_os = "windows"),
@@ -148,7 +148,7 @@ type MediaBackend = media_platform::MediaBackend;
/// application Servo is embedded in. Clients then create an event
/// loop to pump messages between the embedding application and
/// various browser components.
-pub struct Servo<Window: WindowMethods + 'static> {
+pub struct Servo<Window: WindowMethods + 'static + ?Sized> {
compositor: IOCompositor<Window>,
constellation_chan: Sender<ConstellationMsg>,
embedder_receiver: EmbedderReceiver,
@@ -197,9 +197,9 @@ impl webrender_api::RenderNotifier for RenderNotifier {
impl<Window> Servo<Window>
where
- Window: WindowMethods + 'static,
+ Window: WindowMethods + 'static + ?Sized,
{
- pub fn new(window: Rc<Window>) -> Servo<Window> {
+ pub fn new(embedder: Box<EmbedderMethods>, window: Rc<Window>) -> Servo<Window> {
// Global configuration options, parsed from the command line.
let opts = opts::get();
@@ -218,9 +218,9 @@ where
// messages to client may need to pump a platform-specific event loop
// to deliver the message.
let (compositor_proxy, compositor_receiver) =
- create_compositor_channel(window.create_event_loop_waker());
+ create_compositor_channel(embedder.create_event_loop_waker());
let (embedder_proxy, embedder_receiver) =
- create_embedder_channel(window.create_event_loop_waker());
+ create_embedder_channel(embedder.create_event_loop_waker());
let time_profiler_chan = profile_time::Profiler::create(
&opts.time_profiling,
opts.time_profiler_trace_path.clone(),
@@ -288,7 +288,7 @@ where
let webvr_services = if pref!(dom.webvr.enabled) {
let mut services = VRServiceManager::new();
services.register_defaults();
- window.register_vr_services(&mut services, &mut webvr_heartbeats);
+ embedder.register_vr_services(&mut services, &mut webvr_heartbeats);
Some(services)
} else {
None