Index: third_party/WebKit/Source/bindings/core/v8/RejectedPromises.cpp |
diff --git a/third_party/WebKit/Source/bindings/core/v8/RejectedPromises.cpp b/third_party/WebKit/Source/bindings/core/v8/RejectedPromises.cpp |
index 55193ae26f66552eddc55e010af7a682e37e6c7b..03638df9e8668fb6f483dbc8efd9d4f12e8aa42c 100644 |
--- a/third_party/WebKit/Source/bindings/core/v8/RejectedPromises.cpp |
+++ b/third_party/WebKit/Source/bindings/core/v8/RejectedPromises.cpp |
@@ -28,9 +28,9 @@ static const unsigned maxReportedHandlersPendingResolution = 1000; |
class RejectedPromises::Message final : public NoBaseWillBeGarbageCollectedFinalized<RejectedPromises::Message> { |
public: |
- static PassOwnPtrWillBeRawPtr<Message> create(ScriptState* scriptState, v8::Local<v8::Promise> promise, v8::Local<v8::Value> exception, const String& errorMessage, const String& resourceName, int scriptId, int lineNumber, int columnNumber, PassRefPtrWillBeRawPtr<ScriptCallStack> callStack) |
+ static PassOwnPtrWillBeRawPtr<Message> create(ScriptState* scriptState, v8::Local<v8::Promise> promise, v8::Local<v8::Value> exception, const String& errorMessage, const String& resourceName, int scriptId, int lineNumber, int columnNumber, PassRefPtrWillBeRawPtr<ScriptCallStack> callStack, AccessControlStatus corsStatus) |
{ |
- return adoptPtrWillBeNoop(new Message(scriptState, promise, exception, errorMessage, resourceName, scriptId, lineNumber, columnNumber, callStack)); |
+ return adoptPtrWillBeNoop(new Message(scriptState, promise, exception, errorMessage, resourceName, scriptId, lineNumber, columnNumber, callStack, corsStatus)); |
} |
DEFINE_INLINE_TRACE() |
@@ -69,7 +69,7 @@ public: |
ASSERT(!hasHandler()); |
EventTarget* target = executionContext->errorEventTarget(); |
- if (RuntimeEnabledFeatures::promiseRejectionEventEnabled() && target) { |
+ if (RuntimeEnabledFeatures::promiseRejectionEventEnabled() && target && !executionContext->shouldSanitizeScriptError(m_resourceName, m_corsStatus)) { |
PromiseRejectionEventInit init; |
init.setPromise(ScriptPromise(m_scriptState, value)); |
init.setReason(ScriptValue(m_scriptState, reason)); |
@@ -117,7 +117,7 @@ public: |
return; |
EventTarget* target = executionContext->errorEventTarget(); |
- if (RuntimeEnabledFeatures::promiseRejectionEventEnabled() && target) { |
+ if (RuntimeEnabledFeatures::promiseRejectionEventEnabled() && target && !executionContext->shouldSanitizeScriptError(m_resourceName, m_corsStatus)) { |
PromiseRejectionEventInit init; |
init.setPromise(ScriptPromise(m_scriptState, value)); |
init.setReason(ScriptValue(m_scriptState, reason)); |
@@ -156,7 +156,7 @@ public: |
} |
private: |
- Message(ScriptState* scriptState, v8::Local<v8::Promise> promise, v8::Local<v8::Value> exception, const String& errorMessage, const String& resourceName, int scriptId, int lineNumber, int columnNumber, PassRefPtrWillBeRawPtr<ScriptCallStack> callStack) |
+ Message(ScriptState* scriptState, v8::Local<v8::Promise> promise, v8::Local<v8::Value> exception, const String& errorMessage, const String& resourceName, int scriptId, int lineNumber, int columnNumber, PassRefPtrWillBeRawPtr<ScriptCallStack> callStack, AccessControlStatus corsStatus) |
: m_scriptState(scriptState) |
, m_promise(scriptState->isolate(), promise) |
, m_exception(scriptState->isolate(), exception) |
@@ -169,6 +169,7 @@ private: |
, m_consoleMessageId(0) |
, m_collected(false) |
, m_shouldLogToConsole(true) |
+ , m_corsStatus(corsStatus) |
{ |
} |
@@ -195,6 +196,7 @@ private: |
unsigned m_consoleMessageId; |
bool m_collected; |
bool m_shouldLogToConsole; |
+ AccessControlStatus m_corsStatus; |
}; |
RejectedPromises::RejectedPromises() |
@@ -209,9 +211,9 @@ DEFINE_TRACE(RejectedPromises) |
visitor->trace(m_reportedAsErrors); |
} |
-void RejectedPromises::rejectedWithNoHandler(ScriptState* scriptState, v8::PromiseRejectMessage data, const String& errorMessage, const String& resourceName, int scriptId, int lineNumber, int columnNumber, PassRefPtrWillBeRawPtr<ScriptCallStack> callStack) |
+void RejectedPromises::rejectedWithNoHandler(ScriptState* scriptState, v8::PromiseRejectMessage data, const String& errorMessage, const String& resourceName, int scriptId, int lineNumber, int columnNumber, PassRefPtrWillBeRawPtr<ScriptCallStack> callStack, AccessControlStatus corsStatus) |
{ |
- m_queue.append(Message::create(scriptState, data.GetPromise(), data.GetValue(), errorMessage, resourceName, scriptId, lineNumber, columnNumber, callStack)); |
+ m_queue.append(Message::create(scriptState, data.GetPromise(), data.GetValue(), errorMessage, resourceName, scriptId, lineNumber, columnNumber, callStack, corsStatus)); |
} |
void RejectedPromises::handlerAdded(v8::PromiseRejectMessage data) |