| Index: Source/core/page/PageConsole.cpp
|
| diff --git a/Source/core/page/PageConsole.cpp b/Source/core/page/PageConsole.cpp
|
| index 07bbb252a6ce2974edde7df033fa5d860034e9b2..e2993d23ed7a4e419d1aeb385704adbfb1c631f3 100644
|
| --- a/Source/core/page/PageConsole.cpp
|
| +++ b/Source/core/page/PageConsole.cpp
|
| @@ -32,6 +32,7 @@
|
| #include "core/dom/Document.h"
|
| #include "core/dom/ScriptableDocumentParser.h"
|
| #include "core/inspector/ConsoleAPITypes.h"
|
| +#include "core/inspector/InspectorAgent.h"
|
| #include "core/inspector/InspectorConsoleInstrumentation.h"
|
| #include "core/inspector/ScriptCallStack.h"
|
| #include "core/page/Chrome.h"
|
| @@ -46,8 +47,21 @@ namespace {
|
|
|
| int muteCount = 0;
|
|
|
| +PassOwnPtr<ConsoleMessage> createConsoleMessage(Page* page, MessageSource source, MessageLevel level, const String& message, const String& url, unsigned lineNumber, unsigned columnNumber, PassRefPtr<ScriptCallStack> callStack, ScriptState* state, unsigned long requestIdentifier)
|
| +{
|
| + String executionContextURL = page->mainFrame()->document()->url().string();
|
| + bool reportDetailedMessage = (state && page->chrome().client()->shouldReportDetailedMessageForContext(state->context()))
|
| + || page->chrome().client()->shouldReportDetailedMessageForURL(url)
|
| + || page->chrome().client()->shouldReportDetailedMessageForURL(executionContextURL);
|
| +
|
| + if (callStack)
|
| + return adoptPtr(new ConsoleMessage(reportDetailedMessage, source, LogMessageType, level, message, executionContextURL, callStack, requestIdentifier));
|
| +
|
| + return adoptPtr(new ConsoleMessage(reportDetailedMessage, source, LogMessageType, level, message, executionContextURL, url, lineNumber, columnNumber, state, requestIdentifier));
|
| }
|
|
|
| +} // anonymous namespace
|
| +
|
| PageConsole::PageConsole(Page* page)
|
| : m_page(page)
|
| {
|
| @@ -83,15 +97,15 @@ void PageConsole::addMessage(MessageSource source, MessageLevel level, const Str
|
| if (!page)
|
| return;
|
|
|
| - if (callStack)
|
| - InspectorInstrumentation::addMessageToConsole(page, source, LogMessageType, level, message, callStack, requestIdentifier);
|
| - else
|
| - InspectorInstrumentation::addMessageToConsole(page, source, LogMessageType, level, message, url, lineNumber, columnNumber, state, requestIdentifier);
|
| + OwnPtr<ConsoleMessage> consoleMessage = createConsoleMessage(page, source, level, message, url, lineNumber, columnNumber, callStack, state, requestIdentifier);
|
|
|
| - if (source == CSSMessageSource)
|
| - return;
|
| + if (source != CSSMessageSource)
|
| + page->chrome().client()->addMessageToConsole(source, level, message, lineNumber, url, consoleMessage->generateJSONWithoutArguments()->toJSONString());
|
|
|
| - page->chrome().client()->addMessageToConsole(source, level, message, lineNumber, url);
|
| + if (callStack)
|
| + InspectorInstrumentation::addMessageToConsole(page, consoleMessage.release(), InspectorAgent::DontCheckFrontend);
|
| + else
|
| + InspectorInstrumentation::addMessageToConsole(page, consoleMessage.release(), InspectorAgent::CheckFrontend);
|
| }
|
|
|
| // static
|
|
|