diff options
Diffstat (limited to 'components/devtools/actors')
-rw-r--r-- | components/devtools/actors/browsing_context.rs | 39 | ||||
-rw-r--r-- | components/devtools/actors/console.rs | 1 | ||||
-rw-r--r-- | components/devtools/actors/watcher.rs | 1 | ||||
-rw-r--r-- | components/devtools/actors/worker.rs | 11 |
4 files changed, 24 insertions, 28 deletions
diff --git a/components/devtools/actors/browsing_context.rs b/components/devtools/actors/browsing_context.rs index c4ead7272bd..5de0855df4a 100644 --- a/components/devtools/actors/browsing_context.rs +++ b/components/devtools/actors/browsing_context.rs @@ -31,6 +31,7 @@ use crate::actors::thread::ThreadActor; use crate::actors::watcher::{SessionContext, SessionContextType, WatcherActor}; use crate::id::{DevtoolsBrowserId, DevtoolsBrowsingContextId, DevtoolsOuterWindowId, IdMap}; use crate::protocol::JsonPacketStream; +use crate::resource::ResourceAvailable; use crate::{EmptyReplyMsg, StreamId}; #[derive(Serialize)] @@ -57,14 +58,6 @@ struct FrameUpdateMsg { } #[derive(Serialize)] -struct ResourceAvailableReply<T: Serialize> { - from: String, - #[serde(rename = "type")] - type_: String, - array: Vec<(String, Vec<T>)>, -} - -#[derive(Serialize)] struct TabNavigated { from: String, #[serde(rename = "type")] @@ -152,6 +145,16 @@ pub(crate) struct BrowsingContextActor { pub watcher: String, } +impl ResourceAvailable for BrowsingContextActor { + fn actor_name(&self) -> String { + self.name.clone() + } + + fn get_streams(&self) -> &RefCell<HashMap<StreamId, TcpStream>> { + &self.streams + } +} + impl Actor for BrowsingContextActor { fn name(&self) -> String { self.name.clone() @@ -358,26 +361,6 @@ impl BrowsingContextActor { }); } - pub(crate) fn resource_available<T: Serialize>(&self, resource: T, resource_type: String) { - self.resources_available(vec![resource], resource_type); - } - - pub(crate) fn resources_available<T: Serialize>( - &self, - resources: Vec<T>, - resource_type: String, - ) { - let msg = ResourceAvailableReply::<T> { - from: self.name(), - type_: "resources-available-array".into(), - array: vec![(resource_type, resources)], - }; - - for stream in self.streams.borrow_mut().values_mut() { - let _ = stream.write_json_packet(&msg); - } - } - pub fn simulate_color_scheme(&self, theme: Theme) -> Result<(), ()> { self.script_chan .send(SimulateColorScheme(self.active_pipeline_id.get(), theme)) diff --git a/components/devtools/actors/console.rs b/components/devtools/actors/console.rs index ecd718e47d4..3897ffa0fce 100644 --- a/components/devtools/actors/console.rs +++ b/components/devtools/actors/console.rs @@ -30,6 +30,7 @@ use crate::actors::browsing_context::BrowsingContextActor; use crate::actors::object::ObjectActor; use crate::actors::worker::WorkerActor; use crate::protocol::JsonPacketStream; +use crate::resource::ResourceAvailable; use crate::{StreamId, UniqueId}; trait EncodableConsoleMessage { diff --git a/components/devtools/actors/watcher.rs b/components/devtools/actors/watcher.rs index 77f82c1023a..d48374fc523 100644 --- a/components/devtools/actors/watcher.rs +++ b/components/devtools/actors/watcher.rs @@ -29,6 +29,7 @@ use crate::actors::watcher::thread_configuration::{ ThreadConfigurationActor, ThreadConfigurationActorMsg, }; use crate::protocol::JsonPacketStream; +use crate::resource::ResourceAvailable; use crate::{EmptyReplyMsg, StreamId}; pub mod network_parent; diff --git a/components/devtools/actors/worker.rs b/components/devtools/actors/worker.rs index 046befe9dc9..42c9d9a9c28 100644 --- a/components/devtools/actors/worker.rs +++ b/components/devtools/actors/worker.rs @@ -17,6 +17,7 @@ use servo_url::ServoUrl; use crate::StreamId; use crate::actor::{Actor, ActorMessageStatus, ActorRegistry}; use crate::protocol::JsonPacketStream; +use crate::resource::ResourceAvailable; #[derive(Clone, Copy)] #[allow(dead_code)] @@ -53,6 +54,16 @@ impl WorkerActor { } } +impl ResourceAvailable for WorkerActor { + fn actor_name(&self) -> String { + self.name.clone() + } + + fn get_streams(&self) -> &RefCell<HashMap<StreamId, TcpStream>> { + &self.streams + } +} + impl Actor for WorkerActor { fn name(&self) -> String { self.name.clone() |