aboutsummaryrefslogtreecommitdiffstats
path: root/ports/servoshell/egl/app_state.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ports/servoshell/egl/app_state.rs')
-rw-r--r--ports/servoshell/egl/app_state.rs48
1 files changed, 16 insertions, 32 deletions
diff --git a/ports/servoshell/egl/app_state.rs b/ports/servoshell/egl/app_state.rs
index 8207fb3f2fb..a65ed7424f4 100644
--- a/ports/servoshell/egl/app_state.rs
+++ b/ports/servoshell/egl/app_state.rs
@@ -11,18 +11,16 @@ use keyboard_types::{CompositionEvent, CompositionState};
use log::{debug, error, info, warn};
use raw_window_handle::{RawWindowHandle, WindowHandle};
use servo::base::id::WebViewId;
-use servo::compositing::windowing::EmbedderMethods;
use servo::euclid::{Point2D, Rect, Scale, Size2D, Vector2D};
use servo::servo_geometry::DeviceIndependentPixel;
use servo::webrender_api::ScrollLocation;
use servo::webrender_api::units::{DeviceIntRect, DeviceIntSize, DevicePixel};
use servo::{
- AllowOrDenyRequest, ContextMenuResult, EmbedderProxy, EventLoopWaker, ImeEvent, InputEvent,
- InputMethodType, Key, KeyState, KeyboardEvent, LoadStatus, MediaSessionActionType,
- MediaSessionEvent, MouseButton, MouseButtonAction, MouseButtonEvent, MouseMoveEvent,
- NavigationRequest, PermissionRequest, RenderingContext, ScreenGeometry, Servo, ServoDelegate,
- ServoError, SimpleDialog, TouchEvent, TouchEventType, TouchId, WebView, WebViewBuilder,
- WebViewDelegate, WindowRenderingContext,
+ AllowOrDenyRequest, ContextMenuResult, ImeEvent, InputEvent, InputMethodType, Key, KeyState,
+ KeyboardEvent, LoadStatus, MediaSessionActionType, MediaSessionEvent, MouseButton,
+ MouseButtonAction, MouseButtonEvent, MouseMoveEvent, NavigationRequest, PermissionRequest,
+ RenderingContext, ScreenGeometry, Servo, ServoDelegate, ServoError, SimpleDialog, TouchEvent,
+ TouchEventType, TouchId, WebView, WebViewBuilder, WebViewDelegate, WindowRenderingContext,
};
use url::Url;
@@ -682,38 +680,24 @@ impl RunningAppState {
}
}
-pub(super) struct ServoEmbedderCallbacks {
- waker: Box<dyn EventLoopWaker>,
- #[cfg(feature = "webxr")]
- xr_discovery: Option<servo::webxr::Discovery>,
+#[cfg(feature = "webxr")]
+pub(crate) struct XrDiscoveryWebXrRegistry {
+ xr_discovery: RefCell<Option<servo::webxr::Discovery>>,
}
-impl ServoEmbedderCallbacks {
- pub(super) fn new(
- waker: Box<dyn EventLoopWaker>,
- #[cfg(feature = "webxr")] xr_discovery: Option<servo::webxr::Discovery>,
- ) -> Self {
+#[cfg(feature = "webxr")]
+impl XrDiscoveryWebXrRegistry {
+ pub(crate) fn new(xr_discovery: Option<servo::webxr::Discovery>) -> Self {
Self {
- waker,
- #[cfg(feature = "webxr")]
- xr_discovery,
+ xr_discovery: RefCell::new(xr_discovery),
}
}
}
-impl EmbedderMethods for ServoEmbedderCallbacks {
- fn create_event_loop_waker(&mut self) -> Box<dyn EventLoopWaker> {
- debug!("EmbedderMethods::create_event_loop_waker");
- self.waker.clone()
- }
-
- #[cfg(feature = "webxr")]
- fn register_webxr(
- &mut self,
- registry: &mut servo::webxr::MainThreadRegistry,
- _embedder_proxy: EmbedderProxy,
- ) {
- debug!("EmbedderMethods::register_xr");
+#[cfg(feature = "webxr")]
+impl servo::webxr::WebXrRegistry for XrDiscoveryWebXrRegistry {
+ fn register(&self, registry: &mut servo::webxr::MainThreadRegistry) {
+ debug!("XrDiscoveryWebXrRegistry::register");
if let Some(discovery) = self.xr_discovery.take() {
registry.register(discovery);
}