| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 | 24 |
| 25 | 25 |
| 26 #include "config.h" | 26 #include "config.h" |
| 27 #include "core/inspector/InspectorConsoleAgent.h" | 27 #include "core/inspector/InspectorConsoleAgent.h" |
| 28 | 28 |
| 29 #include "bindings/core/v8/ScriptCallStackFactory.h" | 29 #include "bindings/core/v8/ScriptCallStackFactory.h" |
| 30 #include "bindings/core/v8/ScriptController.h" | 30 #include "bindings/core/v8/ScriptController.h" |
| 31 #include "bindings/core/v8/ScriptProfiler.h" | 31 #include "bindings/core/v8/ScriptProfiler.h" |
| 32 #include "core/frame/LocalFrame.h" | 32 #include "core/frame/LocalFrame.h" |
| 33 #include "core/frame/UseCounter.h" | 33 #include "core/frame/UseCounter.h" |
| 34 #include "core/inspector/ConsoleMessage.h" |
| 34 #include "core/inspector/InjectedScriptHost.h" | 35 #include "core/inspector/InjectedScriptHost.h" |
| 35 #include "core/inspector/InjectedScriptManager.h" | 36 #include "core/inspector/InjectedScriptManager.h" |
| 36 #include "core/inspector/InspectorConsoleMessage.h" | 37 #include "core/inspector/InspectorConsoleMessage.h" |
| 37 #include "core/inspector/InspectorState.h" | 38 #include "core/inspector/InspectorState.h" |
| 38 #include "core/inspector/InspectorTimelineAgent.h" | 39 #include "core/inspector/InspectorTimelineAgent.h" |
| 39 #include "core/inspector/InspectorTracingAgent.h" | 40 #include "core/inspector/InspectorTracingAgent.h" |
| 40 #include "core/inspector/InstrumentingAgents.h" | 41 #include "core/inspector/InstrumentingAgents.h" |
| 41 #include "core/inspector/ScriptArguments.h" | 42 #include "core/inspector/ScriptArguments.h" |
| 42 #include "core/inspector/ScriptCallFrame.h" | 43 #include "core/inspector/ScriptCallFrame.h" |
| 43 #include "core/inspector/ScriptCallStack.h" | 44 #include "core/inspector/ScriptCallStack.h" |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 m_frontend = frontend->console(); | 159 m_frontend = frontend->console(); |
| 159 } | 160 } |
| 160 | 161 |
| 161 void InspectorConsoleAgent::clearFrontend() | 162 void InspectorConsoleAgent::clearFrontend() |
| 162 { | 163 { |
| 163 m_frontend = 0; | 164 m_frontend = 0; |
| 164 String errorString; | 165 String errorString; |
| 165 disable(&errorString); | 166 disable(&errorString); |
| 166 } | 167 } |
| 167 | 168 |
| 168 void InspectorConsoleAgent::addMessageToConsole(MessageSource source, MessageTyp
e type, MessageLevel level, const String& message, PassRefPtrWillBeRawPtr<Script
CallStack> callStack, unsigned long requestIdentifier) | 169 void InspectorConsoleAgent::addMessageToConsole(ConsoleMessage* consoleMessage) |
| 169 { | 170 { |
| 170 if (type == ClearMessageType) { | 171 if (consoleMessage->callStack()) { |
| 171 ErrorString error; | 172 addConsoleMessage(adoptPtr(new InspectorConsoleMessage(!isWorkerAgent(),
consoleMessage->source(), LogMessageType, consoleMessage->level(), consoleMessa
ge->message(), consoleMessage->callStack(), consoleMessage->requestIdentifier())
)); |
| 172 clearMessages(&error); | 173 } else { |
| 174 bool canGenerateCallStack = !isWorkerAgent() && m_frontend; |
| 175 addConsoleMessage(adoptPtr(new InspectorConsoleMessage(canGenerateCallSt
ack, consoleMessage->source(), LogMessageType, consoleMessage->level(), consoleM
essage->message(), consoleMessage->url(), consoleMessage->lineNumber(), consoleM
essage->columnNumber(), consoleMessage->scriptState(), consoleMessage->requestId
entifier()))); |
| 173 } | 176 } |
| 174 | |
| 175 addConsoleMessage(adoptPtr(new InspectorConsoleMessage(!isWorkerAgent(), sou
rce, type, level, message, callStack, requestIdentifier))); | |
| 176 } | 177 } |
| 177 | 178 |
| 178 void InspectorConsoleAgent::addConsoleAPIMessageToConsole(MessageType type, Mess
ageLevel level, const String& message, ScriptState* scriptState, PassRefPtrWillB
eRawPtr<ScriptArguments> arguments, unsigned long requestIdentifier) | 179 void InspectorConsoleAgent::addConsoleAPIMessageToConsole(MessageType type, Mess
ageLevel level, const String& message, ScriptState* scriptState, PassRefPtrWillB
eRawPtr<ScriptArguments> arguments, unsigned long requestIdentifier) |
| 179 { | 180 { |
| 180 if (type == ClearMessageType) { | 181 if (type == ClearMessageType) { |
| 181 ErrorString error; | 182 ErrorString error; |
| 182 clearMessages(&error); | 183 clearMessages(&error); |
| 183 } | 184 } |
| 184 | 185 |
| 185 addConsoleMessage(adoptPtr(new InspectorConsoleMessage(!isWorkerAgent(), Con
soleAPIMessageSource, type, level, message, arguments, scriptState, requestIdent
ifier))); | 186 addConsoleMessage(adoptPtr(new InspectorConsoleMessage(!isWorkerAgent(), Con
soleAPIMessageSource, type, level, message, arguments, scriptState, requestIdent
ifier))); |
| 186 } | 187 } |
| 187 | 188 |
| 188 void InspectorConsoleAgent::addMessageToConsole(MessageSource source, MessageTyp
e type, MessageLevel level, const String& message, const String& scriptId, unsig
ned lineNumber, unsigned columnNumber, ScriptState* scriptState, unsigned long r
equestIdentifier) | |
| 189 { | |
| 190 if (type == ClearMessageType) { | |
| 191 ErrorString error; | |
| 192 clearMessages(&error); | |
| 193 } | |
| 194 | |
| 195 bool canGenerateCallStack = !isWorkerAgent() && m_frontend; | |
| 196 addConsoleMessage(adoptPtr(new InspectorConsoleMessage(canGenerateCallStack,
source, type, level, message, scriptId, lineNumber, columnNumber, scriptState,
requestIdentifier))); | |
| 197 } | |
| 198 | |
| 199 Vector<unsigned> InspectorConsoleAgent::consoleMessageArgumentCounts() | 189 Vector<unsigned> InspectorConsoleAgent::consoleMessageArgumentCounts() |
| 200 { | 190 { |
| 201 Vector<unsigned> result(m_consoleMessages.size()); | 191 Vector<unsigned> result(m_consoleMessages.size()); |
| 202 for (size_t i = 0; i < m_consoleMessages.size(); i++) | 192 for (size_t i = 0; i < m_consoleMessages.size(); i++) |
| 203 result[i] = m_consoleMessages[i]->argumentCount(); | 193 result[i] = m_consoleMessages[i]->argumentCount(); |
| 204 return result; | 194 return result; |
| 205 } | 195 } |
| 206 | 196 |
| 207 void InspectorConsoleAgent::consoleTime(ExecutionContext*, const String& title) | 197 void InspectorConsoleAgent::consoleTime(ExecutionContext*, const String& title) |
| 208 { | 198 { |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 { | 273 { |
| 284 if (loader->frame() != frame->page()->mainFrame()) | 274 if (loader->frame() != frame->page()->mainFrame()) |
| 285 return; | 275 return; |
| 286 reset(); | 276 reset(); |
| 287 } | 277 } |
| 288 | 278 |
| 289 void InspectorConsoleAgent::didFinishXHRLoading(XMLHttpRequest*, ThreadableLoade
rClient*, unsigned long requestIdentifier, ScriptString, const AtomicString& met
hod, const String& url, const String& sendURL, unsigned sendLineNumber) | 279 void InspectorConsoleAgent::didFinishXHRLoading(XMLHttpRequest*, ThreadableLoade
rClient*, unsigned long requestIdentifier, ScriptString, const AtomicString& met
hod, const String& url, const String& sendURL, unsigned sendLineNumber) |
| 290 { | 280 { |
| 291 if (m_frontend && m_state->getBoolean(ConsoleAgentState::monitoringXHR)) { | 281 if (m_frontend && m_state->getBoolean(ConsoleAgentState::monitoringXHR)) { |
| 292 String message = "XHR finished loading: " + method + " \"" + url + "\"."
; | 282 String message = "XHR finished loading: " + method + " \"" + url + "\"."
; |
| 293 addMessageToConsole(NetworkMessageSource, LogMessageType, DebugMessageLe
vel, message, sendURL, sendLineNumber, 0, 0, requestIdentifier); | 283 RefPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(NetworkMe
ssageSource, DebugMessageLevel, message, sendURL, sendLineNumber); |
| 284 consoleMessage->setRequestIdentifier(requestIdentifier); |
| 285 addMessageToConsole(consoleMessage.get()); |
| 294 } | 286 } |
| 295 } | 287 } |
| 296 | 288 |
| 297 void InspectorConsoleAgent::didReceiveResourceResponse(LocalFrame*, unsigned lon
g requestIdentifier, DocumentLoader* loader, const ResourceResponse& response, R
esourceLoader* resourceLoader) | 289 void InspectorConsoleAgent::didReceiveResourceResponse(LocalFrame*, unsigned lon
g requestIdentifier, DocumentLoader* loader, const ResourceResponse& response, R
esourceLoader* resourceLoader) |
| 298 { | 290 { |
| 299 if (!loader) | 291 if (!loader) |
| 300 return; | 292 return; |
| 301 if (response.httpStatusCode() >= 400) { | 293 if (response.httpStatusCode() >= 400) { |
| 302 String message = "Failed to load resource: the server responded with a s
tatus of " + String::number(response.httpStatusCode()) + " (" + response.httpSta
tusText() + ')'; | 294 String message = "Failed to load resource: the server responded with a s
tatus of " + String::number(response.httpStatusCode()) + " (" + response.httpSta
tusText() + ')'; |
| 303 addMessageToConsole(NetworkMessageSource, LogMessageType, ErrorMessageLe
vel, message, response.url().string(), 0, 0, 0, requestIdentifier); | 295 RefPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(NetworkMe
ssageSource, ErrorMessageLevel, message, response.url().string()); |
| 296 consoleMessage->setRequestIdentifier(requestIdentifier); |
| 297 addMessageToConsole(consoleMessage.get()); |
| 304 } | 298 } |
| 305 } | 299 } |
| 306 | 300 |
| 307 void InspectorConsoleAgent::didFailLoading(unsigned long requestIdentifier, cons
t ResourceError& error) | 301 void InspectorConsoleAgent::didFailLoading(unsigned long requestIdentifier, cons
t ResourceError& error) |
| 308 { | 302 { |
| 309 if (error.isCancellation()) // Report failures only. | 303 if (error.isCancellation()) // Report failures only. |
| 310 return; | 304 return; |
| 311 StringBuilder message; | 305 StringBuilder message; |
| 312 message.appendLiteral("Failed to load resource"); | 306 message.appendLiteral("Failed to load resource"); |
| 313 if (!error.localizedDescription().isEmpty()) { | 307 if (!error.localizedDescription().isEmpty()) { |
| 314 message.appendLiteral(": "); | 308 message.appendLiteral(": "); |
| 315 message.append(error.localizedDescription()); | 309 message.append(error.localizedDescription()); |
| 316 } | 310 } |
| 317 addMessageToConsole(NetworkMessageSource, LogMessageType, ErrorMessageLevel,
message.toString(), error.failingURL(), 0, 0, 0, requestIdentifier); | 311 RefPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(NetworkMessag
eSource, ErrorMessageLevel, message.toString(), error.failingURL()); |
| 312 consoleMessage->setRequestIdentifier(requestIdentifier); |
| 313 addMessageToConsole(consoleMessage.get()); |
| 318 } | 314 } |
| 319 | 315 |
| 320 void InspectorConsoleAgent::setMonitoringXHREnabled(ErrorString*, bool enabled) | 316 void InspectorConsoleAgent::setMonitoringXHREnabled(ErrorString*, bool enabled) |
| 321 { | 317 { |
| 322 m_state->setBoolean(ConsoleAgentState::monitoringXHR, enabled); | 318 m_state->setBoolean(ConsoleAgentState::monitoringXHR, enabled); |
| 323 } | 319 } |
| 324 | 320 |
| 325 void InspectorConsoleAgent::addConsoleMessage(PassOwnPtr<InspectorConsoleMessage
> consoleMessage) | 321 void InspectorConsoleAgent::addConsoleMessage(PassOwnPtr<InspectorConsoleMessage
> consoleMessage) |
| 326 { | 322 { |
| 327 ASSERT_ARG(consoleMessage, consoleMessage); | 323 ASSERT_ARG(consoleMessage, consoleMessage); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 348 int m_heapObjectId; | 344 int m_heapObjectId; |
| 349 }; | 345 }; |
| 350 | 346 |
| 351 void InspectorConsoleAgent::addInspectedHeapObject(ErrorString*, int inspectedHe
apObjectId) | 347 void InspectorConsoleAgent::addInspectedHeapObject(ErrorString*, int inspectedHe
apObjectId) |
| 352 { | 348 { |
| 353 m_injectedScriptManager->injectedScriptHost()->addInspectedObject(adoptPtr(n
ew InspectableHeapObject(inspectedHeapObjectId))); | 349 m_injectedScriptManager->injectedScriptHost()->addInspectedObject(adoptPtr(n
ew InspectableHeapObject(inspectedHeapObjectId))); |
| 354 } | 350 } |
| 355 | 351 |
| 356 } // namespace blink | 352 } // namespace blink |
| 357 | 353 |
| OLD | NEW |