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

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

Issue 2625823003: Reset ResourceLoader::m_loader in the pre-finalizer (Closed)
Patch Set: Created 3 years, 11 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
« no previous file with comments | « third_party/WebKit/Source/core/fetch/ResourceLoader.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 ResourceLoader::ResourceLoader(ResourceFetcher* fetcher, Resource* resource) 60 ResourceLoader::ResourceLoader(ResourceFetcher* fetcher, Resource* resource)
61 : m_fetcher(fetcher), 61 : m_fetcher(fetcher),
62 m_resource(resource), 62 m_resource(resource),
63 m_isCacheAwareLoadingActivated(false) { 63 m_isCacheAwareLoadingActivated(false) {
64 DCHECK(m_resource); 64 DCHECK(m_resource);
65 DCHECK(m_fetcher); 65 DCHECK(m_fetcher);
66 66
67 m_resource->setLoader(this); 67 m_resource->setLoader(this);
68 } 68 }
69 69
70 ResourceLoader::~ResourceLoader() { 70 ResourceLoader::~ResourceLoader() {}
71 DCHECK(!m_loader);
72 }
73 71
74 DEFINE_TRACE(ResourceLoader) { 72 DEFINE_TRACE(ResourceLoader) {
75 visitor->trace(m_fetcher); 73 visitor->trace(m_fetcher);
76 visitor->trace(m_resource); 74 visitor->trace(m_resource);
77 } 75 }
78 76
79 void ResourceLoader::start(const ResourceRequest& request) { 77 void ResourceLoader::start(const ResourceRequest& request) {
80 DCHECK(!m_loader); 78 DCHECK(!m_loader);
81 79
82 if (m_resource->options().synchronousPolicy == RequestSynchronously && 80 if (m_resource->options().synchronousPolicy == RequestSynchronously &&
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 // a 304, where it will overwrite the cached data we should be reusing. 484 // a 304, where it will overwrite the cached data we should be reusing.
487 if (dataOut.size()) { 485 if (dataOut.size()) {
488 context().dispatchDidReceiveData(m_resource->identifier(), dataOut.data(), 486 context().dispatchDidReceiveData(m_resource->identifier(), dataOut.data(),
489 dataOut.size()); 487 dataOut.size());
490 m_resource->setResourceBuffer(dataOut); 488 m_resource->setResourceBuffer(dataOut);
491 } 489 }
492 didFinishLoading(monotonicallyIncreasingTime(), encodedDataLength, 490 didFinishLoading(monotonicallyIncreasingTime(), encodedDataLength,
493 encodedBodyLength); 491 encodedBodyLength);
494 } 492 }
495 493
494 void ResourceLoader::dispose() {
495 m_loader = nullptr;
496 }
497
496 void ResourceLoader::activateCacheAwareLoadingIfNeeded( 498 void ResourceLoader::activateCacheAwareLoadingIfNeeded(
497 const ResourceRequest& request) { 499 const ResourceRequest& request) {
498 DCHECK(!m_isCacheAwareLoadingActivated); 500 DCHECK(!m_isCacheAwareLoadingActivated);
499 501
500 if (m_resource->options().cacheAwareLoadingEnabled != 502 if (m_resource->options().cacheAwareLoadingEnabled !=
501 IsCacheAwareLoadingEnabled) 503 IsCacheAwareLoadingEnabled)
502 return; 504 return;
503 505
504 // Synchronous requests are not supported. 506 // Synchronous requests are not supported.
505 if (m_resource->options().synchronousPolicy == RequestSynchronously) 507 if (m_resource->options().synchronousPolicy == RequestSynchronously)
506 return; 508 return;
507 509
508 // Don't activate on Resource revalidation. 510 // Don't activate on Resource revalidation.
509 if (m_resource->isCacheValidator()) 511 if (m_resource->isCacheValidator())
510 return; 512 return;
511 513
512 // Don't activate if cache policy is explicitly set. 514 // Don't activate if cache policy is explicitly set.
513 if (request.getCachePolicy() != WebCachePolicy::UseProtocolCachePolicy) 515 if (request.getCachePolicy() != WebCachePolicy::UseProtocolCachePolicy)
514 return; 516 return;
515 517
516 m_isCacheAwareLoadingActivated = true; 518 m_isCacheAwareLoadingActivated = true;
517 } 519 }
518 520
519 } // namespace blink 521 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/fetch/ResourceLoader.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698