| OLD | NEW |
| 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" | |
| 8 #include "bindings/core/v8/ScriptValue.h" | 7 #include "bindings/core/v8/ScriptValue.h" |
| 9 #include "bindings/core/v8/SourceLocation.h" | 8 #include "bindings/core/v8/SourceLocation.h" |
| 10 #include "core/inspector/ScriptArguments.h" | 9 #include "core/inspector/ScriptArguments.h" |
| 11 #include "wtf/CurrentTime.h" | 10 #include "wtf/CurrentTime.h" |
| 12 #include "wtf/PassOwnPtr.h" | 11 #include "wtf/PassOwnPtr.h" |
| 13 | 12 |
| 14 namespace blink { | 13 namespace blink { |
| 15 | 14 |
| 16 unsigned nextMessageId() | 15 unsigned nextMessageId() |
| 17 { | 16 { |
| 18 struct MessageId { | 17 struct MessageId { |
| 19 MessageId() : value(0) { } | 18 MessageId() : value(0) { } |
| 20 unsigned value; | 19 unsigned value; |
| 21 }; | 20 }; |
| 22 | 21 |
| 23 DEFINE_THREAD_SAFE_STATIC_LOCAL(WTF::ThreadSpecific<MessageId>, messageId, n
ew WTF::ThreadSpecific<MessageId>); | 22 DEFINE_THREAD_SAFE_STATIC_LOCAL(WTF::ThreadSpecific<MessageId>, messageId, n
ew WTF::ThreadSpecific<MessageId>); |
| 24 return ++messageId->value; | 23 return ++messageId->value; |
| 25 } | 24 } |
| 26 | 25 |
| 27 // static | 26 // static |
| 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) | |
| 29 { | |
| 30 RefPtr<ScriptCallStack> callStack = passCallStack; | |
| 31 if (callStack && !callStack->isEmpty() && (!scriptId || !lineNumber)) | |
| 32 return new ConsoleMessage(source, level, message, callStack->topSourceUR
L(), callStack->topLineNumber(), callStack->topColumnNumber(), callStack->copySt
ackTrace(), 0, arguments); | |
| 33 return new ConsoleMessage(source, level, message, url, lineNumber, columnNum
ber, callStack ? callStack->copyStackTrace() : nullptr, scriptId, arguments); | |
| 34 } | |
| 35 | |
| 36 // static | |
| 37 ConsoleMessage* ConsoleMessage::create(MessageSource source, MessageLevel level,
const String& message, const String& url, unsigned lineNumber, unsigned columnN
umber) | |
| 38 { | |
| 39 return ConsoleMessage::create(source, level, message, url, lineNumber, colum
nNumber, nullptr, 0); | |
| 40 } | |
| 41 | |
| 42 // static | |
| 43 ConsoleMessage* ConsoleMessage::createWithCallStack(MessageSource source, Messag
eLevel level, const String& message, const String& url, unsigned lineNumber, uns
igned columnNumber) | |
| 44 { | |
| 45 return ConsoleMessage::create(source, level, message, url, lineNumber, colum
nNumber, ScriptCallStack::captureForConsole(), 0); | |
| 46 } | |
| 47 | |
| 48 // static | |
| 49 ConsoleMessage* ConsoleMessage::create(MessageSource source, MessageLevel level,
const String& message) | |
| 50 { | |
| 51 return ConsoleMessage::createWithCallStack(source, level, message, String(),
0, 0); | |
| 52 } | |
| 53 | |
| 54 // static | |
| 55 ConsoleMessage* ConsoleMessage::createForRequest(MessageSource source, MessageLe
vel level, const String& message, const String& url, unsigned long requestIdenti
fier) | 27 ConsoleMessage* ConsoleMessage::createForRequest(MessageSource source, MessageLe
vel level, const String& message, const String& url, unsigned long requestIdenti
fier) |
| 56 { | 28 { |
| 57 ConsoleMessage* consoleMessage = ConsoleMessage::createWithCallStack(source,
level, message, url, 0, 0); | 29 ConsoleMessage* consoleMessage = ConsoleMessage::create(source, level, messa
ge, SourceLocation::capture(url, 0, 0)); |
| 58 consoleMessage->m_requestIdentifier = requestIdentifier; | 30 consoleMessage->m_requestIdentifier = requestIdentifier; |
| 59 return consoleMessage; | 31 return consoleMessage; |
| 60 } | 32 } |
| 61 | 33 |
| 62 // static | 34 // static |
| 63 ConsoleMessage* ConsoleMessage::createForConsoleAPI(MessageLevel level, MessageT
ype type, const String& message, ScriptArguments* arguments) | 35 ConsoleMessage* ConsoleMessage::createForConsoleAPI(MessageLevel level, MessageT
ype type, const String& message, ScriptArguments* arguments) |
| 64 { | 36 { |
| 65 ConsoleMessage* consoleMessage = ConsoleMessage::create(ConsoleAPIMessageSou
rce, level, message, String(), 0, 0, ScriptCallStack::captureForConsole(), 0, ar
guments); | 37 ConsoleMessage* consoleMessage = ConsoleMessage::create(ConsoleAPIMessageSou
rce, level, message, SourceLocation::capture(), arguments); |
| 66 consoleMessage->m_type = type; | 38 consoleMessage->m_type = type; |
| 67 return consoleMessage; | 39 return consoleMessage; |
| 68 } | 40 } |
| 69 | 41 |
| 70 // static | 42 // static |
| 71 ConsoleMessage* ConsoleMessage::create(MessageSource source, MessageLevel level,
const String& message, PassOwnPtr<SourceLocation> location, ScriptArguments* ar
guments) | 43 ConsoleMessage* ConsoleMessage::create(MessageSource source, MessageLevel level,
const String& message, PassOwnPtr<SourceLocation> location, ScriptArguments* ar
guments) |
| 72 { | 44 { |
| 73 if (!location) | 45 return new ConsoleMessage(source, level, message, std::move(location), argum
ents); |
| 74 return new ConsoleMessage(source, level, message, String(), 0, 0, nullpt
r, 0, arguments); | |
| 75 return new ConsoleMessage(source, level, message, location->url(), location-
>lineNumber(), location->columnNumber(), location->takeStackTrace(), location->s
criptId(), arguments); | |
| 76 } | 46 } |
| 77 | 47 |
| 78 // static | 48 // static |
| 79 ConsoleMessage* ConsoleMessage::create(MessageSource source, MessageLevel level,
const String& message, const String& url, unsigned lineNumber, unsigned columnN
umber, std::unique_ptr<V8StackTrace> stackTrace, int scriptId, ScriptArguments*
arguments) | 49 ConsoleMessage* ConsoleMessage::create(MessageSource source, MessageLevel level,
const String& message) |
| 80 { | 50 { |
| 81 return new ConsoleMessage(source, level, message, url, lineNumber, columnNum
ber, std::move(stackTrace), scriptId, arguments); | 51 return ConsoleMessage::create(source, level, message, SourceLocation::captur
e()); |
| 82 } | 52 } |
| 83 | 53 |
| 84 ConsoleMessage::ConsoleMessage(MessageSource source, | 54 ConsoleMessage::ConsoleMessage(MessageSource source, |
| 85 MessageLevel level, | 55 MessageLevel level, |
| 86 const String& message, | 56 const String& message, |
| 87 const String& url, | 57 PassOwnPtr<SourceLocation> location, |
| 88 unsigned lineNumber, | |
| 89 unsigned columnNumber, | |
| 90 std::unique_ptr<V8StackTrace> stackTrace, | |
| 91 int scriptId, | |
| 92 ScriptArguments* arguments) | 58 ScriptArguments* arguments) |
| 93 : m_source(source) | 59 : m_source(source) |
| 94 , m_level(level) | 60 , m_level(level) |
| 95 , m_type(LogMessageType) | 61 , m_type(LogMessageType) |
| 96 , m_message(message) | 62 , m_message(message) |
| 97 , m_scriptId(scriptId) | 63 , m_location(std::move(location)) |
| 98 , m_url(url) | |
| 99 , m_lineNumber(lineNumber) | |
| 100 , m_columnNumber(columnNumber) | |
| 101 , m_stackTrace(std::move(stackTrace)) | |
| 102 , m_scriptArguments(arguments) | 64 , m_scriptArguments(arguments) |
| 103 , m_requestIdentifier(0) | 65 , m_requestIdentifier(0) |
| 104 , m_timestamp(WTF::currentTime()) | 66 , m_timestamp(WTF::currentTime()) |
| 105 , m_messageId(0) | 67 , m_messageId(0) |
| 106 , m_relatedMessageId(0) | 68 , m_relatedMessageId(0) |
| 107 { | 69 { |
| 108 } | 70 } |
| 109 | 71 |
| 110 ConsoleMessage::~ConsoleMessage() | 72 ConsoleMessage::~ConsoleMessage() |
| 111 { | 73 { |
| 112 } | 74 } |
| 113 | 75 |
| 114 MessageType ConsoleMessage::type() const | 76 MessageType ConsoleMessage::type() const |
| 115 { | 77 { |
| 116 return m_type; | 78 return m_type; |
| 117 } | 79 } |
| 118 | 80 |
| 119 int ConsoleMessage::scriptId() const | 81 SourceLocation* ConsoleMessage::location() const |
| 120 { | 82 { |
| 121 return m_scriptId; | 83 return m_location.get(); |
| 122 } | |
| 123 | |
| 124 const String& ConsoleMessage::url() const | |
| 125 { | |
| 126 return m_url; | |
| 127 } | |
| 128 | |
| 129 unsigned ConsoleMessage::lineNumber() const | |
| 130 { | |
| 131 return m_lineNumber; | |
| 132 } | |
| 133 | |
| 134 unsigned ConsoleMessage::columnNumber() const | |
| 135 { | |
| 136 return m_columnNumber; | |
| 137 } | |
| 138 | |
| 139 V8StackTrace* ConsoleMessage::stackTrace() const | |
| 140 { | |
| 141 return m_stackTrace.get(); | |
| 142 } | 84 } |
| 143 | 85 |
| 144 ScriptArguments* ConsoleMessage::scriptArguments() const | 86 ScriptArguments* ConsoleMessage::scriptArguments() const |
| 145 { | 87 { |
| 146 return m_scriptArguments; | 88 return m_scriptArguments; |
| 147 } | 89 } |
| 148 | 90 |
| 149 unsigned long ConsoleMessage::requestIdentifier() const | 91 unsigned long ConsoleMessage::requestIdentifier() const |
| 150 { | 92 { |
| 151 return m_requestIdentifier; | 93 return m_requestIdentifier; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 return m_scriptArguments->argumentCount(); | 137 return m_scriptArguments->argumentCount(); |
| 196 return 0; | 138 return 0; |
| 197 } | 139 } |
| 198 | 140 |
| 199 DEFINE_TRACE(ConsoleMessage) | 141 DEFINE_TRACE(ConsoleMessage) |
| 200 { | 142 { |
| 201 visitor->trace(m_scriptArguments); | 143 visitor->trace(m_scriptArguments); |
| 202 } | 144 } |
| 203 | 145 |
| 204 } // namespace blink | 146 } // namespace blink |
| OLD | NEW |