aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Parker <j3parker@csclub.uwaterloo.ca>2015-05-27 01:42:06 -0400
committerJacob Parker <j3parker@csclub.uwaterloo.ca>2015-06-01 18:39:43 -0400
commita00d264c8cf864b905a1c081990b711c17f0883e (patch)
tree48f85f62c011a14538e7a034a9c4823c35212146
parent54afa01dd665b8facbbba7d49974ac5532e3b83f (diff)
downloadservo-a00d264c8cf864b905a1c081990b711c17f0883e.tar.gz
servo-a00d264c8cf864b905a1c081990b711c17f0883e.zip
fixes #5232, more console log levels sent to devtools
-rw-r--r--components/devtools/lib.rs45
-rw-r--r--components/devtools_traits/lib.rs23
-rw-r--r--components/script/dom/console.rs26
3 files changed, 54 insertions, 40 deletions
diff --git a/components/devtools/lib.rs b/components/devtools/lib.rs
index 71fa0b0a614..57f075e9327 100644
--- a/components/devtools/lib.rs
+++ b/components/devtools/lib.rs
@@ -39,7 +39,7 @@ use actors::timeline::TimelineActor;
use actors::worker::WorkerActor;
use protocol::JsonPacketStream;
-use devtools_traits::{ConsoleMessage, DevtoolsControlMsg, NetworkEvent};
+use devtools_traits::{ConsoleMessage, DevtoolsControlMsg, NetworkEvent, LogLevel};
use devtools_traits::{DevtoolsPageInfo, DevtoolScriptControlMsg};
use msg::constellation_msg::{PipelineId, WorkerId};
use util::task::spawn_named;
@@ -251,29 +251,26 @@ fn run_server(sender: Sender<DevtoolsControlMsg>,
let console_actor_name = find_console_actor(actors.clone(), id, actor_pipelines);
let actors = actors.lock().unwrap();
let console_actor = actors.find::<ConsoleActor>(&console_actor_name);
- match console_message {
- ConsoleMessage::LogMessage {
- message,
- filename,
- lineNumber,
- columnNumber,
- } => {
- let msg = ConsoleAPICall {
- from: console_actor.name.clone(),
- __type__: "consoleAPICall".to_string(),
- message: ConsoleMsg {
- level: "log".to_string(),
- timeStamp: precise_time_ns(),
- arguments: vec!(message),
- filename: filename,
- lineNumber: lineNumber,
- columnNumber: columnNumber,
- },
- };
- for stream in console_actor.streams.borrow_mut().iter_mut() {
- stream.write_json_packet(&msg);
- }
- }
+ let msg = ConsoleAPICall {
+ from: console_actor.name.clone(),
+ __type__: "consoleAPICall".to_string(),
+ message: ConsoleMsg {
+ level: match console_message.logLevel {
+ LogLevel::Debug => "debug",
+ LogLevel::Info => "info",
+ LogLevel::Warn => "warn",
+ LogLevel::Error => "error",
+ _ => "log"
+ }.to_string(),
+ timeStamp: precise_time_ns(),
+ arguments: vec!(console_message.message),
+ filename: console_message.filename,
+ lineNumber: console_message.lineNumber,
+ columnNumber: console_message.columnNumber,
+ },
+ };
+ for stream in console_actor.streams.borrow_mut().iter_mut() {
+ stream.write_json_packet(&msg);
}
}
diff --git a/components/devtools_traits/lib.rs b/components/devtools_traits/lib.rs
index f0a2d19dcb1..5f584347c4f 100644
--- a/components/devtools_traits/lib.rs
+++ b/components/devtools_traits/lib.rs
@@ -149,15 +149,22 @@ impl Decodable for Modification {
}
}
-//TODO: Include options for Warn, Debug, Info, Error messages from Console
#[derive(Clone)]
-pub enum ConsoleMessage {
- LogMessage {
- message: String,
- filename: String,
- lineNumber: u32,
- columnNumber: u32,
- },
+pub enum LogLevel {
+ Log,
+ Debug,
+ Info,
+ Warn,
+ Error,
+}
+
+#[derive(Clone)]
+pub struct ConsoleMessage {
+ pub message: String,
+ pub logLevel: LogLevel,
+ pub filename: String,
+ pub lineNumber: u32,
+ pub columnNumber: u32,
}
bitflags! {
diff --git a/components/script/dom/console.rs b/components/script/dom/console.rs
index 0ef57f026b5..45cd3e43f76 100644
--- a/components/script/dom/console.rs
+++ b/components/script/dom/console.rs
@@ -8,7 +8,7 @@ use dom::bindings::global::{GlobalRef, GlobalField};
use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::window::WindowHelpers;
-use devtools_traits::{DevtoolsControlMsg, ConsoleMessage};
+use devtools_traits::{DevtoolsControlMsg, ConsoleMessage, LogLevel};
use util::str::DOMString;
// https://developer.mozilla.org/en-US/docs/Web/API/Console
@@ -36,19 +36,14 @@ impl<'a> ConsoleMethods for JSRef<'a, Console> {
fn Log(self, messages: Vec<DOMString>) {
for message in messages {
println!("{}", message);
- //TODO: Sending fake values for filename, lineNumber and columnNumber in LogMessage; adjust later
- propagate_console_msg(&self, ConsoleMessage::LogMessage {
- message: message,
- filename: "test".to_owned(),
- lineNumber: 1,
- columnNumber: 1,
- });
+ propagate_console_msg(&self, prepare_message(LogLevel::Log, message));
}
}
fn Debug(self, messages: Vec<DOMString>) {
for message in messages {
println!("{}", message);
+ propagate_console_msg(&self, prepare_message(LogLevel::Debug, message));
}
}
@@ -56,6 +51,7 @@ impl<'a> ConsoleMethods for JSRef<'a, Console> {
fn Info(self, messages: Vec<DOMString>) {
for message in messages {
println!("{}", message);
+ propagate_console_msg(&self, prepare_message(LogLevel::Info, message));
}
}
@@ -63,6 +59,7 @@ impl<'a> ConsoleMethods for JSRef<'a, Console> {
fn Warn(self, messages: Vec<DOMString>) {
for message in messages {
println!("{}", message);
+ propagate_console_msg(&self, prepare_message(LogLevel::Warn, message));
}
}
@@ -70,6 +67,7 @@ impl<'a> ConsoleMethods for JSRef<'a, Console> {
fn Error(self, messages: Vec<DOMString>) {
for message in messages {
println!("{}", message);
+ propagate_console_msg(&self, prepare_message(LogLevel::Error, message));
}
}
@@ -81,10 +79,22 @@ impl<'a> ConsoleMethods for JSRef<'a, Console> {
None => "no message",
};
println!("Assertion failed: {}", message);
+ propagate_console_msg(&self, prepare_message(LogLevel::Error, message.to_owned()));
}
}
}
+fn prepare_message(logLevel: LogLevel, message: String) -> ConsoleMessage {
+ //TODO: Sending fake values for filename, lineNumber and columnNumber in LogMessage; adjust later
+ ConsoleMessage{
+ message: message,
+ logLevel: logLevel,
+ filename: "test".to_owned(),
+ lineNumber: 1,
+ columnNumber: 1
+ }
+}
+
fn propagate_console_msg(console: &JSRef<Console>, console_message: ConsoleMessage) {
let global = console.global.root();
match global.r() {