From e7e8ccea2044ac010b47b6267f3f443145936c28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20W=C3=BClker?= Date: Sun, 2 Mar 2025 13:16:51 +0100 Subject: [PATCH] Respond to the `connect` message from a devtools client (#35745) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Respond to the "connect" message Signed-off-by: Simon Wülker * Bump log levels in devtools implementation a bit If everything is "debug" then nothing stands out. Signed-off-by: Simon Wülker --------- Signed-off-by: Simon Wülker --- components/devtools/actor.rs | 11 ++++++----- components/devtools/actors/root.rs | 9 ++++++++- components/devtools/lib.rs | 12 ++++++------ 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/components/devtools/actor.rs b/components/devtools/actor.rs index fac3ec199fc..b5568e753ae 100644 --- a/components/devtools/actor.rs +++ b/components/devtools/actor.rs @@ -10,7 +10,7 @@ use std::net::TcpStream; use std::sync::{Arc, Mutex}; use base::cross_process_instant::CrossProcessInstant; -use log::{debug, warn}; +use log::debug; use serde_json::{Map, Value}; /// General actor system infrastructure. @@ -175,21 +175,22 @@ impl ActorRegistry { let to = match msg.get("to") { Some(to) => to.as_str().unwrap(), None => { - warn!("Received unexpected message: {:?}", msg); + log::warn!("Received unexpected message: {:?}", msg); return Err(()); }, }; match self.actors.get(to) { - None => debug!("message received for unknown actor \"{}\"", to), + None => log::warn!("message received for unknown actor \"{}\"", to), Some(actor) => { let msg_type = msg.get("type").unwrap().as_str().unwrap(); if actor.handle_message(self, msg_type, msg, stream, id)? != ActorMessageStatus::Processed { - debug!( + log::warn!( "unexpected message type \"{}\" found for actor \"{}\"", - msg_type, to + msg_type, + to ); } }, diff --git a/components/devtools/actors/root.rs b/components/devtools/actors/root.rs index a252255f52e..2d22a631758 100644 --- a/components/devtools/actors/root.rs +++ b/components/devtools/actors/root.rs @@ -12,7 +12,7 @@ use std::net::TcpStream; use serde::Serialize; -use serde_json::{Map, Value}; +use serde_json::{json, Map, Value}; use crate::actor::{Actor, ActorMessageStatus, ActorRegistry}; use crate::actors::device::DeviceActor; @@ -145,6 +145,13 @@ impl Actor for RootActor { _id: StreamId, ) -> Result { Ok(match msg_type { + "connect" => { + let message = json!({ + "from": "root", + }); + let _ = stream.write_json_packet(&message); + ActorMessageStatus::Processed + }, "listAddons" => { let actor = ListAddonsReply { from: "root".to_owned(), diff --git a/components/devtools/lib.rs b/components/devtools/lib.rs index 5211d486963..3aec5a8d02c 100644 --- a/components/devtools/lib.rs +++ b/components/devtools/lib.rs @@ -28,7 +28,7 @@ use devtools_traits::{ }; use embedder_traits::{AllowOrDeny, EmbedderMsg, EmbedderProxy}; use ipc_channel::ipc::{self, IpcSender}; -use log::{debug, trace, warn}; +use log::trace; use serde::Serialize; use servo_rand::RngCore; @@ -650,10 +650,10 @@ fn allow_devtools_client(stream: &mut TcpStream, embedder: &EmbedderProxy, token /// Process the input from a single devtools client until EOF. fn handle_client(actors: Arc>, mut stream: TcpStream, id: StreamId) { - debug!("connection established to {}", stream.peer_addr().unwrap()); + log::info!("Connection established to {}", stream.peer_addr().unwrap()); let msg = actors.lock().unwrap().find::("root").encodable(); if let Err(e) = stream.write_json_packet(&msg) { - warn!("Error writing response: {:?}", e); + log::warn!("Error writing response: {:?}", e); return; } @@ -665,17 +665,17 @@ fn handle_client(actors: Arc>, mut stream: TcpStream, id: S &mut stream, id, ) { - debug!("error: devtools actor stopped responding"); + log::error!("Devtools actor stopped responding"); let _ = stream.shutdown(Shutdown::Both); break; } }, Ok(None) => { - debug!("error: EOF"); + log::info!("Devtools connection closed"); break; }, Err(err_msg) => { - debug!("error: {}", err_msg); + log::error!("Failed to read message from devtools client: {}", err_msg); break; }, }