| Index: Source/core/page/PageConsole.cpp
|
| diff --git a/Source/core/page/PageConsole.cpp b/Source/core/page/PageConsole.cpp
|
| index 07bbb252a6ce2974edde7df033fa5d860034e9b2..d8e55793a626cfbf978630c1b0be8a02c17b0aec 100644
|
| --- a/Source/core/page/PageConsole.cpp
|
| +++ b/Source/core/page/PageConsole.cpp
|
| @@ -91,7 +91,23 @@ void PageConsole::addMessage(MessageSource source, MessageLevel level, const Str
|
| if (source == CSSMessageSource)
|
| return;
|
|
|
| - page->chrome().client()->addMessageToConsole(source, level, message, lineNumber, url);
|
| + String stackTrace;
|
| + if (page->chrome().client()->shouldReportDetailedMessageForSource(url) && callStack)
|
| + stackTrace = getStackTraceString(message, callStack);
|
| +
|
| + page->chrome().client()->addMessageToConsole(source, level, message, lineNumber, url, stackTrace);
|
| +}
|
| +
|
| +// static
|
| +String PageConsole::getStackTraceString(const String& originalMessage, PassRefPtr<ScriptCallStack> callStack)
|
| +{
|
| + String stackTrace;
|
| + for (size_t i = 0; i < callStack->size(); ++i) {
|
| + const ScriptCallFrame& frame = callStack->at(i);
|
| + stackTrace.append("\n at " + (frame.functionName().length() ? frame.functionName() : String("(anonymous function)")) + " (" + frame.sourceURL() + ":" + String::number(frame.lineNumber()) + ":" + String::number(frame.columnNumber()) + ")");
|
| + }
|
| +
|
| + return stackTrace;
|
| }
|
|
|
| // static
|
|
|