mirror of
https://github.com/servo/servo.git
synced 2025-07-29 18:20:24 +01:00
fixes #5232, more console log levels sent to devtools
This commit is contained in:
parent
54afa01dd6
commit
a00d264c8c
3 changed files with 54 additions and 40 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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! {
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue