| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> | 3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> |
| 4 * Copyright (C) 2009, 2010 Google Inc. All rights reserved. | 4 * Copyright (C) 2009, 2010 Google Inc. All rights reserved. |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * | 9 * |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 namespace WebCore { | 46 namespace WebCore { |
| 47 | 47 |
| 48 ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source,
MessageType type, MessageLevel level, const String& message) | 48 ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source,
MessageType type, MessageLevel level, const String& message) |
| 49 : m_source(source) | 49 : m_source(source) |
| 50 , m_type(type) | 50 , m_type(type) |
| 51 , m_level(level) | 51 , m_level(level) |
| 52 , m_message(message) | 52 , m_message(message) |
| 53 , m_url() | 53 , m_url() |
| 54 , m_line(0) | 54 , m_line(0) |
| 55 , m_column(0) | 55 , m_column(0) |
| 56 , m_repeatCount(1) | |
| 57 , m_requestId(IdentifiersFactory::requestId(0)) | 56 , m_requestId(IdentifiersFactory::requestId(0)) |
| 58 , m_timestamp(WTF::currentTime()) | 57 , m_timestamp(WTF::currentTime()) |
| 59 { | 58 { |
| 60 autogenerateMetadata(canGenerateCallStack); | 59 autogenerateMetadata(canGenerateCallStack); |
| 61 } | 60 } |
| 62 | 61 |
| 63 ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source,
MessageType type, MessageLevel level, const String& message, const String& url,
unsigned line, unsigned column, ScriptState* state, unsigned long requestIdentif
ier) | 62 ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source,
MessageType type, MessageLevel level, const String& message, const String& url,
unsigned line, unsigned column, ScriptState* state, unsigned long requestIdentif
ier) |
| 64 : m_source(source) | 63 : m_source(source) |
| 65 , m_type(type) | 64 , m_type(type) |
| 66 , m_level(level) | 65 , m_level(level) |
| 67 , m_message(message) | 66 , m_message(message) |
| 68 , m_url(url) | 67 , m_url(url) |
| 69 , m_line(line) | 68 , m_line(line) |
| 70 , m_column(column) | 69 , m_column(column) |
| 71 , m_repeatCount(1) | |
| 72 , m_requestId(IdentifiersFactory::requestId(requestIdentifier)) | 70 , m_requestId(IdentifiersFactory::requestId(requestIdentifier)) |
| 73 , m_timestamp(WTF::currentTime()) | 71 , m_timestamp(WTF::currentTime()) |
| 74 { | 72 { |
| 75 autogenerateMetadata(canGenerateCallStack, state); | 73 autogenerateMetadata(canGenerateCallStack, state); |
| 76 } | 74 } |
| 77 | 75 |
| 78 ConsoleMessage::ConsoleMessage(bool, MessageSource source, MessageType type, Mes
sageLevel level, const String& message, PassRefPtr<ScriptCallStack> callStack, u
nsigned long requestIdentifier) | 76 ConsoleMessage::ConsoleMessage(bool, MessageSource source, MessageType type, Mes
sageLevel level, const String& message, PassRefPtr<ScriptCallStack> callStack, u
nsigned long requestIdentifier) |
| 79 : m_source(source) | 77 : m_source(source) |
| 80 , m_type(type) | 78 , m_type(type) |
| 81 , m_level(level) | 79 , m_level(level) |
| 82 , m_message(message) | 80 , m_message(message) |
| 83 , m_arguments(nullptr) | 81 , m_arguments(nullptr) |
| 84 , m_line(0) | 82 , m_line(0) |
| 85 , m_column(0) | 83 , m_column(0) |
| 86 , m_repeatCount(1) | |
| 87 , m_requestId(IdentifiersFactory::requestId(requestIdentifier)) | 84 , m_requestId(IdentifiersFactory::requestId(requestIdentifier)) |
| 88 , m_timestamp(WTF::currentTime()) | 85 , m_timestamp(WTF::currentTime()) |
| 89 { | 86 { |
| 90 if (callStack && callStack->size()) { | 87 if (callStack && callStack->size()) { |
| 91 const ScriptCallFrame& frame = callStack->at(0); | 88 const ScriptCallFrame& frame = callStack->at(0); |
| 92 m_url = frame.sourceURL(); | 89 m_url = frame.sourceURL(); |
| 93 m_line = frame.lineNumber(); | 90 m_line = frame.lineNumber(); |
| 94 m_column = frame.columnNumber(); | 91 m_column = frame.columnNumber(); |
| 95 } | 92 } |
| 96 m_callStack = callStack; | 93 m_callStack = callStack; |
| 97 } | 94 } |
| 98 | 95 |
| 99 ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source,
MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptAr
guments> arguments, ScriptState* state, unsigned long requestIdentifier) | 96 ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source,
MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptAr
guments> arguments, ScriptState* state, unsigned long requestIdentifier) |
| 100 : m_source(source) | 97 : m_source(source) |
| 101 , m_type(type) | 98 , m_type(type) |
| 102 , m_level(level) | 99 , m_level(level) |
| 103 , m_message(message) | 100 , m_message(message) |
| 104 , m_arguments(arguments) | 101 , m_arguments(arguments) |
| 105 , m_url() | 102 , m_url() |
| 106 , m_line(0) | 103 , m_line(0) |
| 107 , m_column(0) | 104 , m_column(0) |
| 108 , m_repeatCount(1) | |
| 109 , m_requestId(IdentifiersFactory::requestId(requestIdentifier)) | 105 , m_requestId(IdentifiersFactory::requestId(requestIdentifier)) |
| 110 , m_timestamp(WTF::currentTime()) | 106 , m_timestamp(WTF::currentTime()) |
| 111 { | 107 { |
| 112 autogenerateMetadata(canGenerateCallStack, state); | 108 autogenerateMetadata(canGenerateCallStack, state); |
| 113 } | 109 } |
| 114 | 110 |
| 115 ConsoleMessage::~ConsoleMessage() | 111 ConsoleMessage::~ConsoleMessage() |
| 116 { | 112 { |
| 117 } | 113 } |
| 118 | 114 |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 RefPtr<TypeBuilder::Console::ConsoleMessage> jsonObj = TypeBuilder::Console:
:ConsoleMessage::create() | 187 RefPtr<TypeBuilder::Console::ConsoleMessage> jsonObj = TypeBuilder::Console:
:ConsoleMessage::create() |
| 192 .setSource(messageSourceValue(m_source)) | 188 .setSource(messageSourceValue(m_source)) |
| 193 .setLevel(messageLevelValue(m_level)) | 189 .setLevel(messageLevelValue(m_level)) |
| 194 .setText(m_message) | 190 .setText(m_message) |
| 195 .setTimestamp(m_timestamp); | 191 .setTimestamp(m_timestamp); |
| 196 // FIXME: only send out type for ConsoleAPI source messages. | 192 // FIXME: only send out type for ConsoleAPI source messages. |
| 197 jsonObj->setType(messageTypeValue(m_type)); | 193 jsonObj->setType(messageTypeValue(m_type)); |
| 198 jsonObj->setLine(static_cast<int>(m_line)); | 194 jsonObj->setLine(static_cast<int>(m_line)); |
| 199 jsonObj->setColumn(static_cast<int>(m_column)); | 195 jsonObj->setColumn(static_cast<int>(m_column)); |
| 200 jsonObj->setUrl(m_url); | 196 jsonObj->setUrl(m_url); |
| 201 jsonObj->setRepeatCount(static_cast<int>(m_repeatCount)); | |
| 202 if (m_source == NetworkMessageSource && !m_requestId.isEmpty()) | 197 if (m_source == NetworkMessageSource && !m_requestId.isEmpty()) |
| 203 jsonObj->setNetworkRequestId(m_requestId); | 198 jsonObj->setNetworkRequestId(m_requestId); |
| 204 if (m_arguments && m_arguments->argumentCount()) { | 199 if (m_arguments && m_arguments->argumentCount()) { |
| 205 InjectedScript injectedScript = injectedScriptManager->injectedScriptFor
(m_arguments->globalState()); | 200 InjectedScript injectedScript = injectedScriptManager->injectedScriptFor
(m_arguments->globalState()); |
| 206 if (!injectedScript.hasNoValue()) { | 201 if (!injectedScript.hasNoValue()) { |
| 207 RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject> > json
Args = TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject>::create(); | 202 RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject> > json
Args = TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject>::create(); |
| 208 if (m_type == TableMessageType && generatePreview && m_arguments->ar
gumentCount()) { | 203 if (m_type == TableMessageType && generatePreview && m_arguments->ar
gumentCount()) { |
| 209 ScriptValue table = m_arguments->argumentAt(0); | 204 ScriptValue table = m_arguments->argumentAt(0); |
| 210 ScriptValue columns = m_arguments->argumentCount() > 1 ? m_argum
ents->argumentAt(1) : ScriptValue(); | 205 ScriptValue columns = m_arguments->argumentCount() > 1 ? m_argum
ents->argumentAt(1) : ScriptValue(); |
| 211 RefPtr<TypeBuilder::Runtime::RemoteObject> inspectorValue = inje
ctedScript.wrapTable(table, columns); | 206 RefPtr<TypeBuilder::Runtime::RemoteObject> inspectorValue = inje
ctedScript.wrapTable(table, columns); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 225 } | 220 } |
| 226 } | 221 } |
| 227 jsonObj->setParameters(jsonArgs); | 222 jsonObj->setParameters(jsonArgs); |
| 228 } | 223 } |
| 229 } | 224 } |
| 230 if (m_callStack) | 225 if (m_callStack) |
| 231 jsonObj->setStackTrace(m_callStack->buildInspectorArray()); | 226 jsonObj->setStackTrace(m_callStack->buildInspectorArray()); |
| 232 frontend->messageAdded(jsonObj); | 227 frontend->messageAdded(jsonObj); |
| 233 } | 228 } |
| 234 | 229 |
| 235 void ConsoleMessage::incrementCount() | |
| 236 { | |
| 237 m_timestamp = WTF::currentTime(); | |
| 238 ++m_repeatCount; | |
| 239 } | |
| 240 | |
| 241 void ConsoleMessage::updateRepeatCountInConsole(InspectorFrontend::Console* fron
tend) | |
| 242 { | |
| 243 frontend->messageRepeatCountUpdated(m_repeatCount, m_timestamp); | |
| 244 } | |
| 245 | |
| 246 bool ConsoleMessage::isEqual(ConsoleMessage* msg) const | |
| 247 { | |
| 248 if (m_arguments) { | |
| 249 if (!m_arguments->isEqual(msg->m_arguments.get())) | |
| 250 return false; | |
| 251 // Never treat objects as equal - their properties might change over tim
e. | |
| 252 for (size_t i = 0; i < m_arguments->argumentCount(); ++i) { | |
| 253 if (m_arguments->argumentAt(i).isObject()) | |
| 254 return false; | |
| 255 } | |
| 256 } else if (msg->m_arguments) | |
| 257 return false; | |
| 258 | |
| 259 if (m_callStack) { | |
| 260 if (!m_callStack->isEqual(msg->m_callStack.get())) | |
| 261 return false; | |
| 262 } else if (msg->m_callStack) | |
| 263 return false; | |
| 264 | |
| 265 return msg->m_source == m_source | |
| 266 && msg->m_type == m_type | |
| 267 && msg->m_level == m_level | |
| 268 && msg->m_message == m_message | |
| 269 && msg->m_line == m_line | |
| 270 && msg->m_column == m_column | |
| 271 && msg->m_url == m_url | |
| 272 && msg->m_requestId == m_requestId; | |
| 273 } | |
| 274 | |
| 275 void ConsoleMessage::windowCleared(DOMWindow* window) | 230 void ConsoleMessage::windowCleared(DOMWindow* window) |
| 276 { | 231 { |
| 277 if (!m_arguments) | 232 if (!m_arguments) |
| 278 return; | 233 return; |
| 279 if (m_arguments->globalState()->domWindow() != window) | 234 if (m_arguments->globalState()->domWindow() != window) |
| 280 return; | 235 return; |
| 281 if (!m_message) | 236 if (!m_message) |
| 282 m_message = "<message collected>"; | 237 m_message = "<message collected>"; |
| 283 m_arguments.clear(); | 238 m_arguments.clear(); |
| 284 } | 239 } |
| 285 | 240 |
| 286 unsigned ConsoleMessage::argumentCount() | 241 unsigned ConsoleMessage::argumentCount() |
| 287 { | 242 { |
| 288 if (m_arguments) | 243 if (m_arguments) |
| 289 return m_arguments->argumentCount(); | 244 return m_arguments->argumentCount(); |
| 290 return 0; | 245 return 0; |
| 291 } | 246 } |
| 292 | 247 |
| 293 } // namespace WebCore | 248 } // namespace WebCore |
| 294 | 249 |
| OLD | NEW |