| Index: third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| diff --git a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| index 4d8e561134505287d5ee1a3298b547b8e201a085..f3dbceaa395a06b798ce687d92c755526916e843 100644
|
| --- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| +++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| @@ -439,7 +439,8 @@ Resource* ResourceFetcher::resourceForBlockedRequest(
|
| const ResourceFactory& factory) {
|
| Resource* resource = factory.create(request.resourceRequest(),
|
| request.options(), request.charset());
|
| - resource->error(ResourceError::cancelledDueToAccessCheckError(request.url()));
|
| + resource->error(ResourceError::cancelledDueToAccessCheckError(request.url()),
|
| + Resource::LoadError);
|
| return resource;
|
| }
|
|
|
| @@ -1169,14 +1170,16 @@ void ResourceFetcher::didFinishLoading(Resource* resource,
|
| }
|
|
|
| void ResourceFetcher::didFailLoading(Resource* resource,
|
| - const ResourceError& error) {
|
| + const ResourceError& error,
|
| + Resource::Status errorStatus) {
|
| TRACE_EVENT_ASYNC_END0("blink.net", "Resource", resource->identifier());
|
| removeResourceLoader(resource->loader());
|
| m_resourceTimingInfoMap.take(const_cast<Resource*>(resource));
|
| bool isInternalRequest = resource->options().initiatorInfo.name ==
|
| FetchInitiatorTypeNames::internal;
|
| - context().dispatchDidFail(resource->identifier(), error, isInternalRequest);
|
| - resource->error(error);
|
| + context().dispatchDidFail(resource->identifier(), error, isInternalRequest,
|
| + errorStatus == Resource::DecodeError);
|
| + resource->error(error, errorStatus);
|
| context().didLoadResource(resource);
|
|
|
| if (resource->isImage() &&
|
| @@ -1221,13 +1224,15 @@ void ResourceFetcher::didReceiveResponse(Resource* resource,
|
| resource->resourceRequest(), originalURL,
|
| resource->options())) {
|
| resource->loader()->didFail(
|
| - ResourceError::cancelledDueToAccessCheckError(originalURL));
|
| + ResourceError::cancelledDueToAccessCheckError(originalURL),
|
| + Resource::LoadError);
|
| return;
|
| }
|
| } else if (resource->options().corsEnabled == IsCORSEnabled &&
|
| !canAccessResponse(resource, response)) {
|
| resource->loader()->didFail(
|
| - ResourceError::cancelledDueToAccessCheckError(response.url()));
|
| + ResourceError::cancelledDueToAccessCheckError(response.url()),
|
| + Resource::LoadError);
|
| return;
|
| }
|
|
|
| @@ -1237,7 +1242,8 @@ void ResourceFetcher::didReceiveResponse(Resource* resource,
|
| resource->responseReceived(response, std::move(handle));
|
| if (resource->loader() && response.httpStatusCode() >= 400 &&
|
| !resource->shouldIgnoreHTTPStatusCodeErrors()) {
|
| - resource->loader()->didFail(ResourceError::cancelledError(response.url()));
|
| + resource->loader()->didFail(ResourceError::cancelledError(response.url()),
|
| + Resource::LoadError);
|
| }
|
| }
|
|
|
|
|