| Index: third_party/WebKit/Source/core/fetch/CrossOriginAccessControl.cpp | 
| diff --git a/third_party/WebKit/Source/core/fetch/CrossOriginAccessControl.cpp b/third_party/WebKit/Source/core/fetch/CrossOriginAccessControl.cpp | 
| index 8b794e834a16bb03b8310aec1f672aa14fd56640..b0567997cf45514a0de948d8577c41cff4d60f1b 100644 | 
| --- a/third_party/WebKit/Source/core/fetch/CrossOriginAccessControl.cpp | 
| +++ b/third_party/WebKit/Source/core/fetch/CrossOriginAccessControl.cpp | 
| @@ -81,6 +81,9 @@ ResourceRequest createAccessControlPreflightRequest(const ResourceRequest& reque | 
| preflightRequest.setRequestContext(request.requestContext()); | 
| preflightRequest.setSkipServiceWorker(true); | 
|  | 
| +    if (request.isExternalRequest()) | 
| +        preflightRequest.setHTTPHeaderField(HTTPNames::Access_Control_Request_External, "true"); | 
| + | 
| const HTTPHeaderMap& requestHeaderFields = request.httpHeaderFields(); | 
|  | 
| if (requestHeaderFields.size() > 0) { | 
| @@ -227,6 +230,20 @@ bool passesPreflightStatusCheck(const ResourceResponse& response, String& errorD | 
| return true; | 
| } | 
|  | 
| +bool passesExternalPreflightCheck(const ResourceResponse& response, String& errorDescription) | 
| +{ | 
| +    AtomicString result = response.httpHeaderField(HTTPNames::Access_Control_Allow_External); | 
| +    if (result.isNull()) { | 
| +        errorDescription = "No 'Access-Control-Allow-External' header was present in the preflight response for this external request (This is an experimental header which is defined in 'https://mikewest.github.io/cors-rfc1918/')."; | 
| +        return false; | 
| +    } | 
| +    if (!equalIgnoringCase(result, "true")) { | 
| +        errorDescription = "The 'Access-Control-Allow-External' header in the preflight response for this external request had a value of '" + result + "',  not 'true' (This is an experimental header which is defined in 'https://mikewest.github.io/cors-rfc1918/')."; | 
| +        return false; | 
| +    } | 
| +    return true; | 
| +} | 
| + | 
| void parseAccessControlExposeHeadersAllowList(const String& headerValue, HTTPHeaderSet& headerSet) | 
| { | 
| Vector<String> headers; | 
|  |