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

Side by Side Diff: Source/core/inspector/ConsoleMessage.cpp

Issue 464293002: [DevTools] ConsoleMessage storage moved from ConsoleAgent (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@remove-can-generate
Patch Set: Rebased Created 6 years, 4 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "core/inspector/ConsoleMessage.h" 6 #include "core/inspector/ConsoleMessage.h"
7 7
8 #include "bindings/core/v8/ScriptCallStackFactory.h"
8 #include "bindings/core/v8/ScriptState.h" 9 #include "bindings/core/v8/ScriptState.h"
10 #include "core/inspector/ScriptArguments.h"
11 #include "wtf/CurrentTime.h"
12 #include "wtf/PassOwnPtr.h"
9 13
10 namespace blink { 14 namespace blink {
11 15
12 ConsoleMessage::ConsoleMessage() 16 ConsoleMessage::ConsoleMessage()
13 : m_lineNumber(0) 17 : m_lineNumber(0)
14 , m_columnNumber(0) 18 , m_columnNumber(0)
15 , m_scriptState(nullptr)
16 , m_requestIdentifier(0) 19 , m_requestIdentifier(0)
17 , m_workerProxy(nullptr) 20 , m_workerProxy(nullptr)
21 , m_timestamp(WTF::currentTime())
18 { 22 {
19 } 23 }
20 24
21 ConsoleMessage::ConsoleMessage(MessageSource source, 25 ConsoleMessage::ConsoleMessage(MessageSource source,
22 MessageLevel level, 26 MessageLevel level,
23 const String& message, 27 const String& message,
24 const String& url, 28 const String& url,
25 unsigned lineNumber, 29 unsigned lineNumber,
26 unsigned columnNumber) 30 unsigned columnNumber)
27 : m_source(source) 31 : m_source(source)
32 , m_type(LogMessageType)
28 , m_level(level) 33 , m_level(level)
29 , m_message(message) 34 , m_message(message)
30 , m_url(url) 35 , m_url(url)
31 , m_lineNumber(lineNumber) 36 , m_lineNumber(lineNumber)
32 , m_columnNumber(columnNumber) 37 , m_columnNumber(columnNumber)
33 , m_scriptState(nullptr)
34 , m_requestIdentifier(0) 38 , m_requestIdentifier(0)
35 , m_workerProxy(nullptr) 39 , m_workerProxy(nullptr)
40 , m_timestamp(WTF::currentTime())
36 { 41 {
37 } 42 }
38 43
39 ConsoleMessage::~ConsoleMessage() 44 ConsoleMessage::~ConsoleMessage()
40 { 45 {
41 } 46 }
42 47
43 PassRefPtrWillBeRawPtr<ScriptCallStack> ConsoleMessage::callStack() const 48 PassRefPtrWillBeRawPtr<ScriptCallStack> ConsoleMessage::callStack() const
44 { 49 {
45 return m_callStack; 50 return m_callStack;
46 } 51 }
47 52
48 void ConsoleMessage::setCallStack(PassRefPtrWillBeRawPtr<ScriptCallStack> callSt ack) 53 void ConsoleMessage::setCallStack(PassRefPtrWillBeRawPtr<ScriptCallStack> callSt ack)
49 { 54 {
50 m_callStack = callStack; 55 m_callStack = callStack;
51 } 56 }
52 57
53 ScriptState* ConsoleMessage::scriptState() const 58 ScriptState* ConsoleMessage::scriptState() const
54 { 59 {
55 return m_scriptState; 60 if (m_scriptState)
61 return m_scriptState->get();
62 return nullptr;
56 } 63 }
57 64
58 void ConsoleMessage::setScriptState(ScriptState* scriptState) 65 void ConsoleMessage::setScriptState(ScriptState* scriptState)
59 { 66 {
60 m_scriptState = scriptState; 67 m_scriptState = adoptPtr(new ScriptStateProtectingContext(scriptState));
61 } 68 }
62 69
63 unsigned long ConsoleMessage::requestIdentifier() const 70 unsigned long ConsoleMessage::requestIdentifier() const
64 { 71 {
65 return m_requestIdentifier; 72 return m_requestIdentifier;
66 } 73 }
67 74
68 void ConsoleMessage::setRequestIdentifier(unsigned long requestIdentifier) 75 void ConsoleMessage::setRequestIdentifier(unsigned long requestIdentifier)
69 { 76 {
70 m_requestIdentifier = requestIdentifier; 77 m_requestIdentifier = requestIdentifier;
(...skipping 12 matching lines...) Expand all
83 unsigned ConsoleMessage::lineNumber() const 90 unsigned ConsoleMessage::lineNumber() const
84 { 91 {
85 return m_lineNumber; 92 return m_lineNumber;
86 } 93 }
87 94
88 void ConsoleMessage::setLineNumber(unsigned lineNumber) 95 void ConsoleMessage::setLineNumber(unsigned lineNumber)
89 { 96 {
90 m_lineNumber = lineNumber; 97 m_lineNumber = lineNumber;
91 } 98 }
92 99
100 PassRefPtr<ScriptArguments> ConsoleMessage::scriptArguments() const
101 {
102 return m_arguments;
103 }
104
105 void ConsoleMessage::setScriptArguments(PassRefPtr<ScriptArguments> arguments)
106 {
107 m_arguments = arguments;
108 }
109
110 MessageType ConsoleMessage::type() const
111 {
112 return m_type;
113 }
114
115 void ConsoleMessage::setType(MessageType type)
116 {
117 m_type = type;
118 }
119
120 double ConsoleMessage::timestamp() const
121 {
122 return m_timestamp;
123 }
124
125 void ConsoleMessage::setTimestamp(double timestamp)
126 {
127 m_timestamp = timestamp;
128 }
129
93 MessageSource ConsoleMessage::source() const 130 MessageSource ConsoleMessage::source() const
94 { 131 {
95 return m_source; 132 return m_source;
96 } 133 }
97 134
98 MessageLevel ConsoleMessage::level() const 135 MessageLevel ConsoleMessage::level() const
99 { 136 {
100 return m_level; 137 return m_level;
101 } 138 }
102 139
103 const String& ConsoleMessage::message() const 140 const String& ConsoleMessage::message() const
104 { 141 {
105 return m_message; 142 return m_message;
106 } 143 }
107 144
108 unsigned ConsoleMessage::columnNumber() const 145 unsigned ConsoleMessage::columnNumber() const
109 { 146 {
110 return m_columnNumber; 147 return m_columnNumber;
111 } 148 }
112 149
150 void ConsoleMessage::windowCleared(LocalDOMWindow* window)
151 {
152 if (m_scriptState && m_scriptState->get() && m_scriptState->get()->domWindow () == window) {
153 m_scriptState->clear();
154 m_scriptState.clear();
155 }
156
157 if (!m_arguments)
158 return;
159 if (m_arguments->scriptState()->domWindow() != window)
160 return;
161 if (!m_message)
162 m_message = "<message collected>";
163 m_arguments.clear();
164 }
165
166 unsigned ConsoleMessage::argumentCount()
167 {
168 if (m_arguments)
169 return m_arguments->argumentCount();
170 return 0;
171 }
172
173 void ConsoleMessage::autogenerateMetadata()
174 {
175 if (m_type == EndGroupMessageType)
176 return;
177
178 if (!m_callStack)
179 m_callStack = createScriptCallStackForConsole(ScriptCallStack::maxCallSt ackSizeToCapture, true);
180
181 if (m_callStack && m_callStack->size()) {
182 const ScriptCallFrame& frame = m_callStack->at(0);
183 m_url = frame.sourceURL();
184 m_lineNumber = frame.lineNumber();
185 m_columnNumber = frame.columnNumber();
186 return;
187 }
188
189 m_callStack.clear();
190 }
191
113 void ConsoleMessage::trace(Visitor* visitor) 192 void ConsoleMessage::trace(Visitor* visitor)
114 { 193 {
115 visitor->trace(m_callStack); 194 visitor->trace(m_callStack);
116 } 195 }
117 196
118 } // namespace WebCore 197 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698