Index: third_party/WebKit/Source/platform/loader/fetch/CrossOriginAccessControl.cpp |
diff --git a/third_party/WebKit/Source/platform/loader/fetch/CrossOriginAccessControl.cpp b/third_party/WebKit/Source/platform/loader/fetch/CrossOriginAccessControl.cpp |
index 06d0234b67c6af8bcbd42bf367d70bd62bff85d5..82ad4097745ddb699a3af723877ca650e37b025d 100644 |
--- a/third_party/WebKit/Source/platform/loader/fetch/CrossOriginAccessControl.cpp |
+++ b/third_party/WebKit/Source/platform/loader/fetch/CrossOriginAccessControl.cpp |
@@ -472,7 +472,7 @@ void CrossOriginAccessControl::RedirectErrorString( |
} |
bool CrossOriginAccessControl::HandleRedirect( |
- PassRefPtr<SecurityOrigin> security_origin, |
+ RefPtr<SecurityOrigin> security_origin, |
ResourceRequest& new_request, |
const ResourceResponse& redirect_response, |
StoredCredentials with_credentials, |
@@ -482,13 +482,11 @@ bool CrossOriginAccessControl::HandleRedirect( |
const KURL& last_url = redirect_response.Url(); |
const KURL& new_url = new_request.Url(); |
- RefPtr<SecurityOrigin> current_security_origin = security_origin; |
- |
- RefPtr<SecurityOrigin> new_security_origin = current_security_origin; |
Yuta Kitamura
2017/04/10 07:00:11
I think the removal of new_security_origin causes
Bugs Nash
2017/04/11 01:47:51
I'm not removing new_security_origin, I'm setting
Yuta Kitamura
2017/04/11 05:49:39
Ah I see, I now see you didn't change the behavior
|
+ RefPtr<SecurityOrigin> new_security_origin = security_origin; |
// TODO(tyoshino): This should be fixed to check not only the last one but |
// all redirect responses. |
- if (!current_security_origin->CanRequest(last_url)) { |
+ if (!security_origin->CanRequest(last_url)) { |
// Follow http://www.w3.org/TR/cors/#redirect-steps |
CrossOriginAccessControl::RedirectStatus redirect_status = |
CrossOriginAccessControl::CheckRedirectLocation(new_url); |
@@ -506,15 +504,15 @@ bool CrossOriginAccessControl::HandleRedirect( |
// Step 5: perform resource sharing access check. |
CrossOriginAccessControl::AccessStatus cors_status = |
CrossOriginAccessControl::CheckAccess( |
- redirect_response, with_credentials, current_security_origin.Get()); |
+ redirect_response, with_credentials, security_origin.Get()); |
if (cors_status != kAccessAllowed) { |
StringBuilder builder; |
builder.Append("Redirect from '"); |
builder.Append(last_url.GetString()); |
builder.Append("' has been blocked by CORS policy: "); |
CrossOriginAccessControl::AccessControlErrorString( |
- builder, cors_status, redirect_response, |
- current_security_origin.Get(), new_request.GetRequestContext()); |
+ builder, cors_status, redirect_response, security_origin.Get(), |
+ new_request.GetRequestContext()); |
error_message = builder.ToString(); |
return false; |
} |
@@ -528,7 +526,7 @@ bool CrossOriginAccessControl::HandleRedirect( |
} |
} |
- if (!current_security_origin->CanRequest(new_url)) { |
+ if (!security_origin->CanRequest(new_url)) { |
new_request.ClearHTTPOrigin(); |
new_request.SetHTTPOrigin(new_security_origin.Get()); |