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

Unified Diff: Source/core/inspector/ConsoleMessage.cpp

Issue 376213002: DevTools: Make FrameConsole methods accept ConsoleMessage objects. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@scriptFailedToParse
Patch Set: Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/inspector/ConsoleMessage.cpp
diff --git a/Source/core/inspector/ConsoleMessage.cpp b/Source/core/inspector/ConsoleMessage.cpp
index a92ac9fd3be9f54c3cbe5a1e7f40c1e183254a65..4269e75f14753c18d48006225f2332d80a84183d 100644
--- a/Source/core/inspector/ConsoleMessage.cpp
+++ b/Source/core/inspector/ConsoleMessage.cpp
@@ -1,32 +1,6 @@
-/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
- * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
- * Copyright (C) 2009, 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
#include "config.h"
@@ -40,229 +14,129 @@
#include "core/inspector/InjectedScript.h"
#include "core/inspector/InjectedScriptManager.h"
#include "core/inspector/ScriptArguments.h"
-#include "core/inspector/ScriptAsyncCallStack.h"
#include "core/inspector/ScriptCallFrame.h"
#include "core/inspector/ScriptCallStack.h"
#include "wtf/CurrentTime.h"
namespace WebCore {
-ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source, MessageType type, MessageLevel level, const String& message)
- : m_source(source)
- , m_type(type)
- , m_level(level)
- , m_message(message)
- , m_scriptState(0)
- , m_url()
- , m_line(0)
- , m_column(0)
- , m_requestId(IdentifiersFactory::requestId(0))
- , m_timestamp(WTF::currentTime())
+ConsoleMessage::ConsoleMessage()
+ : m_lineNumber(0)
+ , m_columnNumber(0)
+ , m_requestIdentifier(0)
+ , m_corsStatus(NotSharableCrossOrigin)
{
- autogenerateMetadata(canGenerateCallStack);
}
-ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source, MessageType type, MessageLevel level, const String& message, const String& url, unsigned line, unsigned column, ScriptState* scriptState, unsigned long requestIdentifier)
+ConsoleMessage::ConsoleMessage(MessageSource source,
+ MessageLevel level,
+ const String& message,
+ const String& url,
+ unsigned lineNumber,
+ unsigned columnNumber,
+ PassRefPtr<ScriptCallStack> callStack,
+ unsigned long requestIdentifier,
+ AccessControlStatus corsStatus)
: m_source(source)
- , m_type(type)
, m_level(level)
, m_message(message)
- , m_scriptState(scriptState)
, m_url(url)
- , m_line(line)
- , m_column(column)
- , m_requestId(IdentifiersFactory::requestId(requestIdentifier))
- , m_timestamp(WTF::currentTime())
+ , m_lineNumber(lineNumber)
+ , m_columnNumber(columnNumber)
+ , m_callStack(callStack)
+ , m_requestIdentifier(requestIdentifier)
+ , m_corsStatus(corsStatus)
{
- autogenerateMetadata(canGenerateCallStack, scriptState);
}
-ConsoleMessage::ConsoleMessage(bool, MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtrWillBeRawPtr<ScriptCallStack> callStack, unsigned long requestIdentifier)
- : m_source(source)
- , m_type(type)
- , m_level(level)
- , m_message(message)
- , m_scriptState(0)
- , m_arguments(nullptr)
- , m_line(0)
- , m_column(0)
- , m_requestId(IdentifiersFactory::requestId(requestIdentifier))
- , m_timestamp(WTF::currentTime())
+MessageSource ConsoleMessage::source() const
{
- if (callStack && callStack->size()) {
- const ScriptCallFrame& frame = callStack->at(0);
- m_url = frame.sourceURL();
- m_line = frame.lineNumber();
- m_column = frame.columnNumber();
- }
- m_callStack = callStack;
+ return m_source;
}
-ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtrWillBeRawPtr<ScriptArguments> arguments, ScriptState* scriptState, unsigned long requestIdentifier)
- : m_source(source)
- , m_type(type)
- , m_level(level)
- , m_message(message)
- , m_scriptState(scriptState)
- , m_arguments(arguments)
- , m_url()
- , m_line(0)
- , m_column(0)
- , m_requestId(IdentifiersFactory::requestId(requestIdentifier))
- , m_timestamp(WTF::currentTime())
+void ConsoleMessage::setSource(MessageSource source)
+{
+ m_source = source;
+}
+
+MessageLevel ConsoleMessage::level() const
+{
+ return m_level;
+}
+
+void ConsoleMessage::setLevel(MessageLevel level)
{
- autogenerateMetadata(canGenerateCallStack, scriptState);
+ m_level = level;
}
-ConsoleMessage::~ConsoleMessage()
+const String& ConsoleMessage::message() const
{
+ return m_message;
}
-void ConsoleMessage::autogenerateMetadata(bool canGenerateCallStack, ScriptState* scriptState)
+void ConsoleMessage::setMessage(const String& message)
{
- if (m_type == EndGroupMessageType)
- return;
+ m_message = message;
+}
- if (scriptState)
- m_callStack = createScriptCallStackForConsole(scriptState);
- else if (canGenerateCallStack)
- m_callStack = createScriptCallStack(ScriptCallStack::maxCallStackSizeToCapture, true);
- else
- return;
+const String& ConsoleMessage::url() const
+{
+ return m_url;
+}
+
+void ConsoleMessage::setURL(const String& url)
+{
+ m_url = url;
+}
- if (m_callStack && m_callStack->size()) {
- const ScriptCallFrame& frame = m_callStack->at(0);
- m_url = frame.sourceURL();
- m_line = frame.lineNumber();
- m_column = frame.columnNumber();
- return;
- }
+unsigned ConsoleMessage::lineNumber() const
+{
+ return m_lineNumber;
+}
- m_callStack.clear();
+void ConsoleMessage::setLineNumber(unsigned lineNumber)
+{
+ m_lineNumber = lineNumber;
}
-static TypeBuilder::Console::ConsoleMessage::Source::Enum messageSourceValue(MessageSource source)
+unsigned ConsoleMessage::columnNumber() const
{
- switch (source) {
- case XMLMessageSource: return TypeBuilder::Console::ConsoleMessage::Source::Xml;
- case JSMessageSource: return TypeBuilder::Console::ConsoleMessage::Source::Javascript;
- case NetworkMessageSource: return TypeBuilder::Console::ConsoleMessage::Source::Network;
- case ConsoleAPIMessageSource: return TypeBuilder::Console::ConsoleMessage::Source::Console_api;
- case StorageMessageSource: return TypeBuilder::Console::ConsoleMessage::Source::Storage;
- case AppCacheMessageSource: return TypeBuilder::Console::ConsoleMessage::Source::Appcache;
- case RenderingMessageSource: return TypeBuilder::Console::ConsoleMessage::Source::Rendering;
- case CSSMessageSource: return TypeBuilder::Console::ConsoleMessage::Source::Css;
- case SecurityMessageSource: return TypeBuilder::Console::ConsoleMessage::Source::Security;
- case OtherMessageSource: return TypeBuilder::Console::ConsoleMessage::Source::Other;
- case DeprecationMessageSource: return TypeBuilder::Console::ConsoleMessage::Source::Deprecation;
- }
- return TypeBuilder::Console::ConsoleMessage::Source::Other;
+ return m_columnNumber;
}
-static TypeBuilder::Console::ConsoleMessage::Type::Enum messageTypeValue(MessageType type)
+void ConsoleMessage::setColumnNumber(unsigned columnNumber)
{
- switch (type) {
- case LogMessageType: return TypeBuilder::Console::ConsoleMessage::Type::Log;
- case ClearMessageType: return TypeBuilder::Console::ConsoleMessage::Type::Clear;
- case DirMessageType: return TypeBuilder::Console::ConsoleMessage::Type::Dir;
- case DirXMLMessageType: return TypeBuilder::Console::ConsoleMessage::Type::Dirxml;
- case TableMessageType: return TypeBuilder::Console::ConsoleMessage::Type::Table;
- case TraceMessageType: return TypeBuilder::Console::ConsoleMessage::Type::Trace;
- case StartGroupMessageType: return TypeBuilder::Console::ConsoleMessage::Type::StartGroup;
- case StartGroupCollapsedMessageType: return TypeBuilder::Console::ConsoleMessage::Type::StartGroupCollapsed;
- case EndGroupMessageType: return TypeBuilder::Console::ConsoleMessage::Type::EndGroup;
- case AssertMessageType: return TypeBuilder::Console::ConsoleMessage::Type::Assert;
- }
- return TypeBuilder::Console::ConsoleMessage::Type::Log;
+ m_columnNumber = columnNumber;
}
-static TypeBuilder::Console::ConsoleMessage::Level::Enum messageLevelValue(MessageLevel level)
+PassRefPtr<ScriptCallStack> ConsoleMessage::callStack()
{
- switch (level) {
- case DebugMessageLevel: return TypeBuilder::Console::ConsoleMessage::Level::Debug;
- case LogMessageLevel: return TypeBuilder::Console::ConsoleMessage::Level::Log;
- case WarningMessageLevel: return TypeBuilder::Console::ConsoleMessage::Level::Warning;
- case ErrorMessageLevel: return TypeBuilder::Console::ConsoleMessage::Level::Error;
- case InfoMessageLevel: return TypeBuilder::Console::ConsoleMessage::Level::Info;
- }
- return TypeBuilder::Console::ConsoleMessage::Level::Log;
+ return m_callStack;
}
-void ConsoleMessage::addToFrontend(InspectorFrontend::Console* frontend, InjectedScriptManager* injectedScriptManager, bool generatePreview)
+void ConsoleMessage::setCallStack(PassRefPtr<ScriptCallStack> callStack)
{
- RefPtr<TypeBuilder::Console::ConsoleMessage> jsonObj = TypeBuilder::Console::ConsoleMessage::create()
- .setSource(messageSourceValue(m_source))
- .setLevel(messageLevelValue(m_level))
- .setText(m_message)
- .setTimestamp(m_timestamp);
- // FIXME: only send out type for ConsoleAPI source messages.
- jsonObj->setType(messageTypeValue(m_type));
- jsonObj->setLine(static_cast<int>(m_line));
- jsonObj->setColumn(static_cast<int>(m_column));
- jsonObj->setUrl(m_url);
- ScriptState* scriptState = m_scriptState.get();
- if (scriptState)
- jsonObj->setExecutionContextId(injectedScriptManager->injectedScriptIdFor(scriptState));
- if (m_source == NetworkMessageSource && !m_requestId.isEmpty())
- jsonObj->setNetworkRequestId(m_requestId);
- if (m_arguments && m_arguments->argumentCount()) {
- InjectedScript injectedScript = injectedScriptManager->injectedScriptFor(m_arguments->scriptState());
- if (!injectedScript.isEmpty()) {
- RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject> > jsonArgs = TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject>::create();
- if (m_type == TableMessageType && generatePreview && m_arguments->argumentCount()) {
- ScriptValue table = m_arguments->argumentAt(0);
- ScriptValue columns = m_arguments->argumentCount() > 1 ? m_arguments->argumentAt(1) : ScriptValue();
- RefPtr<TypeBuilder::Runtime::RemoteObject> inspectorValue = injectedScript.wrapTable(table, columns);
- if (!inspectorValue) {
- ASSERT_NOT_REACHED();
- return;
- }
- jsonArgs->addItem(inspectorValue);
- } else {
- for (unsigned i = 0; i < m_arguments->argumentCount(); ++i) {
- RefPtr<TypeBuilder::Runtime::RemoteObject> inspectorValue = injectedScript.wrapObject(m_arguments->argumentAt(i), "console", generatePreview);
- if (!inspectorValue) {
- ASSERT_NOT_REACHED();
- return;
- }
- jsonArgs->addItem(inspectorValue);
- }
- }
- jsonObj->setParameters(jsonArgs);
- }
- }
- if (m_callStack)
- jsonObj->setStackTrace(m_callStack->buildInspectorArray());
- if (m_asyncCallStack)
- jsonObj->setAsyncStackTrace(m_asyncCallStack->buildInspectorObject());
- frontend->messageAdded(jsonObj);
- frontend->flush();
+ m_callStack = callStack;
}
-void ConsoleMessage::setAsyncStackTrace(PassRefPtrWillBeRawPtr<ScriptAsyncCallStack> asyncCallStack)
+unsigned long ConsoleMessage::requestIdentifier() const
{
- m_asyncCallStack = asyncCallStack;
+ return m_requestIdentifier;
}
-void ConsoleMessage::windowCleared(LocalDOMWindow* window)
+void ConsoleMessage::setRequestIdentifier(unsigned long requestIdentifier)
{
- if (m_scriptState.get() && m_scriptState.get()->domWindow() == window)
- m_scriptState.clear();
+ m_requestIdentifier = requestIdentifier;
+}
- if (!m_arguments)
- return;
- if (m_arguments->scriptState()->domWindow() != window)
- return;
- if (!m_message)
- m_message = "<message collected>";
- m_arguments.clear();
+AccessControlStatus ConsoleMessage::corsStatus() const
+{
+ return m_corsStatus;
}
-unsigned ConsoleMessage::argumentCount()
+void ConsoleMessage::setCorsStatus(AccessControlStatus corsStatus)
{
- if (m_arguments)
- return m_arguments->argumentCount();
- return 0;
+ m_corsStatus = corsStatus;
}
} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698