Commit 451a101b authored by Benedikt Meurer's avatar Benedikt Meurer Committed by V8 LUCI CQ

[inspector] Decouple Console domain from stack trace capturing.

The `Console` domain has been deprecated (in favor of `Log` and
`Runtime`) since over four years now, and its use is strongly
discouraged.

However, making `Runtime.setMaxCallStackSizeToCapture` useful (in
light of the refactorings for crbug.com/1283162) and more correct
(wrt. to the anticipated behavior), would be complicated seriously
if we also need to worry about `Console` domain interference.

So this CL simply removes the feature that `Console.enable` turns
on stack trace capturing for error and message objects, and won't
send `line`, `column`, and `url` with `Console.Message` events
if they aren't present on the `v8_inspector::V8ConsoleMessage`
instance (these fields have always been optional anyways).

Bug: chromium:1283162
Change-Id: I78bd1e040fe15a2372639c403bfc2f4579fd4d0c
Doc: https://bit.ly/v8-cheaper-inspector-stack-traces
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3361837
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78454}
parent 2feba8d2
...@@ -30,14 +30,12 @@ Response V8ConsoleAgentImpl::enable() { ...@@ -30,14 +30,12 @@ Response V8ConsoleAgentImpl::enable() {
if (m_enabled) return Response::Success(); if (m_enabled) return Response::Success();
m_state->setBoolean(ConsoleAgentState::consoleEnabled, true); m_state->setBoolean(ConsoleAgentState::consoleEnabled, true);
m_enabled = true; m_enabled = true;
m_session->inspector()->enableStackCapturingIfNeeded();
reportAllMessages(); reportAllMessages();
return Response::Success(); return Response::Success();
} }
Response V8ConsoleAgentImpl::disable() { Response V8ConsoleAgentImpl::disable() {
if (!m_enabled) return Response::Success(); if (!m_enabled) return Response::Success();
m_session->inspector()->disableStackCapturingIfNeeded();
m_state->setBoolean(ConsoleAgentState::consoleEnabled, false); m_state->setBoolean(ConsoleAgentState::consoleEnabled, false);
m_enabled = false; m_enabled = false;
return Response::Success(); return Response::Success();
......
...@@ -244,9 +244,9 @@ void V8ConsoleMessage::reportToFrontend( ...@@ -244,9 +244,9 @@ void V8ConsoleMessage::reportToFrontend(
.setLevel(level) .setLevel(level)
.setText(m_message) .setText(m_message)
.build(); .build();
result->setLine(static_cast<int>(m_lineNumber)); if (m_lineNumber) result->setLine(m_lineNumber);
result->setColumn(static_cast<int>(m_columnNumber)); if (m_columnNumber) result->setColumn(m_columnNumber);
result->setUrl(m_url); if (!m_url.isEmpty()) result->setUrl(m_url);
frontend->messageAdded(std::move(result)); frontend->messageAdded(std::move(result));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment