libservo: Re-export types that are used by servoshell (#39586)

servoshell should not depend on internal Servo crates. Instead,
`libervo` should re-export any types that are used by embedders. This
change does that re-export for private types currently used by
servoshell.

Testing: This just changes the way types are imported, so curent tests
should suffice.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
Martin Robinson 2025-09-30 18:36:05 +02:00 committed by GitHub
parent 6a1a3aea08
commit e9d0a8f95d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 21 additions and 26 deletions

2
Cargo.lock generated
View file

@ -7972,7 +7972,6 @@ dependencies = [
"bpaf", "bpaf",
"cc", "cc",
"cfg-if", "cfg-if",
"constellation_traits",
"crossbeam-channel", "crossbeam-channel",
"dirs", "dirs",
"dpi", "dpi",
@ -7980,7 +7979,6 @@ dependencies = [
"egui-file-dialog", "egui-file-dialog",
"egui-winit", "egui-winit",
"egui_glow", "egui_glow",
"embedder_traits",
"env_filter", "env_filter",
"euclid", "euclid",
"gilrs", "gilrs",

View file

@ -63,11 +63,12 @@ use constellation::{
Constellation, FromEmbedderLogger, FromScriptLogger, InitialConstellationState, Constellation, FromEmbedderLogger, FromScriptLogger, InitialConstellationState,
UnprivilegedContent, UnprivilegedContent,
}; };
use constellation_traits::{EmbedderToConstellationMessage, ScriptToConstellationChan}; pub use constellation_traits::EmbedderToConstellationMessage;
use constellation_traits::ScriptToConstellationChan;
use crossbeam_channel::{Receiver, Sender, unbounded}; use crossbeam_channel::{Receiver, Sender, unbounded};
use embedder_traits::FormControl as EmbedderFormControl; use embedder_traits::FormControl as EmbedderFormControl;
use embedder_traits::user_content_manager::UserContentManager; use embedder_traits::user_content_manager::UserContentManager;
pub use embedder_traits::*; pub use embedder_traits::{WebDriverSenders, *};
use env_logger::Builder as EnvLoggerBuilder; use env_logger::Builder as EnvLoggerBuilder;
use fonts::SystemFontService; use fonts::SystemFontService;
#[cfg(all( #[cfg(all(

View file

@ -57,10 +57,8 @@ webxr = ["libservo/webxr"]
[dependencies] [dependencies]
bpaf = { version = "0.9.20", features = ["derive"] } bpaf = { version = "0.9.20", features = ["derive"] }
cfg-if = { workspace = true } cfg-if = { workspace = true }
constellation_traits = { workspace = true }
crossbeam-channel = { workspace = true } crossbeam-channel = { workspace = true }
dpi = { workspace = true } dpi = { workspace = true }
embedder_traits = { path = "../../components/shared/embedder" }
euclid = { workspace = true } euclid = { workspace = true }
hitrace = { workspace = true, optional = true } hitrace = { workspace = true, optional = true }
image = { workspace = true } image = { workspace = true }

View file

@ -12,7 +12,6 @@ use std::time::Instant;
use std::{env, fs}; use std::{env, fs};
use ::servo::ServoBuilder; use ::servo::ServoBuilder;
use constellation_traits::EmbedderToConstellationMessage;
use crossbeam_channel::unbounded; use crossbeam_channel::unbounded;
use euclid::{Point2D, Vector2D}; use euclid::{Point2D, Vector2D};
use ipc_channel::ipc; use ipc_channel::ipc;
@ -24,9 +23,9 @@ use servo::servo_url::ServoUrl;
use servo::user_content_manager::{UserContentManager, UserScript}; use servo::user_content_manager::{UserContentManager, UserScript};
use servo::webrender_api::ScrollLocation; use servo::webrender_api::ScrollLocation;
use servo::{ use servo::{
EventLoopWaker, ImeEvent, InputEvent, KeyboardEvent, MouseButtonEvent, MouseMoveEvent, EmbedderToConstellationMessage, EventLoopWaker, ImeEvent, InputEvent, KeyboardEvent,
WebDriverCommandMsg, WebDriverScriptCommand, WebDriverUserPromptAction, WheelDelta, WheelEvent, MouseButtonEvent, MouseMoveEvent, WebDriverCommandMsg, WebDriverScriptCommand,
WheelMode, WebDriverUserPromptAction, WheelDelta, WheelEvent, WheelMode,
}; };
use url::Url; use url::Url;
use winit::application::ApplicationHandler; use winit::application::ApplicationHandler;

View file

@ -10,7 +10,6 @@ use std::path::PathBuf;
use std::rc::Rc; use std::rc::Rc;
use crossbeam_channel::Receiver; use crossbeam_channel::Receiver;
use embedder_traits::webdriver::WebDriverSenders;
use image::{DynamicImage, ImageFormat}; use image::{DynamicImage, ImageFormat};
use keyboard_types::ShortcutMatcher; use keyboard_types::ShortcutMatcher;
use log::{error, info}; use log::{error, info};
@ -23,7 +22,7 @@ use servo::{
AllowOrDenyRequest, AuthenticationRequest, FilterPattern, FormControl, GamepadHapticEffectType, AllowOrDenyRequest, AuthenticationRequest, FilterPattern, FormControl, GamepadHapticEffectType,
JSValue, KeyboardEvent, LoadStatus, PermissionRequest, Servo, ServoDelegate, ServoError, JSValue, KeyboardEvent, LoadStatus, PermissionRequest, Servo, ServoDelegate, ServoError,
SimpleDialog, TraversalId, WebDriverCommandMsg, WebDriverJSResult, WebDriverLoadStatus, SimpleDialog, TraversalId, WebDriverCommandMsg, WebDriverJSResult, WebDriverLoadStatus,
WebDriverUserPrompt, WebView, WebViewBuilder, WebViewDelegate, WebDriverSenders, WebDriverUserPrompt, WebView, WebViewBuilder, WebViewDelegate,
}; };
use url::Url; use url::Url;

View file

@ -6,14 +6,16 @@ use std::cell::RefCell;
use std::mem; use std::mem;
use std::rc::Rc; use std::rc::Rc;
use constellation_traits::EmbedderToConstellationMessage;
use crossbeam_channel::unbounded; use crossbeam_channel::unbounded;
use dpi::PhysicalSize; use dpi::PhysicalSize;
use raw_window_handle::{DisplayHandle, RawDisplayHandle, RawWindowHandle, WindowHandle}; use raw_window_handle::{DisplayHandle, RawDisplayHandle, RawWindowHandle, WindowHandle};
use servo::ipc_channel::ipc; use servo::ipc_channel::ipc;
pub use servo::webrender_api::units::DeviceIntRect; pub use servo::webrender_api::units::DeviceIntRect;
use servo::{self, EventLoopWaker, ServoBuilder, resources}; use servo::{self, EventLoopWaker, ServoBuilder, resources};
pub use servo::{InputMethodType, MediaSessionPlaybackState, WindowRenderingContext}; pub use servo::{
EmbedderToConstellationMessage, InputMethodType, MediaSessionPlaybackState,
WindowRenderingContext,
};
use crate::egl::android::resources::ResourceReaderInstance; use crate::egl::android::resources::ResourceReaderInstance;
#[cfg(feature = "webxr")] #[cfg(feature = "webxr")]

View file

@ -7,12 +7,6 @@ use std::rc::Rc;
use crossbeam_channel::Receiver; use crossbeam_channel::Receiver;
use dpi::PhysicalSize; use dpi::PhysicalSize;
use embedder_traits::webdriver::WebDriverSenders;
use embedder_traits::{
ContextMenuResult, InputMethodType, KeyboardEvent, MediaSessionActionType, MediaSessionEvent,
MouseButton, MouseButtonAction, ScreenGeometry, TouchEvent, TouchEventType, TouchId,
WebDriverJSResult,
};
use euclid::{Point2D, Rect, Scale, Size2D, Vector2D}; use euclid::{Point2D, Rect, Scale, Size2D, Vector2D};
use image::{DynamicImage, ImageFormat}; use image::{DynamicImage, ImageFormat};
use keyboard_types::{CompositionEvent, CompositionState, Key, KeyState, NamedKey}; use keyboard_types::{CompositionEvent, CompositionState, Key, KeyState, NamedKey};
@ -25,10 +19,12 @@ use servo::servo_geometry::DeviceIndependentPixel;
use servo::webrender_api::ScrollLocation; use servo::webrender_api::ScrollLocation;
use servo::webrender_api::units::{DeviceIntRect, DeviceIntSize, DevicePixel}; use servo::webrender_api::units::{DeviceIntRect, DeviceIntSize, DevicePixel};
use servo::{ use servo::{
AllowOrDenyRequest, ImeEvent, InputEvent, LoadStatus, MouseButtonEvent, MouseMoveEvent, AllowOrDenyRequest, ContextMenuResult, ImeEvent, InputEvent, InputMethodType, KeyboardEvent,
NavigationRequest, PermissionRequest, Servo, ServoDelegate, ServoError, SimpleDialog, LoadStatus, MediaSessionActionType, MediaSessionEvent, MouseButton, MouseButtonAction,
TraversalId, WebDriverCommandMsg, WebDriverLoadStatus, WebDriverScriptCommand, WebView, MouseButtonEvent, MouseMoveEvent, NavigationRequest, PermissionRequest, ScreenGeometry, Servo,
WebViewBuilder, WebViewDelegate, WindowRenderingContext, ServoDelegate, ServoError, SimpleDialog, TouchEvent, TouchEventType, TouchId, TraversalId,
WebDriverCommandMsg, WebDriverJSResult, WebDriverLoadStatus, WebDriverScriptCommand,
WebDriverSenders, WebView, WebViewBuilder, WebViewDelegate, WindowRenderingContext,
}; };
use url::Url; use url::Url;

View file

@ -8,7 +8,6 @@ use std::path::PathBuf;
use std::ptr::NonNull; use std::ptr::NonNull;
use std::rc::Rc; use std::rc::Rc;
use constellation_traits::EmbedderToConstellationMessage;
use crossbeam_channel::unbounded; use crossbeam_channel::unbounded;
use dpi::PhysicalSize; use dpi::PhysicalSize;
use log::{debug, info, warn}; use log::{debug, info, warn};
@ -19,7 +18,10 @@ use raw_window_handle::{
WindowHandle, WindowHandle,
}; };
use servo::ipc_channel::ipc; use servo::ipc_channel::ipc;
use servo::{self, EventLoopWaker, ServoBuilder, WindowRenderingContext, resources}; use servo::{
self, EmbedderToConstellationMessage, EventLoopWaker, ServoBuilder, WindowRenderingContext,
resources,
};
use xcomponent_sys::OH_NativeXComponent; use xcomponent_sys::OH_NativeXComponent;
use crate::egl::app_state::{Coordinates, RunningAppState, ServoWindowCallbacks}; use crate::egl::app_state::{Coordinates, RunningAppState, ServoWindowCallbacks};