Index: Source/core/inspector/InspectorConsoleAgent.cpp |
diff --git a/Source/core/inspector/InspectorConsoleAgent.cpp b/Source/core/inspector/InspectorConsoleAgent.cpp |
index b89257e61af1115655af7633c757e1d420d8681d..659051a0fe25a14060be832a531668edad79bfaa 100644 |
--- a/Source/core/inspector/InspectorConsoleAgent.cpp |
+++ b/Source/core/inspector/InspectorConsoleAgent.cpp |
@@ -44,6 +44,7 @@ |
#include "core/inspector/ScriptCallStack.h" |
#include "core/loader/DocumentLoader.h" |
#include "core/page/Page.h" |
+#include "core/workers/WorkerGlobalScopeProxy.h" |
#include "platform/network/ResourceError.h" |
#include "platform/network/ResourceResponse.h" |
#include "wtf/CurrentTime.h" |
@@ -169,11 +170,22 @@ void InspectorConsoleAgent::clearFrontend() |
void InspectorConsoleAgent::addMessageToConsole(ConsoleMessage* consoleMessage) |
{ |
+ InspectorConsoleMessage* message; |
if (consoleMessage->callStack()) { |
- addConsoleMessage(adoptPtr(new InspectorConsoleMessage(consoleMessage->source(), LogMessageType, consoleMessage->level(), consoleMessage->message(), consoleMessage->callStack(), consoleMessage->requestIdentifier()))); |
+ message = new InspectorConsoleMessage(consoleMessage->source(), LogMessageType, consoleMessage->level(), consoleMessage->message(), consoleMessage->callStack(), consoleMessage->requestIdentifier()); |
} else { |
bool canGenerateCallStack = !isWorkerAgent() && m_frontend; |
- addConsoleMessage(adoptPtr(new InspectorConsoleMessage(canGenerateCallStack, consoleMessage->source(), LogMessageType, consoleMessage->level(), consoleMessage->message(), consoleMessage->url(), consoleMessage->lineNumber(), consoleMessage->columnNumber(), consoleMessage->scriptState(), consoleMessage->requestIdentifier()))); |
+ message = new InspectorConsoleMessage(canGenerateCallStack, consoleMessage->source(), LogMessageType, consoleMessage->level(), consoleMessage->message(), consoleMessage->url(), consoleMessage->lineNumber(), consoleMessage->columnNumber(), consoleMessage->scriptState(), consoleMessage->requestIdentifier()); |
+ } |
+ message->setWorkerGlobalScopeProxy(consoleMessage->getWorkerId()); |
+ addConsoleMessage(adoptPtr(message)); |
+} |
+ |
+void InspectorConsoleAgent::notifyWorkerGlobalScopeTerminated(WorkerGlobalScopeProxy* proxy) |
+{ |
+ for (size_t i = 0; i < m_consoleMessages.size(); i++) { |
+ if (m_consoleMessages[i]->getWorkerGlobalScopeProxy() == proxy) |
+ m_consoleMessages[i]->setWorkerGlobalScopeProxy(nullptr); |
} |
} |