| Index: third_party/WebKit/Source/core/fetch/FetchRequest.cpp
|
| diff --git a/third_party/WebKit/Source/core/fetch/FetchRequest.cpp b/third_party/WebKit/Source/core/fetch/FetchRequest.cpp
|
| index f620a4d433257e9c42d80fa65ffe8c420ff5e784..3fd353f623fbdcd72a626f71cd79736948a65051 100644
|
| --- a/third_party/WebKit/Source/core/fetch/FetchRequest.cpp
|
| +++ b/third_party/WebKit/Source/core/fetch/FetchRequest.cpp
|
| @@ -72,26 +72,24 @@ FetchRequest::~FetchRequest()
|
| {
|
| }
|
|
|
| -void FetchRequest::setCrossOriginAccessControl(SecurityOrigin* origin, StoredCredentials allowCredentials, CredentialRequest requested)
|
| +void FetchRequest::setCrossOriginAccessControl(SecurityOrigin* origin, CrossOriginAttributeValue crossOrigin)
|
| {
|
| - ASSERT(requested == ClientDidNotRequestCredentials || allowCredentials == AllowStoredCredentials);
|
| + ASSERT(crossOrigin != CrossOriginAttributeNotSet);
|
| + const bool useCredentials = crossOrigin == CrossOriginAttributeUseCredentials;
|
| + const bool isSameOriginRequest = origin && origin->canRequestNoSuborigin(m_resourceRequest.url());
|
| +
|
| + // Currently FetchRequestMode and FetchCredentialsMode are only used when the request goes to Service Worker.
|
| m_resourceRequest.setFetchRequestMode(WebURLRequest::FetchRequestModeCORS);
|
| - updateRequestForAccessControl(m_resourceRequest, origin, allowCredentials);
|
| - m_options.allowCredentials = allowCredentials;
|
| + m_resourceRequest.setFetchCredentialsMode(useCredentials ? WebURLRequest::FetchCredentialsModeInclude : WebURLRequest::FetchCredentialsModeSameOrigin);
|
| +
|
| + m_options.allowCredentials = (isSameOriginRequest || useCredentials) ? AllowStoredCredentials : DoNotAllowStoredCredentials;
|
| m_options.corsEnabled = IsCORSEnabled;
|
| m_options.securityOrigin = origin;
|
| - m_options.credentialsRequested = requested;
|
| -}
|
| + m_options.credentialsRequested = useCredentials ? ClientRequestedCredentials : ClientDidNotRequestCredentials;
|
|
|
| -void FetchRequest::setCrossOriginAccessControl(SecurityOrigin* origin, StoredCredentials allowCredentials)
|
| -{
|
| - setCrossOriginAccessControl(origin, allowCredentials, allowCredentials == AllowStoredCredentials ? ClientRequestedCredentials : ClientDidNotRequestCredentials);
|
| + updateRequestForAccessControl(m_resourceRequest, origin, m_options.allowCredentials);
|
| }
|
|
|
| -void FetchRequest::setCrossOriginAccessControl(SecurityOrigin* origin, const AtomicString& crossOriginMode)
|
| -{
|
| - setCrossOriginAccessControl(origin, equalIgnoringCase(crossOriginMode, "use-credentials") ? AllowStoredCredentials : DoNotAllowStoredCredentials);
|
| -}
|
|
|
| void FetchRequest::setResourceWidth(ResourceWidth resourceWidth)
|
| {
|
|
|