mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
DevTools: Implement watcher actor (#32509)
* feat: base for watcher * feat: some more watcher tests * feat: implement getWatcher * refactor: clean up getWatcher * feat: implement watchTargets * feat: implement watchResources * feat: very messy watchTargets fix * refactor: clean browsing context * feat: target configuration * refactor: start cleanup * refactor: more doc coments * refactor: clean browsing context
This commit is contained in:
parent
26c585a0c5
commit
5eb8813448
9 changed files with 680 additions and 244 deletions
|
@ -2,12 +2,16 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
//! Liberally derived from the [Firefox JS implementation]
|
||||
//! (https://searchfox.org/mozilla-central/source/devtools/server/actors/descriptors/process.js)
|
||||
|
||||
use std::net::TcpStream;
|
||||
|
||||
use serde::Serialize;
|
||||
use serde_json::{Map, Value};
|
||||
|
||||
use crate::actor::{Actor, ActorMessageStatus, ActorRegistry};
|
||||
use crate::actors::root::DescriptorTraits;
|
||||
use crate::protocol::JsonPacketStream;
|
||||
use crate::StreamId;
|
||||
|
||||
|
@ -17,14 +21,18 @@ struct ListWorkersReply {
|
|||
workers: Vec<u32>, // TODO: use proper JSON structure.
|
||||
}
|
||||
|
||||
pub struct ProcessActor {
|
||||
name: String,
|
||||
#[derive(Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct ProcessActorMsg {
|
||||
actor: String,
|
||||
id: u32,
|
||||
is_parent: bool,
|
||||
is_windowless_parent: bool,
|
||||
traits: DescriptorTraits,
|
||||
}
|
||||
|
||||
impl ProcessActor {
|
||||
pub fn new(name: String) -> Self {
|
||||
Self { name }
|
||||
}
|
||||
pub struct ProcessActor {
|
||||
name: String,
|
||||
}
|
||||
|
||||
impl Actor for ProcessActor {
|
||||
|
@ -32,6 +40,9 @@ impl Actor for ProcessActor {
|
|||
self.name.clone()
|
||||
}
|
||||
|
||||
/// The process actor can handle the following messages:
|
||||
///
|
||||
/// - `listWorkers`: Returns a list of web workers, not supported yet.
|
||||
fn handle_message(
|
||||
&self,
|
||||
_registry: &ActorRegistry,
|
||||
|
@ -54,3 +65,19 @@ impl Actor for ProcessActor {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl ProcessActor {
|
||||
pub fn new(name: String) -> Self {
|
||||
Self { name }
|
||||
}
|
||||
|
||||
pub fn encodable(&self) -> ProcessActorMsg {
|
||||
ProcessActorMsg {
|
||||
actor: self.name(),
|
||||
id: 0,
|
||||
is_parent: true,
|
||||
is_windowless_parent: false,
|
||||
traits: Default::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue