Index: third_party/WebKit/Source/core/fetch/ResourceLoader.cpp |
diff --git a/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp b/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp |
index dc438c8e512153a3b79514f12ecc1bc7a9c7ce1f..cd3276d6ad16255c454ef9b41133febb6001d6c4 100644 |
--- a/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp |
+++ b/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp |
@@ -47,6 +47,7 @@ |
#include "wtf/Assertions.h" |
#include "wtf/CurrentTime.h" |
#include "wtf/PtrUtil.h" |
+#include "wtf/text/StringBuilder.h" |
#include <memory> |
namespace blink { |
@@ -279,19 +280,28 @@ ResourceRequestBlockedReason ResourceLoader::canAccessResponse( |
(resource->isCacheValidator() && response.httpStatusCode() == 304) |
? resource->response() |
: response; |
- String errorDescription; |
- if (!passesAccessControlCheck( |
+ |
+ CrossOriginAccessControl::AccessStatus corsStatus = |
+ CrossOriginAccessControl::checkAccess( |
responseForAccessControl, resource->options().allowCredentials, |
- sourceOrigin, errorDescription, |
- resource->lastResourceRequest().requestContext())) { |
+ sourceOrigin); |
+ if (corsStatus != CrossOriginAccessControl::kAccessAllowed) { |
resource->setCORSFailed(); |
if (!forPreload) { |
String resourceType = Resource::resourceTypeToString( |
resource->getType(), resource->options().initiatorInfo.name); |
- context().addConsoleMessage( |
- "Access to " + resourceType + " at '" + response.url().getString() + |
- "' from origin '" + sourceOrigin->toString() + |
- "' has been blocked by CORS policy: " + errorDescription); |
+ StringBuilder builder; |
+ builder.append("Access to "); |
+ builder.append(resourceType); |
+ builder.append(" at '"); |
+ builder.append(response.url().getString()); |
+ builder.append("' from origin '"); |
+ builder.append(sourceOrigin->toString()); |
+ builder.append("' has been blocked by CORS policy: "); |
+ CrossOriginAccessControl::accessControlErrorString( |
+ builder, corsStatus, responseForAccessControl, sourceOrigin, |
+ resource->lastResourceRequest().requestContext()); |
+ context().addConsoleMessage(builder.toString()); |
} |
return ResourceRequestBlockedReason::Other; |
} |