| 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)
 | 
|  {
 | 
| 
 |