mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Respond to the connect
message from a devtools client (#35745)
* Respond to the "connect" message Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Bump log levels in devtools implementation a bit If everything is "debug" then nothing stands out. Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
This commit is contained in:
parent
aa26aa1963
commit
e7e8ccea20
3 changed files with 20 additions and 12 deletions
|
@ -10,7 +10,7 @@ use std::net::TcpStream;
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
|
|
||||||
use base::cross_process_instant::CrossProcessInstant;
|
use base::cross_process_instant::CrossProcessInstant;
|
||||||
use log::{debug, warn};
|
use log::debug;
|
||||||
use serde_json::{Map, Value};
|
use serde_json::{Map, Value};
|
||||||
|
|
||||||
/// General actor system infrastructure.
|
/// General actor system infrastructure.
|
||||||
|
@ -175,21 +175,22 @@ impl ActorRegistry {
|
||||||
let to = match msg.get("to") {
|
let to = match msg.get("to") {
|
||||||
Some(to) => to.as_str().unwrap(),
|
Some(to) => to.as_str().unwrap(),
|
||||||
None => {
|
None => {
|
||||||
warn!("Received unexpected message: {:?}", msg);
|
log::warn!("Received unexpected message: {:?}", msg);
|
||||||
return Err(());
|
return Err(());
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
match self.actors.get(to) {
|
match self.actors.get(to) {
|
||||||
None => debug!("message received for unknown actor \"{}\"", to),
|
None => log::warn!("message received for unknown actor \"{}\"", to),
|
||||||
Some(actor) => {
|
Some(actor) => {
|
||||||
let msg_type = msg.get("type").unwrap().as_str().unwrap();
|
let msg_type = msg.get("type").unwrap().as_str().unwrap();
|
||||||
if actor.handle_message(self, msg_type, msg, stream, id)? !=
|
if actor.handle_message(self, msg_type, msg, stream, id)? !=
|
||||||
ActorMessageStatus::Processed
|
ActorMessageStatus::Processed
|
||||||
{
|
{
|
||||||
debug!(
|
log::warn!(
|
||||||
"unexpected message type \"{}\" found for actor \"{}\"",
|
"unexpected message type \"{}\" found for actor \"{}\"",
|
||||||
msg_type, to
|
msg_type,
|
||||||
|
to
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
use std::net::TcpStream;
|
use std::net::TcpStream;
|
||||||
|
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use serde_json::{Map, Value};
|
use serde_json::{json, Map, Value};
|
||||||
|
|
||||||
use crate::actor::{Actor, ActorMessageStatus, ActorRegistry};
|
use crate::actor::{Actor, ActorMessageStatus, ActorRegistry};
|
||||||
use crate::actors::device::DeviceActor;
|
use crate::actors::device::DeviceActor;
|
||||||
|
@ -145,6 +145,13 @@ impl Actor for RootActor {
|
||||||
_id: StreamId,
|
_id: StreamId,
|
||||||
) -> Result<ActorMessageStatus, ()> {
|
) -> Result<ActorMessageStatus, ()> {
|
||||||
Ok(match msg_type {
|
Ok(match msg_type {
|
||||||
|
"connect" => {
|
||||||
|
let message = json!({
|
||||||
|
"from": "root",
|
||||||
|
});
|
||||||
|
let _ = stream.write_json_packet(&message);
|
||||||
|
ActorMessageStatus::Processed
|
||||||
|
},
|
||||||
"listAddons" => {
|
"listAddons" => {
|
||||||
let actor = ListAddonsReply {
|
let actor = ListAddonsReply {
|
||||||
from: "root".to_owned(),
|
from: "root".to_owned(),
|
||||||
|
|
|
@ -28,7 +28,7 @@ use devtools_traits::{
|
||||||
};
|
};
|
||||||
use embedder_traits::{AllowOrDeny, EmbedderMsg, EmbedderProxy};
|
use embedder_traits::{AllowOrDeny, EmbedderMsg, EmbedderProxy};
|
||||||
use ipc_channel::ipc::{self, IpcSender};
|
use ipc_channel::ipc::{self, IpcSender};
|
||||||
use log::{debug, trace, warn};
|
use log::trace;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use servo_rand::RngCore;
|
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.
|
/// Process the input from a single devtools client until EOF.
|
||||||
fn handle_client(actors: Arc<Mutex<ActorRegistry>>, mut stream: TcpStream, id: StreamId) {
|
fn handle_client(actors: Arc<Mutex<ActorRegistry>>, 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::<RootActor>("root").encodable();
|
let msg = actors.lock().unwrap().find::<RootActor>("root").encodable();
|
||||||
if let Err(e) = stream.write_json_packet(&msg) {
|
if let Err(e) = stream.write_json_packet(&msg) {
|
||||||
warn!("Error writing response: {:?}", e);
|
log::warn!("Error writing response: {:?}", e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -665,17 +665,17 @@ fn handle_client(actors: Arc<Mutex<ActorRegistry>>, mut stream: TcpStream, id: S
|
||||||
&mut stream,
|
&mut stream,
|
||||||
id,
|
id,
|
||||||
) {
|
) {
|
||||||
debug!("error: devtools actor stopped responding");
|
log::error!("Devtools actor stopped responding");
|
||||||
let _ = stream.shutdown(Shutdown::Both);
|
let _ = stream.shutdown(Shutdown::Both);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Ok(None) => {
|
Ok(None) => {
|
||||||
debug!("error: EOF");
|
log::info!("Devtools connection closed");
|
||||||
break;
|
break;
|
||||||
},
|
},
|
||||||
Err(err_msg) => {
|
Err(err_msg) => {
|
||||||
debug!("error: {}", err_msg);
|
log::error!("Failed to read message from devtools client: {}", err_msg);
|
||||||
break;
|
break;
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue