aboutsummaryrefslogtreecommitdiffstats
path: root/components/devtools
diff options
context:
space:
mode:
authorSimon Wülker <simon.wuelker@arcor.de>2025-01-02 19:47:52 +0100
committerGitHub <noreply@github.com>2025-01-02 18:47:52 +0000
commitb252f238d1c66470a2a0d759f3df3a40504fd0e2 (patch)
tree32cbb340a3faed7aed1e4a800ef2a01d91d56015 /components/devtools
parent7c023ee02afc0d65eb43e90dbd51130e66443f67 (diff)
downloadservo-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.rs31
-rw-r--r--components/devtools/lib.rs22
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,