aboutsummaryrefslogtreecommitdiffstats
path: root/components/devtools
diff options
context:
space:
mode:
Diffstat (limited to 'components/devtools')
-rw-r--r--components/devtools/actors/browsing_context.rs4
-rw-r--r--components/devtools/actors/console.rs18
-rw-r--r--components/devtools/actors/device.rs2
-rw-r--r--components/devtools/actors/inspector.rs26
-rw-r--r--components/devtools/actors/network_event.rs16
-rw-r--r--components/devtools/actors/performance.rs4
-rw-r--r--components/devtools/actors/preference.rs6
-rw-r--r--components/devtools/actors/process.rs2
-rw-r--r--components/devtools/actors/root.rs18
-rw-r--r--components/devtools/actors/stylesheets.rs2
-rw-r--r--components/devtools/actors/tab.rs2
-rw-r--r--components/devtools/actors/thread.rs14
-rw-r--r--components/devtools/actors/timeline.rs21
-rw-r--r--components/devtools/actors/worker.rs2
-rw-r--r--components/devtools/lib.rs23
-rw-r--r--components/devtools/protocol.rs32
16 files changed, 107 insertions, 85 deletions
diff --git a/components/devtools/actors/browsing_context.rs b/components/devtools/actors/browsing_context.rs
index 708c9f69de9..74b3a2ab677 100644
--- a/components/devtools/actors/browsing_context.rs
+++ b/components/devtools/actors/browsing_context.rs
@@ -160,7 +160,7 @@ impl Actor for BrowsingContextActor {
}
}
}
- stream.write_json_packet(&ReconfigureReply { from: self.name() });
+ let _ = stream.write_json_packet(&ReconfigureReply { from: self.name() });
ActorMessageStatus::Processed
},
@@ -215,7 +215,7 @@ impl Actor for BrowsingContextActor {
title: self.title.borrow().clone(),
}],
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
diff --git a/components/devtools/actors/console.rs b/components/devtools/actors/console.rs
index 4576a296775..3d79193634d 100644
--- a/components/devtools/actors/console.rs
+++ b/components/devtools/actors/console.rs
@@ -380,7 +380,7 @@ impl Actor for ConsoleActor {
from: self.name(),
messages: messages,
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -396,7 +396,7 @@ impl Actor for ConsoleActor {
.collect(),
traits: StartedListenersTraits,
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -413,7 +413,7 @@ impl Actor for ConsoleActor {
.map(|listener| listener.as_str().unwrap().to_owned())
.collect(),
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -425,13 +425,13 @@ impl Actor for ConsoleActor {
matches: vec![],
matchProp: "".to_owned(),
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
"evaluateJS" => {
let msg = self.evaluateJS(&registry, &msg);
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -443,7 +443,9 @@ impl Actor for ConsoleActor {
};
// Emit an eager reply so that the client starts listening
// for an async event with the resultID
- stream.write_json_packet(&early_reply);
+ if stream.write_json_packet(&early_reply).is_err() {
+ return Ok(ActorMessageStatus::Processed);
+ }
if msg.get("eager").and_then(|v| v.as_bool()).unwrap_or(false) {
// We don't support the side-effect free evaluation that eager evalaution
@@ -464,7 +466,7 @@ impl Actor for ConsoleActor {
helperResult: reply.helperResult,
};
// Send the data from evaluateJS along with a resultID
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -473,7 +475,7 @@ impl Actor for ConsoleActor {
from: self.name(),
updated: vec![],
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
diff --git a/components/devtools/actors/device.rs b/components/devtools/actors/device.rs
index 11785d8c0b8..d181025be39 100644
--- a/components/devtools/actors/device.rs
+++ b/components/devtools/actors/device.rs
@@ -44,7 +44,7 @@ impl Actor for DeviceActor {
platformVersion: "71.0".to_string(),
},
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
diff --git a/components/devtools/actors/inspector.rs b/components/devtools/actors/inspector.rs
index d2f0929ac89..54dc3da2f37 100644
--- a/components/devtools/actors/inspector.rs
+++ b/components/devtools/actors/inspector.rs
@@ -72,13 +72,13 @@ impl Actor for HighlighterActor {
Ok(match msg_type {
"showBoxModel" => {
let msg = ShowBoxModelReply { from: self.name() };
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
"hideBoxModel" => {
let msg = HideBoxModelReply { from: self.name() };
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -123,7 +123,7 @@ impl Actor for NodeActor {
))
.unwrap();
let reply = ModifyAttributeReply { from: self.name() };
- stream.write_json_packet(&reply);
+ let _ = stream.write_json_packet(&reply);
ActorMessageStatus::Processed
},
@@ -293,7 +293,7 @@ impl Actor for WalkerActor {
Ok(match msg_type {
"querySelector" => {
let msg = QuerySelectorReply { from: self.name() };
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -310,13 +310,13 @@ impl Actor for WalkerActor {
from: self.name(),
node: node,
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
"clearPseudoClassLocks" => {
let msg = ClearPseudoclassesReply { from: self.name() };
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -343,7 +343,7 @@ impl Actor for WalkerActor {
.collect(),
from: self.name(),
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -481,7 +481,7 @@ impl Actor for PageStyleActor {
sheets: vec![],
from: self.name(),
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -491,7 +491,7 @@ impl Actor for PageStyleActor {
computed: vec![],
from: self.name(),
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -576,7 +576,7 @@ impl Actor for PageStyleActor {
};
let msg = serde_json::to_string(&msg).unwrap();
let msg = serde_json::from_str::<Value>(&msg).unwrap();
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -625,7 +625,7 @@ impl Actor for InspectorActor {
root: node,
},
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -647,7 +647,7 @@ impl Actor for InspectorActor {
actor: self.pageStyle.borrow().clone().unwrap(),
},
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -670,7 +670,7 @@ impl Actor for InspectorActor {
actor: self.highlighter.borrow().clone().unwrap(),
},
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
diff --git a/components/devtools/actors/network_event.rs b/components/devtools/actors/network_event.rs
index 8af38f52c0c..9d17b2466bd 100644
--- a/components/devtools/actors/network_event.rs
+++ b/components/devtools/actors/network_event.rs
@@ -201,7 +201,7 @@ impl Actor for NetworkEventActor {
headerSize: headersSize,
rawHeaders: rawHeadersString,
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
"getRequestCookies" => {
@@ -217,7 +217,7 @@ impl Actor for NetworkEventActor {
from: self.name(),
cookies: cookies,
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
"getRequestPostData" => {
@@ -226,7 +226,7 @@ impl Actor for NetworkEventActor {
postData: self.request.body.clone(),
postDataDiscarded: false,
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
"getResponseHeaders" => {
@@ -251,7 +251,7 @@ impl Actor for NetworkEventActor {
headerSize: headersSize,
rawHeaders: rawHeadersString,
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
}
ActorMessageStatus::Processed
},
@@ -268,7 +268,7 @@ impl Actor for NetworkEventActor {
from: self.name(),
cookies: cookies,
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
"getResponseContent" => {
@@ -277,7 +277,7 @@ impl Actor for NetworkEventActor {
content: self.response.body.clone(),
contentDiscarded: self.response.body.is_none(),
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
"getEventTimings" => {
@@ -297,7 +297,7 @@ impl Actor for NetworkEventActor {
timings: timingsObj,
totalTime: total,
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
"getSecurityInfo" => {
@@ -308,7 +308,7 @@ impl Actor for NetworkEventActor {
state: "insecure".to_owned(),
},
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
_ => ActorMessageStatus::Ignored,
diff --git a/components/devtools/actors/performance.rs b/components/devtools/actors/performance.rs
index d26e4aee1d6..524c9aa6501 100644
--- a/components/devtools/actors/performance.rs
+++ b/components/devtools/actors/performance.rs
@@ -72,7 +72,7 @@ impl Actor for PerformanceActor {
},
},
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
"canCurrentlyRecord" => {
@@ -83,7 +83,7 @@ impl Actor for PerformanceActor {
errors: vec![],
},
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
_ => ActorMessageStatus::Ignored,
diff --git a/components/devtools/actors/preference.rs b/components/devtools/actors/preference.rs
index aefd8638631..5d86f16d96a 100644
--- a/components/devtools/actors/preference.rs
+++ b/components/devtools/actors/preference.rs
@@ -35,7 +35,7 @@ impl Actor for PreferenceActor {
from: self.name(),
value: false,
};
- stream.write_json_packet(&reply);
+ let _ = stream.write_json_packet(&reply);
ActorMessageStatus::Processed
},
@@ -44,7 +44,7 @@ impl Actor for PreferenceActor {
from: self.name(),
value: "".to_owned(),
};
- stream.write_json_packet(&reply);
+ let _ = stream.write_json_packet(&reply);
ActorMessageStatus::Processed
},
@@ -53,7 +53,7 @@ impl Actor for PreferenceActor {
from: self.name(),
value: 0,
};
- stream.write_json_packet(&reply);
+ let _ = stream.write_json_packet(&reply);
ActorMessageStatus::Processed
},
diff --git a/components/devtools/actors/process.rs b/components/devtools/actors/process.rs
index de9a9f96ed1..e57863f1b1e 100644
--- a/components/devtools/actors/process.rs
+++ b/components/devtools/actors/process.rs
@@ -41,7 +41,7 @@ impl Actor for ProcessActor {
from: self.name(),
workers: vec![],
};
- stream.write_json_packet(&reply);
+ let _ = stream.write_json_packet(&reply);
ActorMessageStatus::Processed
},
diff --git a/components/devtools/actors/root.rs b/components/devtools/actors/root.rs
index 1965d973728..f180dc64a07 100644
--- a/components/devtools/actors/root.rs
+++ b/components/devtools/actors/root.rs
@@ -131,7 +131,7 @@ impl Actor for RootActor {
from: "root".to_owned(),
addons: vec![],
};
- stream.write_json_packet(&actor);
+ let _ = stream.write_json_packet(&actor);
ActorMessageStatus::Processed
},
@@ -144,7 +144,7 @@ impl Actor for RootActor {
isParent: true,
}],
};
- stream.write_json_packet(&reply);
+ let _ = stream.write_json_packet(&reply);
ActorMessageStatus::Processed
},
@@ -157,7 +157,7 @@ impl Actor for RootActor {
isParent: true,
},
};
- stream.write_json_packet(&reply);
+ let _ = stream.write_json_packet(&reply);
ActorMessageStatus::Processed
},
@@ -169,7 +169,7 @@ impl Actor for RootActor {
deviceActor: self.device.clone(),
preferenceActor: self.preference.clone(),
};
- stream.write_json_packet(&actor);
+ let _ = stream.write_json_packet(&actor);
ActorMessageStatus::Processed
},
@@ -188,7 +188,7 @@ impl Actor for RootActor {
})
.collect(),
};
- stream.write_json_packet(&actor);
+ let _ = stream.write_json_packet(&actor);
ActorMessageStatus::Processed
},
@@ -197,7 +197,7 @@ impl Actor for RootActor {
from: self.name(),
registrations: vec![],
};
- stream.write_json_packet(&reply);
+ let _ = stream.write_json_packet(&reply);
ActorMessageStatus::Processed
},
@@ -210,7 +210,7 @@ impl Actor for RootActor {
.map(|name| registry.find::<WorkerActor>(name).encodable())
.collect(),
};
- stream.write_json_packet(&reply);
+ let _ = stream.write_json_packet(&reply);
ActorMessageStatus::Processed
},
@@ -220,7 +220,7 @@ impl Actor for RootActor {
from: self.name(),
tab: tab.encodable(&registry),
};
- stream.write_json_packet(&reply);
+ let _ = stream.write_json_packet(&reply);
ActorMessageStatus::Processed
},
@@ -232,7 +232,7 @@ impl Actor for RootActor {
device: DeviceActor::description(),
},
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
diff --git a/components/devtools/actors/stylesheets.rs b/components/devtools/actors/stylesheets.rs
index ccec3a7d30f..6ce3174de73 100644
--- a/components/devtools/actors/stylesheets.rs
+++ b/components/devtools/actors/stylesheets.rs
@@ -34,7 +34,7 @@ impl Actor for StyleSheetsActor {
from: self.name(),
styleSheets: vec![],
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
diff --git a/components/devtools/actors/tab.rs b/components/devtools/actors/tab.rs
index 1f83d246233..1f2597f91d7 100644
--- a/components/devtools/actors/tab.rs
+++ b/components/devtools/actors/tab.rs
@@ -54,7 +54,7 @@ impl Actor for TabDescriptorActor {
let frame = registry
.find::<BrowsingContextActor>(&self.browsing_context_actor)
.encodable();
- stream.write_json_packet(&GetTargetReply {
+ let _ = stream.write_json_packet(&GetTargetReply {
from: self.name(),
frame,
});
diff --git a/components/devtools/actors/thread.rs b/components/devtools/actors/thread.rs
index f0e2f1e98a2..c241332517f 100644
--- a/components/devtools/actors/thread.rs
+++ b/components/devtools/actors/thread.rs
@@ -100,8 +100,8 @@ impl Actor for ThreadActor {
type_: "attached".to_owned(),
},
};
- stream.write_json_packet(&msg);
- stream.write_json_packet(&VoidAttachedReply { from: self.name() });
+ let _ = stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&VoidAttachedReply { from: self.name() });
ActorMessageStatus::Processed
},
@@ -110,8 +110,8 @@ impl Actor for ThreadActor {
from: self.name(),
type_: "resumed".to_owned(),
};
- stream.write_json_packet(&msg);
- stream.write_json_packet(&VoidAttachedReply { from: self.name() });
+ let _ = stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&VoidAttachedReply { from: self.name() });
ActorMessageStatus::Processed
},
@@ -120,12 +120,12 @@ impl Actor for ThreadActor {
from: self.name(),
type_: "interrupted".to_owned(),
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
"reconfigure" => {
- stream.write_json_packet(&ReconfigureReply { from: self.name() });
+ let _ = stream.write_json_packet(&ReconfigureReply { from: self.name() });
ActorMessageStatus::Processed
},
@@ -134,7 +134,7 @@ impl Actor for ThreadActor {
from: self.name(),
sources: vec![],
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
diff --git a/components/devtools/actors/timeline.rs b/components/devtools/actors/timeline.rs
index 7ed53f9f8d4..d26fd199ebf 100644
--- a/components/devtools/actors/timeline.rs
+++ b/components/devtools/actors/timeline.rs
@@ -14,6 +14,7 @@ use msg::constellation_msg::PipelineId;
use serde::{Serialize, Serializer};
use serde_json::{Map, Value};
use std::cell::RefCell;
+use std::error::Error;
use std::net::TcpStream;
use std::sync::{Arc, Mutex};
use std::thread;
@@ -166,7 +167,9 @@ impl TimelineActor {
while let Ok(Some(marker)) = receiver.try_recv() {
markers.push(emitter.marker(marker));
}
- emitter.send(markers);
+ if emitter.send(markers).is_err() {
+ break;
+ }
thread::sleep(Duration::from_millis(DEFAULT_TIMELINE_DATA_PULL_TIMEOUT));
})
@@ -235,7 +238,7 @@ impl Actor for TimelineActor {
from: self.name(),
value: HighResolutionStamp::new(registry.start_stamp(), PreciseTime::now()),
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -245,7 +248,7 @@ impl Actor for TimelineActor {
value: HighResolutionStamp::new(registry.start_stamp(), PreciseTime::now()),
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
self.script_sender
.send(DropTimelineMarkers(
self.pipeline,
@@ -272,7 +275,7 @@ impl Actor for TimelineActor {
value: self.is_recording.lock().unwrap().clone(),
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
@@ -311,7 +314,7 @@ impl Emitter {
}
}
- fn send(&mut self, markers: Vec<TimelineMarkerReply>) {
+ fn send(&mut self, markers: Vec<TimelineMarkerReply>) -> Result<(), Box<dyn Error>> {
let end_time = PreciseTime::now();
let reply = MarkersEmitterReply {
type_: "markers".to_owned(),
@@ -319,7 +322,7 @@ impl Emitter {
from: self.from.clone(),
endTime: HighResolutionStamp::new(self.start_stamp, end_time),
};
- self.stream.write_json_packet(&reply);
+ self.stream.write_json_packet(&reply)?;
if let Some(ref actor_name) = self.framerate_actor {
let mut lock = self.registry.lock();
@@ -331,7 +334,7 @@ impl Emitter {
delta: HighResolutionStamp::new(self.start_stamp, end_time),
timestamps: framerate_actor.take_pending_ticks(),
};
- self.stream.write_json_packet(&framerateReply);
+ self.stream.write_json_packet(&framerateReply)?;
}
if let Some(ref actor_name) = self.memory_actor {
@@ -343,7 +346,9 @@ impl Emitter {
delta: HighResolutionStamp::new(self.start_stamp, end_time),
measurement: memory_actor.measure(),
};
- self.stream.write_json_packet(&memoryReply);
+ self.stream.write_json_packet(&memoryReply)?;
}
+
+ Ok(())
}
}
diff --git a/components/devtools/actors/worker.rs b/components/devtools/actors/worker.rs
index fd578d0d3dc..8d08a563d00 100644
--- a/components/devtools/actors/worker.rs
+++ b/components/devtools/actors/worker.rs
@@ -82,7 +82,7 @@ impl Actor for WorkerActor {
threadActor: self.thread.clone(),
consoleActor: self.console.clone(),
};
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
ActorMessageStatus::Processed
},
diff --git a/components/devtools/lib.rs b/components/devtools/lib.rs
index 62238c656ee..524a2800c88 100644
--- a/components/devtools/lib.rs
+++ b/components/devtools/lib.rs
@@ -193,7 +193,10 @@ fn run_server(
{
let actors = actors.lock().unwrap();
let msg = actors.find::<RootActor>("root").encodable();
- stream.write_json_packet(&msg);
+ if let Err(e) = stream.write_json_packet(&msg) {
+ warn!("Error writing response: {:?}", e);
+ return;
+ }
}
'outer: loop {
@@ -451,7 +454,7 @@ fn run_server(
eventActor: actor.event_actor(),
};
for stream in &mut connections {
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
}
},
NetworkEvent::HttpResponse(httpresponse) => {
@@ -464,7 +467,7 @@ fn run_server(
updateType: "requestHeaders".to_owned(),
};
for stream in &mut connections {
- stream.write_merged_json_packet(&msg, &actor.request_headers());
+ let _ = stream.write_merged_json_packet(&msg, &actor.request_headers());
}
let msg = NetworkEventUpdateMsg {
@@ -473,7 +476,7 @@ fn run_server(
updateType: "requestCookies".to_owned(),
};
for stream in &mut connections {
- stream.write_merged_json_packet(&msg, &actor.request_cookies());
+ let _ = stream.write_merged_json_packet(&msg, &actor.request_cookies());
}
//Send a networkEventUpdate (responseStart) to the client
@@ -485,7 +488,7 @@ fn run_server(
};
for stream in &mut connections {
- stream.write_json_packet(&msg);
+ let _ = stream.write_json_packet(&msg);
}
let msg = NetworkEventUpdateMsg {
from: netevent_actor_name.clone(),
@@ -496,7 +499,7 @@ fn run_server(
totalTime: actor.total_time(),
};
for stream in &mut connections {
- stream.write_merged_json_packet(&msg, &extra);
+ let _ = stream.write_merged_json_packet(&msg, &extra);
}
let msg = NetworkEventUpdateMsg {
@@ -508,7 +511,7 @@ fn run_server(
state: "insecure".to_owned(),
};
for stream in &mut connections {
- stream.write_merged_json_packet(&msg, &extra);
+ let _ = stream.write_merged_json_packet(&msg, &extra);
}
let msg = NetworkEventUpdateMsg {
@@ -517,7 +520,7 @@ fn run_server(
updateType: "responseContent".to_owned(),
};
for stream in &mut connections {
- stream.write_merged_json_packet(&msg, &actor.response_content());
+ let _ = stream.write_merged_json_packet(&msg, &actor.response_content());
}
let msg = NetworkEventUpdateMsg {
@@ -526,7 +529,7 @@ fn run_server(
updateType: "responseCookies".to_owned(),
};
for stream in &mut connections {
- stream.write_merged_json_packet(&msg, &actor.response_cookies());
+ let _ = stream.write_merged_json_packet(&msg, &actor.response_cookies());
}
let msg = NetworkEventUpdateMsg {
@@ -535,7 +538,7 @@ fn run_server(
updateType: "responseHeaders".to_owned(),
};
for stream in &mut connections {
- stream.write_merged_json_packet(&msg, &actor.response_headers());
+ let _ = stream.write_merged_json_packet(&msg, &actor.response_headers());
}
},
}
diff --git a/components/devtools/protocol.rs b/components/devtools/protocol.rs
index 29fbaa2beeb..b01c982a762 100644
--- a/components/devtools/protocol.rs
+++ b/components/devtools/protocol.rs
@@ -8,6 +8,7 @@
use serde::Serialize;
use serde_json::{self, Value};
+use std::error::Error;
use std::io::{Read, Write};
use std::net::TcpStream;
@@ -26,29 +27,38 @@ pub struct Method {
}
pub trait JsonPacketStream {
- fn write_json_packet<T: Serialize>(&mut self, obj: &T);
- fn write_merged_json_packet<T: Serialize, U: Serialize>(&mut self, base: &T, extra: &U);
+ fn write_json_packet<T: Serialize>(&mut self, obj: &T) -> Result<(), Box<dyn Error>>;
+ fn write_merged_json_packet<T: Serialize, U: Serialize>(
+ &mut self,
+ base: &T,
+ extra: &U,
+ ) -> Result<(), Box<dyn Error>>;
fn read_json_packet(&mut self) -> Result<Option<Value>, String>;
}
impl JsonPacketStream for TcpStream {
- fn write_json_packet<T: Serialize>(&mut self, obj: &T) {
- let s = serde_json::to_string(obj).unwrap();
+ fn write_json_packet<T: Serialize>(&mut self, obj: &T) -> Result<(), Box<dyn Error>> {
+ let s = serde_json::to_string(obj)?;
debug!("<- {}", s);
- write!(self, "{}:{}", s.len(), s).unwrap();
+ write!(self, "{}:{}", s.len(), s)?;
+ Ok(())
}
- fn write_merged_json_packet<T: Serialize, U: Serialize>(&mut self, base: &T, extra: &U) {
- let mut obj = serde_json::to_value(base).unwrap();
+ fn write_merged_json_packet<T: Serialize, U: Serialize>(
+ &mut self,
+ base: &T,
+ extra: &U,
+ ) -> Result<(), Box<dyn Error>> {
+ let mut obj = serde_json::to_value(base)?;
let obj = obj.as_object_mut().unwrap();
- let extra = serde_json::to_value(extra).unwrap();
+ let extra = serde_json::to_value(extra)?;
let extra = extra.as_object().unwrap();
for (key, value) in extra {
obj.insert(key.to_owned(), value.to_owned());
}
- self.write_json_packet(obj);
+ self.write_json_packet(obj)
}
fn read_json_packet(&mut self) -> Result<Option<Value>, String> {
@@ -74,7 +84,9 @@ impl JsonPacketStream for TcpStream {
Err(_) => return Err("packet length missing / not parsable".to_owned()),
};
let mut packet = String::new();
- self.take(packet_len).read_to_string(&mut packet).unwrap();
+ self.take(packet_len)
+ .read_to_string(&mut packet)
+ .map_err(|e| e.to_string())?;
debug!("{}", packet);
return match serde_json::from_str(&packet) {
Ok(json) => Ok(Some(json)),