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 |