v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8-console-agent-impl.cc
Go to the documentation of this file.
1// Copyright 2016 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
6
7#include "src/inspector/protocol/Protocol.h"
12
13namespace v8_inspector {
14
15namespace ConsoleAgentState {
16static const char consoleEnabled[] = "consoleEnabled";
17} // namespace ConsoleAgentState
18
20 V8InspectorSessionImpl* session, protocol::FrontendChannel* frontendChannel,
21 protocol::DictionaryValue* state)
22 : m_session(session),
23 m_state(state),
24 m_frontend(frontendChannel),
25 m_enabled(false) {}
26
28
30 if (m_enabled) return Response::Success();
32 m_enabled = true;
34 return Response::Success();
35}
36
38 if (!m_enabled) return Response::Success();
40 m_enabled = false;
41 return Response::Success();
42}
43
44Response V8ConsoleAgentImpl::clearMessages() { return Response::Success(); }
45
47 if (!m_state->booleanProperty(ConsoleAgentState::consoleEnabled, false))
48 return;
49 enable();
50}
51
53 if (m_enabled) reportMessage(message, true);
54}
55
57
62 for (const auto& message : storage->messages()) {
63 if (message->origin() == V8MessageOrigin::kConsole) {
64 if (!reportMessage(message.get(), false)) return;
65 }
66 }
67}
68
70 bool generatePreview) {
71 DCHECK_EQ(V8MessageOrigin::kConsole, message->origin());
72 message->reportToFrontend(&m_frontend);
73 m_frontend.flush();
76}
77
78} // namespace v8_inspector
bool reportMessage(V8ConsoleMessage *, bool generatePreview)
protocol::DictionaryValue * m_state
protocol::Console::Frontend m_frontend
V8ConsoleAgentImpl(V8InspectorSessionImpl *, protocol::FrontendChannel *, protocol::DictionaryValue *state)
const std::deque< std::unique_ptr< V8ConsoleMessage > > & messages() const
V8ConsoleMessageStorage * ensureConsoleMessageStorage(int contextGroupId)
bool hasConsoleMessageStorage(int contextGroupId)
#define DCHECK_EQ(v1, v2)
Definition logging.h:485
V8InspectorSessionImpl * m_session
protocol::HeapProfiler::Frontend * m_frontend