diff options
author | Simon Wülker <simon.wuelker@arcor.de> | 2025-01-02 19:47:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-02 18:47:52 +0000 |
commit | b252f238d1c66470a2a0d759f3df3a40504fd0e2 (patch) | |
tree | 32cbb340a3faed7aed1e4a800ef2a01d91d56015 /components/devtools | |
parent | 7c023ee02afc0d65eb43e90dbd51130e66443f67 (diff) | |
download | servo-b252f238d1c66470a2a0d759f3df3a40504fd0e2.tar.gz servo-b252f238d1c66470a2a0d759f3df3a40504fd0e2.zip |
Support syntax highlighting of arguments in the devtools console (#34810)
* Implement Builder struct for console messages
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Support integer arguments for console methods
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Support floating point arguments to console methods in devtools
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Fix warnings
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Tidy
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Diffstat (limited to 'components/devtools')
-rw-r--r-- | components/devtools/actors/console.rs | 31 | ||||
-rw-r--r-- | components/devtools/lib.rs | 22 |
2 files changed, 15 insertions, 38 deletions
diff --git a/components/devtools/actors/console.rs b/components/devtools/actors/console.rs index bf949d9219c..dd2b7b57a87 100644 --- a/components/devtools/actors/console.rs +++ b/components/devtools/actors/console.rs @@ -17,7 +17,7 @@ use devtools_traits::EvaluateJSReply::{ }; use devtools_traits::{ CachedConsoleMessage, CachedConsoleMessageTypes, ConsoleLog, ConsoleMessage, - DevtoolScriptControlMsg, LogLevel, PageError, + DevtoolScriptControlMsg, PageError, }; use ipc_channel::ipc::{self, IpcSender}; use log::debug; @@ -272,40 +272,17 @@ impl ConsoleActor { id: UniqueId, registry: &ActorRegistry, ) { - let level = match console_message.log_level { - LogLevel::Debug => "debug", - LogLevel::Info => "info", - LogLevel::Warn => "warn", - LogLevel::Error => "error", - LogLevel::Clear => "clear", - LogLevel::Trace => "trace", - LogLevel::Log => "log", - } - .to_owned(); - - let console_api = ConsoleLog { - level, - filename: console_message.filename, - line_number: console_message.line_number as u32, - column_number: console_message.column_number as u32, - time_stamp: SystemTime::now() - .duration_since(UNIX_EPOCH) - .unwrap_or_default() - .as_millis() as u64, - arguments: vec![console_message.message], - stacktrace: console_message.stacktrace, - }; - + let log_message: ConsoleLog = console_message.into(); self.cached_events .borrow_mut() .entry(id.clone()) .or_default() - .push(CachedConsoleMessage::ConsoleLog(console_api.clone())); + .push(CachedConsoleMessage::ConsoleLog(log_message.clone())); if id == self.current_unique_id(registry) { if let Root::BrowsingContext(bc) = &self.root { registry .find::<BrowsingContextActor>(bc) - .resource_available(console_api, "console-message".into()) + .resource_available(log_message, "console-message".into()) }; } } diff --git a/components/devtools/lib.rs b/components/devtools/lib.rs index f6d5576a355..09881b64423 100644 --- a/components/devtools/lib.rs +++ b/components/devtools/lib.rs @@ -22,8 +22,8 @@ use std::thread; use base::id::{BrowsingContextId, PipelineId}; use crossbeam_channel::{unbounded, Receiver, Sender}; use devtools_traits::{ - ChromeToDevtoolsControlMsg, ConsoleMessage, DevtoolScriptControlMsg, DevtoolsControlMsg, - DevtoolsPageInfo, LogLevel, NavigationState, NetworkEvent, PageError, + ChromeToDevtoolsControlMsg, ConsoleMessage, ConsoleMessageBuilder, DevtoolScriptControlMsg, + DevtoolsControlMsg, DevtoolsPageInfo, LogLevel, NavigationState, NetworkEvent, PageError, ScriptToDevtoolsControlMsg, WorkerId, }; use embedder_traits::{EmbedderMsg, EmbedderProxy, PromptDefinition, PromptOrigin, PromptResult}; @@ -688,19 +688,19 @@ fn run_server( id, css_error, )) => { - let console_message = ConsoleMessage { - message: css_error.msg, - log_level: LogLevel::Warn, - filename: css_error.filename, - line_number: css_error.line as usize, - column_number: css_error.column as usize, - stacktrace: vec![], - }; + let mut console_message = ConsoleMessageBuilder::new( + LogLevel::Warn, + css_error.filename, + css_error.line, + css_error.column, + ); + console_message.add_argument(css_error.msg.into()); + handle_console_message( actors.clone(), id, None, - console_message, + console_message.finish(), &browsing_contexts, &actor_workers, &pipelines, |