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

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

Issue 1997293002: Introduce SourceLocation to be used for console messages. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 4 years, 7 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 "core/inspector/ConsoleMessage.h" 5 #include "core/inspector/ConsoleMessage.h"
6 6
7 #include "bindings/core/v8/ScriptCallStack.h" 7 #include "bindings/core/v8/ScriptCallStack.h"
8 #include "bindings/core/v8/ScriptValue.h" 8 #include "bindings/core/v8/ScriptValue.h"
9 #include "bindings/core/v8/SourceLocation.h"
9 #include "core/inspector/ScriptArguments.h" 10 #include "core/inspector/ScriptArguments.h"
10 #include "wtf/CurrentTime.h" 11 #include "wtf/CurrentTime.h"
11 #include "wtf/PassOwnPtr.h" 12 #include "wtf/PassOwnPtr.h"
12 13
13 namespace blink { 14 namespace blink {
14 15
15 unsigned nextMessageId() 16 unsigned nextMessageId()
16 { 17 {
17 struct MessageId { 18 struct MessageId {
18 MessageId() : value(0) { } 19 MessageId() : value(0) { }
19 unsigned value; 20 unsigned value;
20 }; 21 };
21 22
22 DEFINE_THREAD_SAFE_STATIC_LOCAL(WTF::ThreadSpecific<MessageId>, messageId, n ew WTF::ThreadSpecific<MessageId>); 23 DEFINE_THREAD_SAFE_STATIC_LOCAL(WTF::ThreadSpecific<MessageId>, messageId, n ew WTF::ThreadSpecific<MessageId>);
23 return ++messageId->value; 24 return ++messageId->value;
24 } 25 }
25 26
26 // static 27 // static
27 ConsoleMessage* ConsoleMessage::create(MessageSource source, MessageLevel level, const String& message, const String& url, unsigned lineNumber, unsigned columnN umber, PassRefPtr<ScriptCallStack> passCallStack, int scriptId, ScriptArguments* arguments) 28 ConsoleMessage* ConsoleMessage::create(MessageSource source, MessageLevel level, const String& message, const String& url, unsigned lineNumber, unsigned columnN umber, PassRefPtr<ScriptCallStack> passCallStack, int scriptId, ScriptArguments* arguments)
28 { 29 {
29 RefPtr<ScriptCallStack> callStack = passCallStack; 30 RefPtr<ScriptCallStack> callStack = passCallStack;
30 if (callStack && !callStack->isEmpty() && (!scriptId || !lineNumber)) 31 if (callStack && !callStack->isEmpty() && (!scriptId || !lineNumber))
31 return new ConsoleMessage(source, level, message, callStack->topSourceUR L(), callStack->topLineNumber(), callStack->topColumnNumber(), callStack, 0, arg uments); 32 return new ConsoleMessage(source, level, message, callStack->topSourceUR L(), callStack->topLineNumber(), callStack->topColumnNumber(), callStack->copySt ackTrace(), 0, arguments);
32 return new ConsoleMessage(source, level, message, url, lineNumber, columnNum ber, callStack, scriptId, arguments); 33 return new ConsoleMessage(source, level, message, url, lineNumber, columnNum ber, callStack ? callStack->copyStackTrace() : nullptr, scriptId, arguments);
33 } 34 }
34 35
35 // static 36 // static
36 ConsoleMessage* ConsoleMessage::create(MessageSource source, MessageLevel level, const String& message, const String& url, unsigned lineNumber, unsigned columnN umber) 37 ConsoleMessage* ConsoleMessage::create(MessageSource source, MessageLevel level, const String& message, const String& url, unsigned lineNumber, unsigned columnN umber)
37 { 38 {
38 return ConsoleMessage::create(source, level, message, url, lineNumber, colum nNumber, nullptr, 0); 39 return ConsoleMessage::create(source, level, message, url, lineNumber, colum nNumber, nullptr, 0);
39 } 40 }
40 41
41 // static 42 // static
42 ConsoleMessage* ConsoleMessage::createWithCallStack(MessageSource source, Messag eLevel level, const String& message, const String& url, unsigned lineNumber, uns igned columnNumber) 43 ConsoleMessage* ConsoleMessage::createWithCallStack(MessageSource source, Messag eLevel level, const String& message, const String& url, unsigned lineNumber, uns igned columnNumber)
(...skipping 16 matching lines...) Expand all
59 } 60 }
60 61
61 // static 62 // static
62 ConsoleMessage* ConsoleMessage::createForConsoleAPI(MessageLevel level, MessageT ype type, const String& message, ScriptArguments* arguments) 63 ConsoleMessage* ConsoleMessage::createForConsoleAPI(MessageLevel level, MessageT ype type, const String& message, ScriptArguments* arguments)
63 { 64 {
64 ConsoleMessage* consoleMessage = ConsoleMessage::create(ConsoleAPIMessageSou rce, level, message, String(), 0, 0, ScriptCallStack::captureForConsole(), 0, ar guments); 65 ConsoleMessage* consoleMessage = ConsoleMessage::create(ConsoleAPIMessageSou rce, level, message, String(), 0, 0, ScriptCallStack::captureForConsole(), 0, ar guments);
65 consoleMessage->m_type = type; 66 consoleMessage->m_type = type;
66 return consoleMessage; 67 return consoleMessage;
67 } 68 }
68 69
70 // static
71 ConsoleMessage* ConsoleMessage::create(MessageSource source, MessageLevel level, const String& message, PassOwnPtr<SourceLocation> location)
72 {
73 if (!location)
74 return new ConsoleMessage(source, level, message, String(), 0, 0, nullpt r, 0, nullptr);
75 return new ConsoleMessage(source, level, message, location->url(), location- >lineNumber(), location->columnNumber(), location->takeStackTrace(), location->s criptId(), nullptr);
76 }
77
78 // static
79 ConsoleMessage* ConsoleMessage::create(MessageSource source, MessageLevel level, const String& message, const String& url, unsigned lineNumber, unsigned columnN umber, PassOwnPtr<V8StackTrace> stackTrace, int scriptId, ScriptArguments* argum ents)
80 {
81 return new ConsoleMessage(source, level, message, url, lineNumber, columnNum ber, std::move(stackTrace), scriptId, arguments);
82 }
83
69 ConsoleMessage::ConsoleMessage(MessageSource source, 84 ConsoleMessage::ConsoleMessage(MessageSource source,
70 MessageLevel level, 85 MessageLevel level,
71 const String& message, 86 const String& message,
72 const String& url, 87 const String& url,
73 unsigned lineNumber, 88 unsigned lineNumber,
74 unsigned columnNumber, 89 unsigned columnNumber,
75 PassRefPtr<ScriptCallStack> callStack, 90 PassOwnPtr<V8StackTrace> stackTrace,
76 int scriptId, 91 int scriptId,
77 ScriptArguments* arguments) 92 ScriptArguments* arguments)
78 : m_source(source) 93 : m_source(source)
79 , m_level(level) 94 , m_level(level)
80 , m_type(LogMessageType) 95 , m_type(LogMessageType)
81 , m_message(message) 96 , m_message(message)
82 , m_scriptId(scriptId) 97 , m_scriptId(scriptId)
83 , m_url(url) 98 , m_url(url)
84 , m_lineNumber(lineNumber) 99 , m_lineNumber(lineNumber)
85 , m_columnNumber(columnNumber) 100 , m_columnNumber(columnNumber)
86 , m_callStack(callStack) 101 , m_stackTrace(std::move(stackTrace))
87 , m_scriptArguments(arguments) 102 , m_scriptArguments(arguments)
88 , m_requestIdentifier(0) 103 , m_requestIdentifier(0)
89 , m_timestamp(WTF::currentTime()) 104 , m_timestamp(WTF::currentTime())
90 , m_messageId(0) 105 , m_messageId(0)
91 , m_relatedMessageId(0) 106 , m_relatedMessageId(0)
92 { 107 {
93 } 108 }
94 109
95 ConsoleMessage::~ConsoleMessage() 110 ConsoleMessage::~ConsoleMessage()
96 { 111 {
(...skipping 17 matching lines...) Expand all
114 unsigned ConsoleMessage::lineNumber() const 129 unsigned ConsoleMessage::lineNumber() const
115 { 130 {
116 return m_lineNumber; 131 return m_lineNumber;
117 } 132 }
118 133
119 unsigned ConsoleMessage::columnNumber() const 134 unsigned ConsoleMessage::columnNumber() const
120 { 135 {
121 return m_columnNumber; 136 return m_columnNumber;
122 } 137 }
123 138
124 PassRefPtr<ScriptCallStack> ConsoleMessage::callStack() const 139 V8StackTrace* ConsoleMessage::stackTrace() const
125 { 140 {
126 return m_callStack; 141 return m_stackTrace.get();
127 } 142 }
128 143
129 ScriptArguments* ConsoleMessage::scriptArguments() const 144 ScriptArguments* ConsoleMessage::scriptArguments() const
130 { 145 {
131 return m_scriptArguments; 146 return m_scriptArguments;
132 } 147 }
133 148
134 unsigned long ConsoleMessage::requestIdentifier() const 149 unsigned long ConsoleMessage::requestIdentifier() const
135 { 150 {
136 return m_requestIdentifier; 151 return m_requestIdentifier;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 return m_scriptArguments->argumentCount(); 195 return m_scriptArguments->argumentCount();
181 return 0; 196 return 0;
182 } 197 }
183 198
184 DEFINE_TRACE(ConsoleMessage) 199 DEFINE_TRACE(ConsoleMessage)
185 { 200 {
186 visitor->trace(m_scriptArguments); 201 visitor->trace(m_scriptArguments);
187 } 202 }
188 203
189 } // namespace blink 204 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698