Index: Source/core/loader/DocumentThreadableLoader.cpp |
diff --git a/Source/core/loader/DocumentThreadableLoader.cpp b/Source/core/loader/DocumentThreadableLoader.cpp |
index f33cff26d4e913122b92fac461e3dc600d073463..6f9d12c98a04819ff87a5808cfe4d59b2f3be406 100644 |
--- a/Source/core/loader/DocumentThreadableLoader.cpp |
+++ b/Source/core/loader/DocumentThreadableLoader.cpp |
@@ -299,12 +299,17 @@ void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequ |
// Non-simple cross origin requests (both preflight and actual one) are |
// not allowed to follow redirect. |
if (m_crossOriginNonSimpleRequest) { |
- accessControlErrorDescription = "The request was redirected to '"+ request.url().string() + "', which is disallowed for cross-origin requests that require preflight."; |
+ accessControlErrorDescription = "The request was redirected to '" + request.url().string() + "', which is disallowed for cross-origin requests that require preflight."; |
} else { |
// The redirect response must pass the access control check if the |
// original request was not same-origin. |
- allowRedirect = CrossOriginAccessControl::isLegalRedirectLocation(request.url(), accessControlErrorDescription) |
- && (m_sameOriginRequest || passesAccessControlCheck(redirectResponse, effectiveAllowCredentials(), securityOrigin(), accessControlErrorDescription)); |
+ if (CrossOriginAccessControl::isLegalRedirectLocation(request.url(), accessControlErrorDescription)) { |
+ if (m_sameOriginRequest || passesAccessControlCheck(redirectResponse, effectiveAllowCredentials(), securityOrigin(), accessControlErrorDescription)) { |
+ allowRedirect = true; |
+ } else { |
+ accessControlErrorDescription = "The request was redirected to '" + request.url().string() + "', and has been blocked from loading by Cross-Origin Resource Sharing policy: " + accessControlErrorDescription; |
+ } |
+ } |
} |
if (allowRedirect) { |
@@ -394,7 +399,7 @@ void DocumentThreadableLoader::handlePreflightResponse(const ResourceResponse& r |
String accessControlErrorDescription; |
if (!passesAccessControlCheck(response, effectiveAllowCredentials(), securityOrigin(), accessControlErrorDescription)) { |
- handlePreflightFailure(response.url().string(), accessControlErrorDescription); |
+ handlePreflightFailure(response.url().string(), "Response for preflight doesn't pass the access control check: " + accessControlErrorDescription); |
return; |
} |
@@ -458,7 +463,7 @@ void DocumentThreadableLoader::handleResponse(unsigned long identifier, const Re |
String accessControlErrorDescription; |
if (!passesAccessControlCheck(response, effectiveAllowCredentials(), securityOrigin(), accessControlErrorDescription)) { |
reportResponseReceived(identifier, response); |
- m_client->didFailAccessControlCheck(ResourceError(errorDomainBlinkInternal, 0, response.url().string(), accessControlErrorDescription)); |
+ m_client->didFailAccessControlCheck(ResourceError(errorDomainBlinkInternal, 0, response.url().string(), "Received response but it doesn't pass the access control check: " + accessControlErrorDescription)); |
sof
2015/06/25 11:24:18
The prefixed text strikes me as redundant (and lon
tyoshino (SeeGerritForStatus)
2016/07/22 12:46:45
OK. Removed
|
return; |
} |
} |