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

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

Issue 561813003: Prepare blink to unify definitions of load completion (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 3 months 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 | Annotate | Revision Log
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 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 void ResourceLoader::didFinishLoadingOnePart(double finishTime, int64 encodedDat aLength) 222 void ResourceLoader::didFinishLoadingOnePart(double finishTime, int64 encodedDat aLength)
223 { 223 {
224 // If load has been cancelled after finishing (which could happen with a 224 // If load has been cancelled after finishing (which could happen with a
225 // JavaScript that changes the window location), do nothing. 225 // JavaScript that changes the window location), do nothing.
226 if (m_state == Terminated) 226 if (m_state == Terminated)
227 return; 227 return;
228 228
229 if (m_notifiedLoadComplete) 229 if (m_notifiedLoadComplete)
230 return; 230 return;
231 m_notifiedLoadComplete = true; 231 m_notifiedLoadComplete = true;
232 m_requestCountTracker.clear();
232 m_host->didFinishLoading(m_resource, finishTime, encodedDataLength); 233 m_host->didFinishLoading(m_resource, finishTime, encodedDataLength);
233 } 234 }
234 235
235 void ResourceLoader::didChangePriority(ResourceLoadPriority loadPriority, int in traPriorityValue) 236 void ResourceLoader::didChangePriority(ResourceLoadPriority loadPriority, int in traPriorityValue)
236 { 237 {
237 if (m_loader) { 238 if (m_loader) {
238 m_host->didChangeLoadingPriority(m_resource, loadPriority, intraPriority Value); 239 m_host->didChangeLoadingPriority(m_resource, loadPriority, intraPriority Value);
239 ASSERT(m_state != Terminated); 240 ASSERT(m_state != Terminated);
240 m_loader->didChangePriority(static_cast<blink::WebURLRequest::Priority>( loadPriority), intraPriorityValue); 241 m_loader->didChangePriority(static_cast<blink::WebURLRequest::Priority>( loadPriority), intraPriorityValue);
241 } 242 }
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 m_resource->setResourceError(nonNullError); 276 m_resource->setResourceError(nonNullError);
276 277
277 if (m_loader) { 278 if (m_loader) {
278 m_connectionState = ConnectionStateCanceled; 279 m_connectionState = ConnectionStateCanceled;
279 m_loader->cancel(); 280 m_loader->cancel();
280 m_loader.clear(); 281 m_loader.clear();
281 } 282 }
282 283
283 if (!m_notifiedLoadComplete) { 284 if (!m_notifiedLoadComplete) {
284 m_notifiedLoadComplete = true; 285 m_notifiedLoadComplete = true;
286 m_requestCountTracker.clear();
285 m_host->didFailLoading(m_resource, nonNullError); 287 m_host->didFailLoading(m_resource, nonNullError);
286 } 288 }
287 289
288 if (m_state == Finishing) 290 if (m_state == Finishing)
289 m_resource->error(Resource::LoadError); 291 m_resource->error(Resource::LoadError);
290 if (m_state != Terminated) 292 if (m_state != Terminated)
291 releaseResources(); 293 releaseResources();
292 } 294 }
293 295
294 void ResourceLoader::willSendRequest(blink::WebURLLoader*, blink::WebURLRequest& passedRequest, const blink::WebURLResponse& passedRedirectResponse) 296 void ResourceLoader::willSendRequest(blink::WebURLLoader*, blink::WebURLRequest& passedRequest, const blink::WebURLResponse& passedRedirectResponse)
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 } 402 }
401 if (m_state == Terminated) 403 if (m_state == Terminated)
402 return; 404 return;
403 405
404 if (m_resource->response().httpStatusCode() < 400 || m_resource->shouldIgnor eHTTPStatusCodeErrors()) 406 if (m_resource->response().httpStatusCode() < 400 || m_resource->shouldIgnor eHTTPStatusCodeErrors())
405 return; 407 return;
406 m_state = Finishing; 408 m_state = Finishing;
407 409
408 if (!m_notifiedLoadComplete) { 410 if (!m_notifiedLoadComplete) {
409 m_notifiedLoadComplete = true; 411 m_notifiedLoadComplete = true;
412 m_requestCountTracker.clear();
410 m_host->didFailLoading(m_resource, ResourceError::cancelledError(m_reque st.url())); 413 m_host->didFailLoading(m_resource, ResourceError::cancelledError(m_reque st.url()));
411 } 414 }
412 415
413 ASSERT(m_state != Terminated); 416 ASSERT(m_state != Terminated);
414 m_resource->error(Resource::LoadError); 417 m_resource->error(Resource::LoadError);
415 cancel(); 418 cancel();
416 } 419 }
417 420
418 void ResourceLoader::didReceiveData(blink::WebURLLoader*, const char* data, int length, int encodedDataLength) 421 void ResourceLoader::didReceiveData(blink::WebURLLoader*, const char* data, int length, int encodedDataLength)
419 { 422 {
(...skipping 25 matching lines...) Expand all
445 RELEASE_ASSERT(m_connectionState == ConnectionStateReceivedResponse || m_con nectionState == ConnectionStateReceivingData); 448 RELEASE_ASSERT(m_connectionState == ConnectionStateReceivedResponse || m_con nectionState == ConnectionStateReceivingData);
446 m_connectionState = ConnectionStateFinishedLoading; 449 m_connectionState = ConnectionStateFinishedLoading;
447 if (m_state != Initialized) 450 if (m_state != Initialized)
448 return; 451 return;
449 ASSERT(m_state != Terminated); 452 ASSERT(m_state != Terminated);
450 WTF_LOG(ResourceLoading, "Received '%s'.", m_resource->url().string().latin1 ().data()); 453 WTF_LOG(ResourceLoading, "Received '%s'.", m_resource->url().string().latin1 ().data());
451 454
452 RefPtrWillBeRawPtr<ResourceLoader> protect(this); 455 RefPtrWillBeRawPtr<ResourceLoader> protect(this);
453 ResourcePtr<Resource> protectResource(m_resource); 456 ResourcePtr<Resource> protectResource(m_resource);
454 m_state = Finishing; 457 m_state = Finishing;
458 m_resource->setLoadFinishTime(finishTime);
455 didFinishLoadingOnePart(finishTime, encodedDataLength); 459 didFinishLoadingOnePart(finishTime, encodedDataLength);
456 if (m_state == Terminated) 460 if (m_state == Terminated)
457 return; 461 return;
458 m_resource->finish(finishTime); 462 m_resource->finish();
459 463
460 // If the load has been cancelled by a delegate in response to didFinishLoad (), do not release 464 // If the load has been cancelled by a delegate in response to didFinishLoad (), do not release
461 // the resources a second time, they have been released by cancel. 465 // the resources a second time, they have been released by cancel.
462 if (m_state == Terminated) 466 if (m_state == Terminated)
463 return; 467 return;
464 releaseResources(); 468 releaseResources();
465 } 469 }
466 470
467 void ResourceLoader::didFail(blink::WebURLLoader*, const blink::WebURLError& err or) 471 void ResourceLoader::didFail(blink::WebURLLoader*, const blink::WebURLError& err or)
468 { 472 {
469 m_connectionState = ConnectionStateFailed; 473 m_connectionState = ConnectionStateFailed;
470 ASSERT(m_state != Terminated); 474 ASSERT(m_state != Terminated);
471 WTF_LOG(ResourceLoading, "Failed to load '%s'.\n", m_resource->url().string( ).latin1().data()); 475 WTF_LOG(ResourceLoading, "Failed to load '%s'.\n", m_resource->url().string( ).latin1().data());
472 476
473 RefPtrWillBeRawPtr<ResourceLoader> protect(this); 477 RefPtrWillBeRawPtr<ResourceLoader> protect(this);
474 RefPtrWillBeRawPtr<ResourceLoaderHost> protectHost(m_host.get()); 478 RefPtrWillBeRawPtr<ResourceLoaderHost> protectHost(m_host.get());
475 ResourcePtr<Resource> protectResource(m_resource); 479 ResourcePtr<Resource> protectResource(m_resource);
476 m_state = Finishing; 480 m_state = Finishing;
477 m_resource->setResourceError(error); 481 m_resource->setResourceError(error);
478 482
479 if (!m_notifiedLoadComplete) { 483 if (!m_notifiedLoadComplete) {
480 m_notifiedLoadComplete = true; 484 m_notifiedLoadComplete = true;
485 m_requestCountTracker.clear();
481 m_host->didFailLoading(m_resource, error); 486 m_host->didFailLoading(m_resource, error);
482 } 487 }
483 if (m_state == Terminated) 488 if (m_state == Terminated)
484 return; 489 return;
485 490
486 m_resource->error(Resource::LoadError); 491 m_resource->error(Resource::LoadError);
487 492
488 if (m_state == Terminated) 493 if (m_state == Terminated)
489 return; 494 return;
490 495
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 didFinishLoading(0, monotonicallyIncreasingTime(), encodedDataLength); 536 didFinishLoading(0, monotonicallyIncreasingTime(), encodedDataLength);
532 } 537 }
533 538
534 ResourceRequest& ResourceLoader::applyOptions(ResourceRequest& request) const 539 ResourceRequest& ResourceLoader::applyOptions(ResourceRequest& request) const
535 { 540 {
536 request.setAllowStoredCredentials(m_options.allowCredentials == AllowStoredC redentials); 541 request.setAllowStoredCredentials(m_options.allowCredentials == AllowStoredC redentials);
537 return request; 542 return request;
538 } 543 }
539 544
540 } 545 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698