Index: Source/bindings/core/v8/V8Initializer.cpp |
diff --git a/Source/bindings/core/v8/V8Initializer.cpp b/Source/bindings/core/v8/V8Initializer.cpp |
index f9c02905c0796cd450051cdcd4fdb5efedcff880..0cd513c49875a0a21bb09732eedbb3d46c3f22b6 100644 |
--- a/Source/bindings/core/v8/V8Initializer.cpp |
+++ b/Source/bindings/core/v8/V8Initializer.cpp |
@@ -45,6 +45,7 @@ |
#include "core/frame/LocalDOMWindow.h" |
#include "core/frame/LocalFrame.h" |
#include "core/frame/csp/ContentSecurityPolicy.h" |
+#include "core/inspector/ConsoleMessage.h" |
#include "core/inspector/ScriptCallStack.h" |
#include "platform/TraceEvent.h" |
#include "public/platform/Platform.h" |
@@ -118,8 +119,9 @@ static void messageHandlerInMainThread(v8::Handle<v8::Message> message, v8::Hand |
const WrapperTypeInfo* type = toWrapperTypeInfo(obj); |
if (V8DOMException::wrapperTypeInfo.isSubclass(type)) { |
DOMException* exception = V8DOMException::toNative(obj); |
- if (exception && !exception->messageForConsole().isEmpty()) |
+ if (exception && !exception->messageForConsole().isEmpty()) { |
event->setUnsanitizedMessage("Uncaught " + exception->toStringForConsole()); |
+ } |
} |
} |
@@ -130,7 +132,9 @@ static void messageHandlerInMainThread(v8::Handle<v8::Message> message, v8::Hand |
if (frame && frame->script().existingWindowShell(scriptState->world())) { |
V8ErrorHandler::storeExceptionOnErrorEventWrapper(event.get(), data, scriptState->context()->Global(), isolate); |
} |
- enteredWindow->document()->reportException(event.release(), callStack, corsStatus); |
+ |
+ RefPtrWillBeRawPtr<ConsoleMessage> consoleError = ConsoleMessage::create(JSMessageSource, ErrorMessageLevel, event->messageForConsole(), resource, message->GetLineNumber(), message->GetStartColumn() + 1, callStack, scriptState, 0, corsStatus); |
+ enteredWindow->document()->reportException(event.release(), consoleError.release()); |
} |
static void failedAccessCheckCallbackInMainThread(v8::Local<v8::Object> host, v8::AccessType type, v8::Local<v8::Value> data) |
@@ -227,7 +231,9 @@ static void messageHandlerInWorker(v8::Handle<v8::Message> message, v8::Handle<v |
AccessControlStatus corsStatus = message->IsSharedCrossOrigin() ? SharableCrossOrigin : NotSharableCrossOrigin; |
V8ErrorHandler::storeExceptionOnErrorEventWrapper(event.get(), data, scriptState->context()->Global(), isolate); |
- context->reportException(event.release(), nullptr, corsStatus); |
+ |
+ RefPtrWillBeRawPtr<ConsoleMessage> consoleError = ConsoleMessage::create(JSMessageSource, ErrorMessageLevel, errorMessage, sourceURL, message->GetLineNumber(), message->GetStartColumn() + 1, nullptr, scriptState, 0, corsStatus); |
+ context->reportException(event.release(), consoleError); |
} |
isReportingException = false; |