Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(297)

Side by Side Diff: third_party/WebKit/Source/core/fetch/ResourceLoader.cpp

Issue 2537753002: Remove WebURLLoader* argument from WebURLLoaderClient methods (Closed)
Patch Set: a Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
109 CHECK_EQ(m_resource->options().synchronousPolicy, RequestAsynchronously); 109 CHECK_EQ(m_resource->options().synchronousPolicy, RequestAsynchronously);
110 m_loader.reset(); 110 m_loader.reset();
111 start(request, loadingTaskRunner, defersLoading); 111 start(request, loadingTaskRunner, defersLoading);
112 } 112 }
113 113
114 void ResourceLoader::setDefersLoading(bool defers) { 114 void ResourceLoader::setDefersLoading(bool defers) {
115 DCHECK(m_loader); 115 DCHECK(m_loader);
116 m_loader->setDefersLoading(defers); 116 m_loader->setDefersLoading(defers);
117 } 117 }
118 118
119 void ResourceLoader::didDownloadData(WebURLLoader*, 119 void ResourceLoader::didDownloadData(int length, int encodedDataLength) {
120 int length,
121 int encodedDataLength) {
122 m_fetcher->didDownloadData(m_resource.get(), length, encodedDataLength); 120 m_fetcher->didDownloadData(m_resource.get(), length, encodedDataLength);
123 m_resource->didDownloadData(length); 121 m_resource->didDownloadData(length);
124 } 122 }
125 123
126 void ResourceLoader::didChangePriority(ResourceLoadPriority loadPriority, 124 void ResourceLoader::didChangePriority(ResourceLoadPriority loadPriority,
127 int intraPriorityValue) { 125 int intraPriorityValue) {
128 if (m_loader) { 126 if (m_loader) {
129 m_loader->didChangePriority( 127 m_loader->didChangePriority(
130 static_cast<WebURLRequest::Priority>(loadPriority), intraPriorityValue); 128 static_cast<WebURLRequest::Priority>(loadPriority), intraPriorityValue);
131 } 129 }
132 } 130 }
133 131
134 void ResourceLoader::cancel() { 132 void ResourceLoader::cancel() {
135 didFail( 133 didFail(
136 ResourceError::cancelledError(m_resource->lastResourceRequest().url())); 134 ResourceError::cancelledError(m_resource->lastResourceRequest().url()));
137 } 135 }
138 136
139 void ResourceLoader::cancelForRedirectAccessCheckError(const KURL& newURL) { 137 void ResourceLoader::cancelForRedirectAccessCheckError(const KURL& newURL) {
140 m_resource->willNotFollowRedirect(); 138 m_resource->willNotFollowRedirect();
141 139
142 if (m_loader) 140 if (m_loader)
143 didFail(ResourceError::cancelledDueToAccessCheckError(newURL)); 141 didFail(ResourceError::cancelledDueToAccessCheckError(newURL));
144 } 142 }
145 143
146 bool ResourceLoader::willFollowRedirect( 144 bool ResourceLoader::willFollowRedirect(
147 WebURLLoader*,
148 WebURLRequest& passedNewRequest, 145 WebURLRequest& passedNewRequest,
149 const WebURLResponse& passedRedirectResponse) { 146 const WebURLResponse& passedRedirectResponse) {
150 DCHECK(!passedNewRequest.isNull()); 147 DCHECK(!passedNewRequest.isNull());
151 DCHECK(!passedRedirectResponse.isNull()); 148 DCHECK(!passedRedirectResponse.isNull());
152 149
153 if (m_isCacheAwareLoadingActivated) { 150 if (m_isCacheAwareLoadingActivated) {
154 // Fail as cache miss if cached response is a redirect. 151 // Fail as cache miss if cached response is a redirect.
155 didFail( 152 didFail(
156 ResourceError::cacheMissError(m_resource->lastResourceRequest().url())); 153 ResourceError::cacheMissError(m_resource->lastResourceRequest().url()));
157 return false; 154 return false;
(...skipping 25 matching lines...) Expand all
183 } 180 }
184 181
185 if (!m_resource->willFollowRedirect(newRequest, redirectResponse)) { 182 if (!m_resource->willFollowRedirect(newRequest, redirectResponse)) {
186 cancelForRedirectAccessCheckError(newRequest.url()); 183 cancelForRedirectAccessCheckError(newRequest.url());
187 return false; 184 return false;
188 } 185 }
189 186
190 return true; 187 return true;
191 } 188 }
192 189
193 void ResourceLoader::didReceiveCachedMetadata(WebURLLoader*, 190 void ResourceLoader::didReceiveCachedMetadata(const char* data, int length) {
194 const char* data,
195 int length) {
196 m_resource->setSerializedCachedMetadata(data, length); 191 m_resource->setSerializedCachedMetadata(data, length);
197 } 192 }
198 193
199 void ResourceLoader::didSendData(WebURLLoader*, 194 void ResourceLoader::didSendData(unsigned long long bytesSent,
200 unsigned long long bytesSent,
201 unsigned long long totalBytesToBeSent) { 195 unsigned long long totalBytesToBeSent) {
202 m_resource->didSendData(bytesSent, totalBytesToBeSent); 196 m_resource->didSendData(bytesSent, totalBytesToBeSent);
203 } 197 }
204 198
205 void ResourceLoader::didReceiveResponse( 199 void ResourceLoader::didReceiveResponse(
206 WebURLLoader*,
207 const WebURLResponse& response, 200 const WebURLResponse& response,
208 std::unique_ptr<WebDataConsumerHandle> handle) { 201 std::unique_ptr<WebDataConsumerHandle> handle) {
209 DCHECK(!response.isNull()); 202 DCHECK(!response.isNull());
210 m_fetcher->didReceiveResponse(m_resource.get(), response.toResourceResponse(), 203 m_fetcher->didReceiveResponse(m_resource.get(), response.toResourceResponse(),
211 std::move(handle)); 204 std::move(handle));
212 } 205 }
213 206
214 void ResourceLoader::didReceiveResponse(WebURLLoader* loader, 207 void ResourceLoader::didReceiveResponse(const WebURLResponse& response) {
215 const WebURLResponse& response) { 208 didReceiveResponse(response, nullptr);
216 didReceiveResponse(loader, response, nullptr);
217 } 209 }
218 210
219 void ResourceLoader::didReceiveData(WebURLLoader*, 211 void ResourceLoader::didReceiveData(const char* data,
220 const char* data,
221 int length, 212 int length,
222 int encodedDataLength) { 213 int encodedDataLength) {
223 CHECK_GE(length, 0); 214 CHECK_GE(length, 0);
224 m_fetcher->didReceiveData(m_resource.get(), data, length, encodedDataLength); 215 m_fetcher->didReceiveData(m_resource.get(), data, length, encodedDataLength);
225 m_resource->addToDecodedBodyLength(length); 216 m_resource->addToDecodedBodyLength(length);
226 m_resource->appendData(data, length); 217 m_resource->appendData(data, length);
227 } 218 }
228 219
229 void ResourceLoader::didFinishLoadingFirstPartInMultipart() { 220 void ResourceLoader::didFinishLoadingFirstPartInMultipart() {
230 m_fetcher->didFinishLoading(m_resource.get(), 0, 221 m_fetcher->didFinishLoading(m_resource.get(), 0,
231 ResourceFetcher::DidFinishFirstPartInMultipart); 222 ResourceFetcher::DidFinishFirstPartInMultipart);
232 } 223 }
233 224
234 void ResourceLoader::didFinishLoading(WebURLLoader*, 225 void ResourceLoader::didFinishLoading(double finishTime,
235 double finishTime,
236 int64_t encodedDataLength, 226 int64_t encodedDataLength,
237 int64_t encodedBodyLength) { 227 int64_t encodedBodyLength) {
238 m_resource->setEncodedDataLength(encodedDataLength); 228 m_resource->setEncodedDataLength(encodedDataLength);
239 m_resource->addToEncodedBodyLength(encodedBodyLength); 229 m_resource->addToEncodedBodyLength(encodedBodyLength);
240 m_loader.reset(); 230 m_loader.reset();
241 m_fetcher->didFinishLoading(m_resource.get(), finishTime, 231 m_fetcher->didFinishLoading(m_resource.get(), finishTime,
242 ResourceFetcher::DidFinishLoading); 232 ResourceFetcher::DidFinishLoading);
243 } 233 }
244 234
245 void ResourceLoader::didFail(WebURLLoader*, 235 void ResourceLoader::didFail(const WebURLError& error,
246 const WebURLError& error,
247 int64_t encodedDataLength, 236 int64_t encodedDataLength,
248 int64_t encodedBodyLength) { 237 int64_t encodedBodyLength) {
249 m_resource->setEncodedDataLength(encodedDataLength); 238 m_resource->setEncodedDataLength(encodedDataLength);
250 m_resource->addToEncodedBodyLength(encodedBodyLength); 239 m_resource->addToEncodedBodyLength(encodedBodyLength);
251 didFail(error); 240 didFail(error);
252 } 241 }
253 242
254 void ResourceLoader::didFail(const ResourceError& error) { 243 void ResourceLoader::didFail(const ResourceError& error) {
255 if (m_isCacheAwareLoadingActivated && error.isCacheMiss() && 244 if (m_isCacheAwareLoadingActivated && error.isCacheMiss() &&
256 m_fetcher->context().shouldLoadNewResource(m_resource->getType())) { 245 m_fetcher->context().shouldLoadNewResource(m_resource->getType())) {
(...skipping 22 matching lines...) Expand all
279 int64_t encodedDataLength = WebURLLoaderClient::kUnknownEncodedDataLength; 268 int64_t encodedDataLength = WebURLLoaderClient::kUnknownEncodedDataLength;
280 int64_t encodedBodyLength = 0; 269 int64_t encodedBodyLength = 0;
281 m_loader->loadSynchronously(requestIn, responseOut, errorOut, dataOut, 270 m_loader->loadSynchronously(requestIn, responseOut, errorOut, dataOut,
282 encodedDataLength, encodedBodyLength); 271 encodedDataLength, encodedBodyLength);
283 272
284 // A message dispatched while synchronously fetching the resource 273 // A message dispatched while synchronously fetching the resource
285 // can bring about the cancellation of this load. 274 // can bring about the cancellation of this load.
286 if (!m_loader) 275 if (!m_loader)
287 return; 276 return;
288 if (errorOut.reason) { 277 if (errorOut.reason) {
289 didFail(0, errorOut, encodedDataLength, encodedBodyLength); 278 didFail(errorOut, encodedDataLength, encodedBodyLength);
290 return; 279 return;
291 } 280 }
292 didReceiveResponse(0, responseOut); 281 didReceiveResponse(responseOut);
293 if (!m_loader) 282 if (!m_loader)
294 return; 283 return;
295 DCHECK_GE(responseOut.toResourceResponse().encodedBodyLength(), 0); 284 DCHECK_GE(responseOut.toResourceResponse().encodedBodyLength(), 0);
296 285
297 // Follow the async case convention of not calling didReceiveData or 286 // Follow the async case convention of not calling didReceiveData or
298 // appending data to m_resource if the response body is empty. Copying the 287 // appending data to m_resource if the response body is empty. Copying the
299 // empty buffer is a noop in most cases, but is destructive in the case of 288 // empty buffer is a noop in most cases, but is destructive in the case of
300 // a 304, where it will overwrite the cached data we should be reusing. 289 // a 304, where it will overwrite the cached data we should be reusing.
301 if (dataOut.size()) { 290 if (dataOut.size()) {
302 m_fetcher->didReceiveData(m_resource.get(), dataOut.data(), dataOut.size(), 291 m_fetcher->didReceiveData(m_resource.get(), dataOut.data(), dataOut.size(),
303 encodedDataLength); 292 encodedDataLength);
304 m_resource->setResourceBuffer(dataOut); 293 m_resource->setResourceBuffer(dataOut);
305 } 294 }
306 didFinishLoading(0, monotonicallyIncreasingTime(), encodedDataLength, 295 didFinishLoading(monotonicallyIncreasingTime(), encodedDataLength,
307 encodedBodyLength); 296 encodedBodyLength);
308 } 297 }
309 298
310 void ResourceLoader::activateCacheAwareLoadingIfNeeded( 299 void ResourceLoader::activateCacheAwareLoadingIfNeeded(
311 const ResourceRequest& request) { 300 const ResourceRequest& request) {
312 DCHECK(!m_isCacheAwareLoadingActivated); 301 DCHECK(!m_isCacheAwareLoadingActivated);
313 302
314 if (m_resource->options().cacheAwareLoadingEnabled != 303 if (m_resource->options().cacheAwareLoadingEnabled !=
315 IsCacheAwareLoadingEnabled) 304 IsCacheAwareLoadingEnabled)
316 return; 305 return;
317 306
318 // Synchronous requests are not supported. 307 // Synchronous requests are not supported.
319 if (m_resource->options().synchronousPolicy == RequestSynchronously) 308 if (m_resource->options().synchronousPolicy == RequestSynchronously)
320 return; 309 return;
321 310
322 // Don't activate on Resource revalidation. 311 // Don't activate on Resource revalidation.
323 if (m_resource->isCacheValidator()) 312 if (m_resource->isCacheValidator())
324 return; 313 return;
325 314
326 // Don't activate if cache policy is explicitly set. 315 // Don't activate if cache policy is explicitly set.
327 if (request.getCachePolicy() != WebCachePolicy::UseProtocolCachePolicy) 316 if (request.getCachePolicy() != WebCachePolicy::UseProtocolCachePolicy)
328 return; 317 return;
329 318
330 m_isCacheAwareLoadingActivated = true; 319 m_isCacheAwareLoadingActivated = true;
331 } 320 }
332 321
333 } // namespace blink 322 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/fetch/ResourceLoader.h ('k') | third_party/WebKit/Source/core/loader/PingLoader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698