| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2010, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2010, 2011 Apple Inc. All rights reserved. |
| 3 * (C) 2007 Graham Dennis (graham.dennis@gmail.com) | 3 * (C) 2007 Graham Dennis (graham.dennis@gmail.com) |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 { | 109 { |
| 110 if (m_loader) | 110 if (m_loader) |
| 111 m_loader->didChangePriority(static_cast<WebURLRequest::Priority>(loadPri
ority), intraPriorityValue); | 111 m_loader->didChangePriority(static_cast<WebURLRequest::Priority>(loadPri
ority), intraPriorityValue); |
| 112 } | 112 } |
| 113 | 113 |
| 114 void ResourceLoader::cancel() | 114 void ResourceLoader::cancel() |
| 115 { | 115 { |
| 116 didFail(nullptr, ResourceError::cancelledError(m_resource->lastResourceReque
st().url())); | 116 didFail(nullptr, ResourceError::cancelledError(m_resource->lastResourceReque
st().url())); |
| 117 } | 117 } |
| 118 | 118 |
| 119 void ResourceLoader::willFollowRedirect(WebURLLoader*, WebURLRequest& passedNewR
equest, const WebURLResponse& passedRedirectResponse) | 119 void ResourceLoader::willFollowRedirect(WebURLLoader*, WebURLRequest& passedNewR
equest, const WebURLResponse& passedRedirectResponse, int64_t encodedDataLength) |
| 120 { | 120 { |
| 121 ASSERT(!passedNewRequest.isNull()); | 121 ASSERT(!passedNewRequest.isNull()); |
| 122 ASSERT(!passedRedirectResponse.isNull()); | 122 ASSERT(!passedRedirectResponse.isNull()); |
| 123 | 123 |
| 124 ResourceRequest& newRequest(passedNewRequest.toMutableResourceRequest()); | 124 ResourceRequest& newRequest(passedNewRequest.toMutableResourceRequest()); |
| 125 const ResourceResponse& redirectResponse(passedRedirectResponse.toResourceRe
sponse()); | 125 const ResourceResponse& redirectResponse(passedRedirectResponse.toResourceRe
sponse()); |
| 126 newRequest.setRedirectStatus(ResourceRequest::RedirectStatus::FollowedRedire
ct); | 126 newRequest.setRedirectStatus(ResourceRequest::RedirectStatus::FollowedRedire
ct); |
| 127 | 127 |
| 128 if (m_fetcher->willFollowRedirect(m_resource.get(), newRequest, redirectResp
onse)) { | 128 if (m_fetcher->willFollowRedirect(m_resource.get(), newRequest, redirectResp
onse, encodedDataLength)) { |
| 129 m_resource->willFollowRedirect(newRequest, redirectResponse); | 129 m_resource->willFollowRedirect(newRequest, redirectResponse); |
| 130 } else { | 130 } else { |
| 131 m_resource->willNotFollowRedirect(); | 131 m_resource->willNotFollowRedirect(); |
| 132 if (m_loader) | 132 if (m_loader) |
| 133 didFail(nullptr, ResourceError::cancelledDueToAccessCheckError(newRe
quest.url())); | 133 didFail(nullptr, ResourceError::cancelledDueToAccessCheckError(newRe
quest.url())); |
| 134 } | 134 } |
| 135 } | 135 } |
| 136 | 136 |
| 137 void ResourceLoader::didReceiveCachedMetadata(WebURLLoader*, const char* data, i
nt length) | 137 void ResourceLoader::didReceiveCachedMetadata(WebURLLoader*, const char* data, i
nt length) |
| 138 { | 138 { |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 if (m_resource->response().httpStatusCode() < 400 || m_resource->shouldIgnor
eHTTPStatusCodeErrors()) | 191 if (m_resource->response().httpStatusCode() < 400 || m_resource->shouldIgnor
eHTTPStatusCodeErrors()) |
| 192 return; | 192 return; |
| 193 didFail(nullptr, ResourceError::cancelledError(resourceResponse.url())); | 193 didFail(nullptr, ResourceError::cancelledError(resourceResponse.url())); |
| 194 } | 194 } |
| 195 | 195 |
| 196 void ResourceLoader::didReceiveResponse(WebURLLoader* loader, const WebURLRespon
se& response) | 196 void ResourceLoader::didReceiveResponse(WebURLLoader* loader, const WebURLRespon
se& response) |
| 197 { | 197 { |
| 198 didReceiveResponse(loader, response, nullptr); | 198 didReceiveResponse(loader, response, nullptr); |
| 199 } | 199 } |
| 200 | 200 |
| 201 void ResourceLoader::didReceiveData(WebURLLoader*, const char* data, int length,
int encodedDataLength) | 201 void ResourceLoader::didReceiveData(WebURLLoader*, const char* data, int length,
int encodedDataLength, int encodedBodyLength) |
| 202 { | 202 { |
| 203 RELEASE_ASSERT(length >= 0); | 203 RELEASE_ASSERT(length >= 0); |
| 204 m_fetcher->didReceiveData(m_resource.get(), data, length, encodedDataLength)
; | 204 m_fetcher->didReceiveData(m_resource.get(), data, length, encodedDataLength)
; |
| 205 m_resource->addToEncodedBodyLength(encodedBodyLength); |
| 206 m_resource->addToDecodedBodyLength(length); |
| 205 m_resource->appendData(data, length); | 207 m_resource->appendData(data, length); |
| 206 } | 208 } |
| 207 | 209 |
| 208 void ResourceLoader::didFinishLoadingFirstPartInMultipart() | 210 void ResourceLoader::didFinishLoadingFirstPartInMultipart() |
| 209 { | 211 { |
| 210 m_fetcher->didFinishLoading(m_resource.get(), 0, WebURLLoaderClient::kUnknow
nEncodedDataLength, ResourceFetcher::DidFinishFirstPartInMultipart); | 212 m_fetcher->didFinishLoading(m_resource.get(), 0, WebURLLoaderClient::kUnknow
nEncodedDataLength, ResourceFetcher::DidFinishFirstPartInMultipart); |
| 211 } | 213 } |
| 212 | 214 |
| 213 void ResourceLoader::didFinishLoading(WebURLLoader*, double finishTime, int64_t
encodedDataLength) | 215 void ResourceLoader::didFinishLoading(WebURLLoader*, double finishTime, int64_t
encodedDataLength) |
| 214 { | 216 { |
| (...skipping 27 matching lines...) Expand all Loading... |
| 242 return; | 244 return; |
| 243 if (errorOut.reason) { | 245 if (errorOut.reason) { |
| 244 didFail(0, errorOut); | 246 didFail(0, errorOut); |
| 245 return; | 247 return; |
| 246 } | 248 } |
| 247 didReceiveResponse(0, responseOut); | 249 didReceiveResponse(0, responseOut); |
| 248 if (!m_loader) | 250 if (!m_loader) |
| 249 return; | 251 return; |
| 250 RefPtr<ResourceLoadInfo> resourceLoadInfo = responseOut.toResourceResponse()
.resourceLoadInfo(); | 252 RefPtr<ResourceLoadInfo> resourceLoadInfo = responseOut.toResourceResponse()
.resourceLoadInfo(); |
| 251 int64_t encodedDataLength = resourceLoadInfo ? resourceLoadInfo->encodedData
Length : WebURLLoaderClient::kUnknownEncodedDataLength; | 253 int64_t encodedDataLength = resourceLoadInfo ? resourceLoadInfo->encodedData
Length : WebURLLoaderClient::kUnknownEncodedDataLength; |
| 254 DCHECK_GE(responseOut.toResourceResponse().encodedBodyLength(), 0); |
| 252 | 255 |
| 253 // Follow the async case convention of not calling didReceiveData or | 256 // Follow the async case convention of not calling didReceiveData or |
| 254 // appending data to m_resource if the response body is empty. Copying the | 257 // appending data to m_resource if the response body is empty. Copying the |
| 255 // empty buffer is a noop in most cases, but is destructive in the case of | 258 // empty buffer is a noop in most cases, but is destructive in the case of |
| 256 // a 304, where it will overwrite the cached data we should be reusing. | 259 // a 304, where it will overwrite the cached data we should be reusing. |
| 257 if (dataOut.size()) { | 260 if (dataOut.size()) { |
| 258 m_fetcher->didReceiveData(m_resource.get(), dataOut.data(), dataOut.size
(), encodedDataLength); | 261 m_fetcher->didReceiveData(m_resource.get(), dataOut.data(), dataOut.size
(), encodedDataLength); |
| 259 m_resource->setResourceBuffer(dataOut); | 262 m_resource->setResourceBuffer(dataOut); |
| 260 } | 263 } |
| 261 didFinishLoading(0, monotonicallyIncreasingTime(), encodedDataLength); | 264 didFinishLoading(0, monotonicallyIncreasingTime(), encodedDataLength); |
| 262 } | 265 } |
| 263 | 266 |
| 264 } // namespace blink | 267 } // namespace blink |
| OLD | NEW |