diff --git a/Cargo.lock b/Cargo.lock index da563a7e7ff..bf1e2cf2331 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3485,7 +3485,7 @@ dependencies = [ [[package]] name = "mozjs" version = "0.13.0" -source = "git+https://github.com/servo/rust-mozjs#8615f86310d2e1021f7f1e5db4a0df98f4c8edb0" +source = "git+https://github.com/servo/rust-mozjs#11cabdef2cbf0884a2cc33e3c73719646bd31ce5" dependencies = [ "cc", "lazy_static", diff --git a/Cargo.toml b/Cargo.toml index c1d7986da5f..6f37b4f3f7c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,3 +33,4 @@ winapi = { git = "https://github.com/servo/winapi-rs", branch = "patch-1" } spirv_cross = { git = "https://github.com/servo/spirv_cross", branch = "wgpu-servo" } surfman-chains = { git = "https://github.com/asajeffrey/surfman-chains" } surfman = { git = "https://github.com/servo/surfman" } + diff --git a/components/script/devtools.rs b/components/script/devtools.rs index 49d855ff20f..2aad7d101c7 100644 --- a/components/script/devtools.rs +++ b/components/script/devtools.rs @@ -34,7 +34,7 @@ pub fn handle_evaluate_js(global: &GlobalScope, eval: String, reply: IpcSender", rval.handle_mut(), 1); if rval.is_undefined() { EvaluateJSReply::VoidValue diff --git a/components/script/dom/console.rs b/components/script/dom/console.rs index 22caa2993bd..cf6eb1668f8 100644 --- a/components/script/dom/console.rs +++ b/components/script/dom/console.rs @@ -7,15 +7,24 @@ use crate::dom::bindings::str::DOMString; use crate::dom::globalscope::GlobalScope; use crate::dom::workerglobalscope::WorkerGlobalScope; use devtools_traits::{ConsoleMessage, LogLevel, ScriptToDevtoolsControlMsg}; +use js::rust::describe_scripted_caller; use std::io; // https://developer.mozilla.org/en-US/docs/Web/API/Console pub struct Console(()); impl Console { + #[allow(unsafe_code)] fn send_to_devtools(global: &GlobalScope, level: LogLevel, message: DOMString) { if let Some(chan) = global.devtools_chan() { - let console_message = prepare_message(level, message); + let caller = unsafe { describe_scripted_caller(*global.get_cx()) }.unwrap_or_default(); + let console_message = ConsoleMessage { + message: String::from(message), + logLevel: level, + filename: caller.filename, + lineNumber: caller.line as usize, + columnNumber: caller.col as usize, + }; let worker_id = global .downcast::() .map(|worker| worker.get_worker_id()); @@ -128,14 +137,3 @@ impl Console { }) } } - -fn prepare_message(log_level: LogLevel, message: DOMString) -> ConsoleMessage { - // TODO: Sending fake values for filename, lineNumber and columnNumber in LogMessage; adjust later - ConsoleMessage { - message: String::from(message), - logLevel: log_level, - filename: "test".to_owned(), - lineNumber: 1, - columnNumber: 1, - } -}