Chromium Code Reviews| Index: Source/core/inspector/ConsoleMessage.cpp |
| diff --git a/Source/core/inspector/ConsoleMessage.cpp b/Source/core/inspector/ConsoleMessage.cpp |
| index 01aa95797632205789e30204e8368732bc7331a7..ae577d5d7d954df4f6e03b694d3b98f5cfd2c0d3 100644 |
| --- a/Source/core/inspector/ConsoleMessage.cpp |
| +++ b/Source/core/inspector/ConsoleMessage.cpp |
| @@ -5,8 +5,11 @@ |
| #include "config.h" |
| #include "core/inspector/ConsoleMessage.h" |
| +#include "bindings/core/v8/ScriptCallStackFactory.h" |
| #include "bindings/core/v8/ScriptValue.h" |
| #include "core/inspector/ScriptArguments.h" |
| +#include "wtf/CurrentTime.h" |
| +#include "wtf/PassOwnPtr.h" |
| namespace blink { |
| @@ -24,6 +27,7 @@ ConsoleMessage::ConsoleMessage(MessageSource source, |
| , m_lineNumber(lineNumber) |
| , m_columnNumber(columnNumber) |
| , m_requestIdentifier(0) |
| + , m_timestamp(WTF::currentTime()) |
| , m_workerProxy(nullptr) |
| { |
| } |
| @@ -107,6 +111,16 @@ void ConsoleMessage::setRequestIdentifier(unsigned long requestIdentifier) |
| m_requestIdentifier = requestIdentifier; |
| } |
| +double ConsoleMessage::timestamp() const |
| +{ |
| + return m_timestamp; |
| +} |
| + |
| +void ConsoleMessage::setTimestamp(double timestamp) |
| +{ |
| + m_timestamp = timestamp; |
| +} |
| + |
| MessageSource ConsoleMessage::source() const |
| { |
| return m_source; |
| @@ -127,6 +141,48 @@ unsigned ConsoleMessage::columnNumber() const |
| return m_columnNumber; |
| } |
| +void ConsoleMessage::windowCleared(LocalDOMWindow* window) |
| +{ |
| + if (m_scriptState && m_scriptState->get() && m_scriptState->get()->domWindow() == window) { |
|
aandrey
2014/08/26 08:56:42
if (scriptState() && scriptState()->domWindow() ==
kozyatinskiy1
2014/08/26 09:39:29
Done.
|
| + m_scriptState->clear(); |
| + m_scriptState.clear(); |
| + } |
| + |
| + if (!m_scriptArguments) |
| + return; |
| + if (m_scriptArguments->scriptState()->domWindow() != window) |
| + return; |
| + if (!m_message) |
| + m_message = "<message collected>"; |
| + m_scriptArguments.clear(); |
| +} |
| + |
| +unsigned ConsoleMessage::argumentCount() |
| +{ |
| + if (m_scriptArguments) |
| + return m_scriptArguments->argumentCount(); |
| + return 0; |
| +} |
| + |
| +void ConsoleMessage::autogenerateMetadata() |
| +{ |
| + if (m_type == EndGroupMessageType) |
| + return; |
| + |
| + if (!m_callStack || m_source == ConsoleAPIMessageSource) |
| + m_callStack = createScriptCallStackForConsole(ScriptCallStack::maxCallStackSizeToCapture, true); |
| + |
| + if (m_callStack && m_callStack->size()) { |
| + const ScriptCallFrame& frame = m_callStack->at(0); |
| + m_url = frame.sourceURL(); |
| + m_lineNumber = frame.lineNumber(); |
| + m_columnNumber = frame.columnNumber(); |
| + return; |
| + } |
| + |
| + m_callStack.clear(); |
| +} |
| + |
| void ConsoleMessage::trace(Visitor* visitor) |
| { |
| visitor->trace(m_callStack); |