Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(164)

Side by Side Diff: third_party/WebKit/Source/platform/v8_inspector/V8ConsoleAgentImpl.cpp

Issue 2035653006: [DevTools] Move Console to v8 inspector. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: improved api a bit Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium 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
5 #include "platform/v8_inspector/V8ConsoleAgentImpl.h"
6
7 #include "platform/v8_inspector/V8ConsoleMessage.h"
8 #include "platform/v8_inspector/V8DebuggerImpl.h"
9 #include "platform/v8_inspector/V8InspectorSessionImpl.h"
10 #include "platform/v8_inspector/V8StackTraceImpl.h"
11
12 namespace blink {
13
14 namespace ConsoleAgentState {
15 static const char consoleEnabled[] = "consoleEnabled";
16 }
17
18 V8ConsoleAgentImpl::V8ConsoleAgentImpl(V8InspectorSessionImpl* session, protocol ::FrontendChannel* frontendChannel, protocol::DictionaryValue* state)
19 : m_session(session)
20 , m_state(state)
21 , m_frontend(frontendChannel)
22 , m_enabled(false)
23 {
24 }
25
26 V8ConsoleAgentImpl::~V8ConsoleAgentImpl()
27 {
28 }
29
30 void V8ConsoleAgentImpl::enable(ErrorString* errorString)
31 {
32 if (m_enabled)
33 return;
34 m_state->setBoolean(ConsoleAgentState::consoleEnabled, true);
35 m_enabled = true;
36 m_session->debugger()->enableStackCapturingIfNeeded();
37 reportAllMessages();
38 m_session->client()->consoleEnabled();
39 }
40
41 void V8ConsoleAgentImpl::disable(ErrorString* errorString)
42 {
43 if (!m_enabled)
44 return;
45 m_session->debugger()->disableStackCapturingIfNeeded();
46 m_state->setBoolean(ConsoleAgentState::consoleEnabled, false);
47 m_enabled = false;
48 }
49
50 void V8ConsoleAgentImpl::clearMessages(ErrorString* errorString)
51 {
52 m_session->debugger()->ensureConsoleMessageStorage(m_session->contextGroupId ())->clear();
53 }
54
55 void V8ConsoleAgentImpl::restore()
56 {
57 if (!m_state->booleanProperty(ConsoleAgentState::consoleEnabled, false))
58 return;
59 m_frontend.messagesCleared();
60 ErrorString ignored;
61 enable(&ignored);
62 }
63
64 void V8ConsoleAgentImpl::messageAdded(V8ConsoleMessage* message)
65 {
66 if (m_enabled)
67 reportMessage(message, true);
68 }
69
70 void V8ConsoleAgentImpl::reset()
71 {
72 if (m_enabled)
73 m_frontend.messagesCleared();
74 }
75
76 bool V8ConsoleAgentImpl::enabled()
77 {
78 return m_enabled;
79 }
80
81 void V8ConsoleAgentImpl::reportAllMessages()
82 {
83 V8ConsoleMessageStorage* storage = m_session->debugger()->ensureConsoleMessa geStorage(m_session->contextGroupId());
84 if (storage->expiredCount()) {
85 std::unique_ptr<protocol::Console::ConsoleMessage> expired = protocol::C onsole::ConsoleMessage::create()
86 .setSource(protocol::Console::ConsoleMessage::SourceEnum::Other)
87 .setLevel(protocol::Console::ConsoleMessage::LevelEnum::Warning)
88 .setText(String16::number(storage->expiredCount()) + String16("conso le messages are not shown."))
89 .setTimestamp(0)
90 .build();
91 expired->setType(protocol::Console::ConsoleMessage::TypeEnum::Log);
92 expired->setLine(0);
93 expired->setColumn(0);
94 expired->setUrl("");
95 m_frontend.messageAdded(std::move(expired));
96 m_frontend.flush();
97 }
98 for (const auto& message : storage->messages())
99 reportMessage(message.get(), false);
100 }
101
102 void V8ConsoleAgentImpl::reportMessage(V8ConsoleMessage* message, bool generateP review)
103 {
104 m_frontend.messageAdded(message->buildInspectorObject(m_session, generatePre view));
105 m_frontend.flush();
106 }
107
108 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698