aboutsummaryrefslogtreecommitdiffstats
path: root/components/devtools/actors/worker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/devtools/actors/worker.rs')
-rw-r--r--components/devtools/actors/worker.rs29
1 files changed, 28 insertions, 1 deletions
diff --git a/components/devtools/actors/worker.rs b/components/devtools/actors/worker.rs
index 42c9d9a9c28..68ff56fb3b2 100644
--- a/components/devtools/actors/worker.rs
+++ b/components/devtools/actors/worker.rs
@@ -17,7 +17,7 @@ use servo_url::ServoUrl;
use crate::StreamId;
use crate::actor::{Actor, ActorMessageStatus, ActorRegistry};
use crate::protocol::JsonPacketStream;
-use crate::resource::ResourceAvailable;
+use crate::resource::{ResourceAvailable, ResourceAvailableReply};
#[derive(Clone, Copy)]
#[allow(dead_code)]
@@ -48,8 +48,10 @@ impl WorkerActor {
url: self.url.to_string(),
traits: WorkerTraits {
is_parent_intercept_enabled: false,
+ supports_top_level_target_flag: false,
},
type_: self.type_ as u32,
+ target_type: "worker".to_string(),
}
}
}
@@ -131,6 +133,28 @@ impl Actor for WorkerActor {
}
}
+impl WorkerActor {
+ 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);
+ }
+ }
+}
+
#[derive(Serialize)]
struct DetachedReply {
from: String,
@@ -160,6 +184,7 @@ struct ConnectReply {
#[serde(rename_all = "camelCase")]
struct WorkerTraits {
is_parent_intercept_enabled: bool,
+ supports_top_level_target_flag: bool,
}
#[derive(Serialize)]
@@ -173,4 +198,6 @@ pub(crate) struct WorkerMsg {
traits: WorkerTraits,
#[serde(rename = "type")]
type_: u32,
+ #[serde(rename = "targetType")]
+ target_type: String,
}