| Index: third_party/WebKit/Source/core/fetch/ResourceLoader.cpp
|
| diff --git a/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp b/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp
|
| index 2be163c8007ac3cbd6c698124b132e8482bdc250..96c7a776b4fd5791380268393952386a040e5b5f 100644
|
| --- a/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp
|
| +++ b/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp
|
| @@ -116,7 +116,7 @@ void ResourceLoader::cancel()
|
| didFail(nullptr, ResourceError::cancelledError(m_resource->lastResourceRequest().url()));
|
| }
|
|
|
| -void ResourceLoader::willFollowRedirect(WebURLLoader*, WebURLRequest& passedNewRequest, const WebURLResponse& passedRedirectResponse)
|
| +void ResourceLoader::willFollowRedirect(WebURLLoader*, WebURLRequest& passedNewRequest, const WebURLResponse& passedRedirectResponse, int64_t encodedDataLength)
|
| {
|
| ASSERT(!passedNewRequest.isNull());
|
| ASSERT(!passedRedirectResponse.isNull());
|
| @@ -125,7 +125,7 @@ void ResourceLoader::willFollowRedirect(WebURLLoader*, WebURLRequest& passedNewR
|
| const ResourceResponse& redirectResponse(passedRedirectResponse.toResourceResponse());
|
| newRequest.setRedirectStatus(ResourceRequest::RedirectStatus::FollowedRedirect);
|
|
|
| - if (m_fetcher->willFollowRedirect(m_resource.get(), newRequest, redirectResponse)) {
|
| + if (m_fetcher->willFollowRedirect(m_resource.get(), newRequest, redirectResponse, encodedDataLength)) {
|
| m_resource->willFollowRedirect(newRequest, redirectResponse);
|
| } else {
|
| m_resource->willNotFollowRedirect();
|
| @@ -198,10 +198,12 @@ void ResourceLoader::didReceiveResponse(WebURLLoader* loader, const WebURLRespon
|
| didReceiveResponse(loader, response, nullptr);
|
| }
|
|
|
| -void ResourceLoader::didReceiveData(WebURLLoader*, const char* data, int length, int encodedDataLength)
|
| +void ResourceLoader::didReceiveData(WebURLLoader*, const char* data, int length, int encodedDataLength, int encodedBodyLength)
|
| {
|
| RELEASE_ASSERT(length >= 0);
|
| m_fetcher->didReceiveData(m_resource.get(), data, length, encodedDataLength);
|
| + m_resource->addToEncodedBodyLength(encodedBodyLength);
|
| + m_resource->addToDecodedBodyLength(length);
|
| m_resource->appendData(data, length);
|
| }
|
|
|
| @@ -249,6 +251,7 @@ void ResourceLoader::requestSynchronously(const ResourceRequest& request)
|
| return;
|
| RefPtr<ResourceLoadInfo> resourceLoadInfo = responseOut.toResourceResponse().resourceLoadInfo();
|
| int64_t encodedDataLength = resourceLoadInfo ? resourceLoadInfo->encodedDataLength : WebURLLoaderClient::kUnknownEncodedDataLength;
|
| + DCHECK_GE(responseOut.toResourceResponse().encodedBodyLength(), 0);
|
|
|
| // Follow the async case convention of not calling didReceiveData or
|
| // appending data to m_resource if the response body is empty. Copying the
|
|
|