| Index: Source/core/inspector/ConsoleMessage.cpp
|
| diff --git a/Source/core/inspector/ConsoleMessage.cpp b/Source/core/inspector/ConsoleMessage.cpp
|
| index a77b6c6d1b27eb11cd7d05527d8a38f28b3240db..77b0b582eb2e8eeda108d00852c8b34173416991 100644
|
| --- a/Source/core/inspector/ConsoleMessage.cpp
|
| +++ b/Source/core/inspector/ConsoleMessage.cpp
|
| @@ -5,16 +5,20 @@
|
| #include "config.h"
|
| #include "core/inspector/ConsoleMessage.h"
|
|
|
| +#include "bindings/core/v8/ScriptCallStackFactory.h"
|
| #include "bindings/core/v8/ScriptState.h"
|
| +#include "core/inspector/ScriptArguments.h"
|
| +#include "wtf/CurrentTime.h"
|
| +#include "wtf/PassOwnPtr.h"
|
|
|
| namespace blink {
|
|
|
| ConsoleMessage::ConsoleMessage()
|
| : m_lineNumber(0)
|
| , m_columnNumber(0)
|
| - , m_scriptState(nullptr)
|
| , m_requestIdentifier(0)
|
| , m_workerProxy(nullptr)
|
| + , m_timestamp(WTF::currentTime())
|
| {
|
| }
|
|
|
| @@ -25,14 +29,15 @@ ConsoleMessage::ConsoleMessage(MessageSource source,
|
| unsigned lineNumber,
|
| unsigned columnNumber)
|
| : m_source(source)
|
| + , m_type(LogMessageType)
|
| , m_level(level)
|
| , m_message(message)
|
| , m_url(url)
|
| , m_lineNumber(lineNumber)
|
| , m_columnNumber(columnNumber)
|
| - , m_scriptState(nullptr)
|
| , m_requestIdentifier(0)
|
| , m_workerProxy(nullptr)
|
| + , m_timestamp(WTF::currentTime())
|
| {
|
| }
|
|
|
| @@ -52,12 +57,14 @@ void ConsoleMessage::setCallStack(PassRefPtrWillBeRawPtr<ScriptCallStack> callSt
|
|
|
| ScriptState* ConsoleMessage::scriptState() const
|
| {
|
| - return m_scriptState;
|
| + if (m_scriptState)
|
| + return m_scriptState->get();
|
| + return nullptr;
|
| }
|
|
|
| void ConsoleMessage::setScriptState(ScriptState* scriptState)
|
| {
|
| - m_scriptState = scriptState;
|
| + m_scriptState = adoptPtr(new ScriptStateProtectingContext(scriptState));
|
| }
|
|
|
| unsigned long ConsoleMessage::requestIdentifier() const
|
| @@ -90,6 +97,36 @@ void ConsoleMessage::setLineNumber(unsigned lineNumber)
|
| m_lineNumber = lineNumber;
|
| }
|
|
|
| +PassRefPtr<ScriptArguments> ConsoleMessage::scriptArguments() const
|
| +{
|
| + return m_arguments;
|
| +}
|
| +
|
| +void ConsoleMessage::setScriptArguments(PassRefPtr<ScriptArguments> arguments)
|
| +{
|
| + m_arguments = arguments;
|
| +}
|
| +
|
| +MessageType ConsoleMessage::type() const
|
| +{
|
| + return m_type;
|
| +}
|
| +
|
| +void ConsoleMessage::setType(MessageType type)
|
| +{
|
| + m_type = type;
|
| +}
|
| +
|
| +double ConsoleMessage::timestamp() const
|
| +{
|
| + return m_timestamp;
|
| +}
|
| +
|
| +void ConsoleMessage::setTimestamp(double timestamp)
|
| +{
|
| + m_timestamp = timestamp;
|
| +}
|
| +
|
| MessageSource ConsoleMessage::source() const
|
| {
|
| return m_source;
|
| @@ -110,6 +147,48 @@ unsigned ConsoleMessage::columnNumber() const
|
| return m_columnNumber;
|
| }
|
|
|
| +void ConsoleMessage::windowCleared(LocalDOMWindow* window)
|
| +{
|
| + if (m_scriptState && m_scriptState->get() && m_scriptState->get()->domWindow() == window) {
|
| + m_scriptState->clear();
|
| + m_scriptState.clear();
|
| + }
|
| +
|
| + if (!m_arguments)
|
| + return;
|
| + if (m_arguments->scriptState()->domWindow() != window)
|
| + return;
|
| + if (!m_message)
|
| + m_message = "<message collected>";
|
| + m_arguments.clear();
|
| +}
|
| +
|
| +unsigned ConsoleMessage::argumentCount()
|
| +{
|
| + if (m_arguments)
|
| + return m_arguments->argumentCount();
|
| + return 0;
|
| +}
|
| +
|
| +void ConsoleMessage::autogenerateMetadata()
|
| +{
|
| + if (m_type == EndGroupMessageType)
|
| + return;
|
| +
|
| + if (!m_callStack)
|
| + 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);
|
|
|