mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
servoshell: Actually set the Servo delegate in servoshell (#35502)
This was implemented, but unset. Fixes #35481. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
966888615f
commit
a17b2e0cb2
3 changed files with 13 additions and 8 deletions
|
@ -191,7 +191,7 @@ mod media_platform {
|
||||||
/// loop to pump messages between the embedding application and
|
/// loop to pump messages between the embedding application and
|
||||||
/// various browser components.
|
/// various browser components.
|
||||||
pub struct Servo {
|
pub struct Servo {
|
||||||
delegate: Rc<dyn ServoDelegate>,
|
delegate: RefCell<Rc<dyn ServoDelegate>>,
|
||||||
compositor: Rc<RefCell<IOCompositor>>,
|
compositor: Rc<RefCell<IOCompositor>>,
|
||||||
constellation_proxy: ConstellationProxy,
|
constellation_proxy: ConstellationProxy,
|
||||||
embedder_receiver: Receiver<EmbedderMsg>,
|
embedder_receiver: Receiver<EmbedderMsg>,
|
||||||
|
@ -536,7 +536,7 @@ impl Servo {
|
||||||
);
|
);
|
||||||
|
|
||||||
Servo {
|
Servo {
|
||||||
delegate: Rc::new(DefaultServoDelegate),
|
delegate: RefCell::new(Rc::new(DefaultServoDelegate)),
|
||||||
compositor: Rc::new(RefCell::new(compositor)),
|
compositor: Rc::new(RefCell::new(compositor)),
|
||||||
constellation_proxy: ConstellationProxy::new(constellation_chan),
|
constellation_proxy: ConstellationProxy::new(constellation_chan),
|
||||||
embedder_receiver,
|
embedder_receiver,
|
||||||
|
@ -546,11 +546,11 @@ impl Servo {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn delegate(&self) -> Rc<dyn ServoDelegate> {
|
pub fn delegate(&self) -> Rc<dyn ServoDelegate> {
|
||||||
self.delegate.clone()
|
self.delegate.borrow().clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_delegate(&mut self, delegate: Rc<dyn ServoDelegate>) {
|
pub fn set_delegate(&self, delegate: Rc<dyn ServoDelegate>) {
|
||||||
self.delegate = delegate;
|
*self.delegate.borrow_mut() = delegate;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn create_media_window_gl_context(
|
fn create_media_window_gl_context(
|
||||||
|
|
|
@ -89,6 +89,7 @@ impl RunningAppState {
|
||||||
window: Rc<dyn WindowPortsMethods>,
|
window: Rc<dyn WindowPortsMethods>,
|
||||||
headless: bool,
|
headless: bool,
|
||||||
) -> RunningAppState {
|
) -> RunningAppState {
|
||||||
|
servo.set_delegate(Rc::new(ServoShellServoDelegate));
|
||||||
RunningAppState {
|
RunningAppState {
|
||||||
servo,
|
servo,
|
||||||
inner: RefCell::new(RunningAppStateInner {
|
inner: RefCell::new(RunningAppStateInner {
|
||||||
|
@ -315,7 +316,8 @@ impl RunningAppState {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ServoDelegate for RunningAppState {
|
struct ServoShellServoDelegate;
|
||||||
|
impl ServoDelegate for ServoShellServoDelegate {
|
||||||
fn notify_devtools_server_started(&self, _servo: &Servo, port: u16, _token: String) {
|
fn notify_devtools_server_started(&self, _servo: &Servo, port: u16, _token: String) {
|
||||||
info!("Devtools Server running on port {port}");
|
info!("Devtools Server running on port {port}");
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,7 +98,8 @@ struct RunningAppStateInner {
|
||||||
context_menu_sender: Option<IpcSender<ContextMenuResult>>,
|
context_menu_sender: Option<IpcSender<ContextMenuResult>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ServoDelegate for RunningAppState {
|
struct ServoShellServoDelegate;
|
||||||
|
impl ServoDelegate for ServoShellServoDelegate {
|
||||||
fn notify_devtools_server_started(&self, _servo: &Servo, port: u16, _token: String) {
|
fn notify_devtools_server_started(&self, _servo: &Servo, port: u16, _token: String) {
|
||||||
info!("Devtools Server running on port {port}");
|
info!("Devtools Server running on port {port}");
|
||||||
}
|
}
|
||||||
|
@ -291,6 +292,9 @@ impl RunningAppState {
|
||||||
.or_else(|| Url::parse(&servoshell_preferences.homepage).ok())
|
.or_else(|| Url::parse(&servoshell_preferences.homepage).ok())
|
||||||
.or_else(|| Url::parse("about:blank").ok())
|
.or_else(|| Url::parse("about:blank").ok())
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
servo.set_delegate(Rc::new(ServoShellServoDelegate));
|
||||||
|
|
||||||
let app_state = Rc::new(Self {
|
let app_state = Rc::new(Self {
|
||||||
rendering_context,
|
rendering_context,
|
||||||
servo,
|
servo,
|
||||||
|
@ -306,7 +310,6 @@ impl RunningAppState {
|
||||||
});
|
});
|
||||||
|
|
||||||
app_state.new_toplevel_webview(initial_url);
|
app_state.new_toplevel_webview(initial_url);
|
||||||
|
|
||||||
app_state
|
app_state
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue