Commit a2bdc14d authored by jkarlin's avatar jkarlin Committed by Commit bot

[CacheStorage] Use URLRequestContextGetter instead of URLRequestContext

The CacheStorage classes shouldn't store raw pointers to
URLRequestContext. Use the getter class instead. This is part of a
cleanup to ensure that URLRequests are canceled before
URLRequestContext is deleted.

BUG=498563

Review URL: https://codereview.chromium.org/1174943004

Cr-Commit-Position: refs/heads/master@{#333783}
parent 598af4c2
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "net/base/directory_lister.h" #include "net/base/directory_lister.h"
#include "net/base/net_errors.h" #include "net/base/net_errors.h"
#include "net/url_request/url_request_context_getter.h"
#include "storage/browser/blob/blob_storage_context.h" #include "storage/browser/blob/blob_storage_context.h"
#include "storage/browser/quota/quota_manager_proxy.h" #include "storage/browser/quota/quota_manager_proxy.h"
...@@ -52,12 +53,12 @@ class CacheStorage::CacheLoader { ...@@ -52,12 +53,12 @@ class CacheStorage::CacheLoader {
CacheLoader( CacheLoader(
base::SequencedTaskRunner* cache_task_runner, base::SequencedTaskRunner* cache_task_runner,
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy, const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
base::WeakPtr<storage::BlobStorageContext> blob_context, base::WeakPtr<storage::BlobStorageContext> blob_context,
const GURL& origin) const GURL& origin)
: cache_task_runner_(cache_task_runner), : cache_task_runner_(cache_task_runner),
request_context_(request_context), request_context_getter_(request_context_getter),
quota_manager_proxy_(quota_manager_proxy), quota_manager_proxy_(quota_manager_proxy),
blob_context_(blob_context), blob_context_(blob_context),
origin_(origin) { origin_(origin) {
...@@ -90,7 +91,7 @@ class CacheStorage::CacheLoader { ...@@ -90,7 +91,7 @@ class CacheStorage::CacheLoader {
protected: protected:
scoped_refptr<base::SequencedTaskRunner> cache_task_runner_; scoped_refptr<base::SequencedTaskRunner> cache_task_runner_;
net::URLRequestContext* request_context_; scoped_refptr<net::URLRequestContextGetter> request_context_getter_;
scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy_; scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy_;
base::WeakPtr<storage::BlobStorageContext> blob_context_; base::WeakPtr<storage::BlobStorageContext> blob_context_;
GURL origin_; GURL origin_;
...@@ -104,7 +105,7 @@ class CacheStorage::MemoryLoader : public CacheStorage::CacheLoader { ...@@ -104,7 +105,7 @@ class CacheStorage::MemoryLoader : public CacheStorage::CacheLoader {
public: public:
MemoryLoader( MemoryLoader(
base::SequencedTaskRunner* cache_task_runner, base::SequencedTaskRunner* cache_task_runner,
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context,
const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy, const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
base::WeakPtr<storage::BlobStorageContext> blob_context, base::WeakPtr<storage::BlobStorageContext> blob_context,
const GURL& origin) const GURL& origin)
...@@ -117,7 +118,7 @@ class CacheStorage::MemoryLoader : public CacheStorage::CacheLoader { ...@@ -117,7 +118,7 @@ class CacheStorage::MemoryLoader : public CacheStorage::CacheLoader {
scoped_refptr<CacheStorageCache> CreateCache( scoped_refptr<CacheStorageCache> CreateCache(
const std::string& cache_name) override { const std::string& cache_name) override {
return CacheStorageCache::CreateMemoryCache( return CacheStorageCache::CreateMemoryCache(
origin_, request_context_, quota_manager_proxy_, blob_context_); origin_, request_context_getter_, quota_manager_proxy_, blob_context_);
} }
void CreateCache(const std::string& cache_name, void CreateCache(const std::string& cache_name,
...@@ -160,7 +161,7 @@ class CacheStorage::SimpleCacheLoader : public CacheStorage::CacheLoader { ...@@ -160,7 +161,7 @@ class CacheStorage::SimpleCacheLoader : public CacheStorage::CacheLoader {
SimpleCacheLoader( SimpleCacheLoader(
const base::FilePath& origin_path, const base::FilePath& origin_path,
base::SequencedTaskRunner* cache_task_runner, base::SequencedTaskRunner* cache_task_runner,
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context,
const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy, const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
base::WeakPtr<storage::BlobStorageContext> blob_context, base::WeakPtr<storage::BlobStorageContext> blob_context,
const GURL& origin) const GURL& origin)
...@@ -178,7 +179,7 @@ class CacheStorage::SimpleCacheLoader : public CacheStorage::CacheLoader { ...@@ -178,7 +179,7 @@ class CacheStorage::SimpleCacheLoader : public CacheStorage::CacheLoader {
return CacheStorageCache::CreatePersistentCache( return CacheStorageCache::CreatePersistentCache(
origin_, CreatePersistentCachePath(origin_path_, cache_name), origin_, CreatePersistentCachePath(origin_path_, cache_name),
request_context_, quota_manager_proxy_, blob_context_); request_context_getter_, quota_manager_proxy_, blob_context_);
} }
void CreateCache(const std::string& cache_name, void CreateCache(const std::string& cache_name,
...@@ -357,7 +358,7 @@ CacheStorage::CacheStorage( ...@@ -357,7 +358,7 @@ CacheStorage::CacheStorage(
const base::FilePath& path, const base::FilePath& path,
bool memory_only, bool memory_only,
base::SequencedTaskRunner* cache_task_runner, base::SequencedTaskRunner* cache_task_runner,
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context,
const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy, const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
base::WeakPtr<storage::BlobStorageContext> blob_context, base::WeakPtr<storage::BlobStorageContext> blob_context,
const GURL& origin) const GURL& origin)
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "base/callback.h" #include "base/callback.h"
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "content/browser/cache_storage/cache_storage_cache.h" #include "content/browser/cache_storage/cache_storage_cache.h"
...@@ -18,7 +19,7 @@ class SequencedTaskRunner; ...@@ -18,7 +19,7 @@ class SequencedTaskRunner;
} }
namespace net { namespace net {
class URLRequestContext; class URLRequestContextGetter;
} }
namespace storage { namespace storage {
...@@ -48,7 +49,7 @@ class CONTENT_EXPORT CacheStorage { ...@@ -48,7 +49,7 @@ class CONTENT_EXPORT CacheStorage {
const base::FilePath& origin_path, const base::FilePath& origin_path,
bool memory_only, bool memory_only,
base::SequencedTaskRunner* cache_task_runner, base::SequencedTaskRunner* cache_task_runner,
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy, const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
base::WeakPtr<storage::BlobStorageContext> blob_context, base::WeakPtr<storage::BlobStorageContext> blob_context,
const GURL& origin); const GURL& origin);
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#include "net/base/io_buffer.h" #include "net/base/io_buffer.h"
#include "net/base/net_errors.h" #include "net/base/net_errors.h"
#include "net/disk_cache/disk_cache.h" #include "net/disk_cache/disk_cache.h"
#include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_getter.h"
#include "storage/browser/blob/blob_data_builder.h" #include "storage/browser/blob/blob_data_builder.h"
#include "storage/browser/blob/blob_data_handle.h" #include "storage/browser/blob/blob_data_handle.h"
#include "storage/browser/blob/blob_storage_context.h" #include "storage/browser/blob/blob_storage_context.h"
...@@ -178,15 +178,20 @@ class CacheStorageCache::BlobReader : public net::URLRequest::Delegate { ...@@ -178,15 +178,20 @@ class CacheStorageCache::BlobReader : public net::URLRequest::Delegate {
weak_ptr_factory_(this) {} weak_ptr_factory_(this) {}
// |entry| is passed to the callback once complete. // |entry| is passed to the callback once complete.
void StreamBlobToCache(disk_cache::ScopedEntryPtr entry, void StreamBlobToCache(
net::URLRequestContext* request_context, disk_cache::ScopedEntryPtr entry,
scoped_ptr<storage::BlobDataHandle> blob_data_handle, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
const EntryAndBoolCallback& callback) { scoped_ptr<storage::BlobDataHandle> blob_data_handle,
const EntryAndBoolCallback& callback) {
DCHECK(entry); DCHECK(entry);
DCHECK(request_context_getter->GetURLRequestContext());
entry_ = entry.Pass(); entry_ = entry.Pass();
callback_ = callback; callback_ = callback;
blob_request_ = storage::BlobProtocolHandler::CreateBlobRequest( blob_request_ = storage::BlobProtocolHandler::CreateBlobRequest(
blob_data_handle.Pass(), request_context, this); blob_data_handle.Pass(), request_context_getter->GetURLRequestContext(),
this);
blob_request_->Start(); blob_request_->Start();
} }
...@@ -341,14 +346,14 @@ struct CacheStorageCache::PutContext { ...@@ -341,14 +346,14 @@ struct CacheStorageCache::PutContext {
scoped_ptr<ServiceWorkerResponse> response, scoped_ptr<ServiceWorkerResponse> response,
scoped_ptr<storage::BlobDataHandle> blob_data_handle, scoped_ptr<storage::BlobDataHandle> blob_data_handle,
const CacheStorageCache::ErrorCallback& callback, const CacheStorageCache::ErrorCallback& callback,
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy) const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy)
: origin(origin), : origin(origin),
request(request.Pass()), request(request.Pass()),
response(response.Pass()), response(response.Pass()),
blob_data_handle(blob_data_handle.Pass()), blob_data_handle(blob_data_handle.Pass()),
callback(callback), callback(callback),
request_context(request_context), request_context_getter(request_context_getter),
quota_manager_proxy(quota_manager_proxy), quota_manager_proxy(quota_manager_proxy),
cache_entry(NULL) {} cache_entry(NULL) {}
~PutContext() { ~PutContext() {
...@@ -362,7 +367,7 @@ struct CacheStorageCache::PutContext { ...@@ -362,7 +367,7 @@ struct CacheStorageCache::PutContext {
scoped_ptr<ServiceWorkerResponse> response; scoped_ptr<ServiceWorkerResponse> response;
scoped_ptr<storage::BlobDataHandle> blob_data_handle; scoped_ptr<storage::BlobDataHandle> blob_data_handle;
CacheStorageCache::ErrorCallback callback; CacheStorageCache::ErrorCallback callback;
net::URLRequestContext* request_context; scoped_refptr<net::URLRequestContextGetter> request_context_getter;
scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy; scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy;
// This isn't a scoped_ptr because the disk_cache needs an Entry** as input to // This isn't a scoped_ptr because the disk_cache needs an Entry** as input to
...@@ -375,11 +380,11 @@ struct CacheStorageCache::PutContext { ...@@ -375,11 +380,11 @@ struct CacheStorageCache::PutContext {
// static // static
scoped_refptr<CacheStorageCache> CacheStorageCache::CreateMemoryCache( scoped_refptr<CacheStorageCache> CacheStorageCache::CreateMemoryCache(
const GURL& origin, const GURL& origin,
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy, const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
base::WeakPtr<storage::BlobStorageContext> blob_context) { base::WeakPtr<storage::BlobStorageContext> blob_context) {
return make_scoped_refptr( return make_scoped_refptr(
new CacheStorageCache(origin, base::FilePath(), request_context, new CacheStorageCache(origin, base::FilePath(), request_context_getter,
quota_manager_proxy, blob_context)); quota_manager_proxy, blob_context));
} }
...@@ -387,11 +392,11 @@ scoped_refptr<CacheStorageCache> CacheStorageCache::CreateMemoryCache( ...@@ -387,11 +392,11 @@ scoped_refptr<CacheStorageCache> CacheStorageCache::CreateMemoryCache(
scoped_refptr<CacheStorageCache> CacheStorageCache::CreatePersistentCache( scoped_refptr<CacheStorageCache> CacheStorageCache::CreatePersistentCache(
const GURL& origin, const GURL& origin,
const base::FilePath& path, const base::FilePath& path,
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy, const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
base::WeakPtr<storage::BlobStorageContext> blob_context) { base::WeakPtr<storage::BlobStorageContext> blob_context) {
return make_scoped_refptr(new CacheStorageCache( return make_scoped_refptr(new CacheStorageCache(
origin, path, request_context, quota_manager_proxy, blob_context)); origin, path, request_context_getter, quota_manager_proxy, blob_context));
} }
CacheStorageCache::~CacheStorageCache() { CacheStorageCache::~CacheStorageCache() {
...@@ -554,12 +559,12 @@ int64 CacheStorageCache::MemoryBackedSize() const { ...@@ -554,12 +559,12 @@ int64 CacheStorageCache::MemoryBackedSize() const {
CacheStorageCache::CacheStorageCache( CacheStorageCache::CacheStorageCache(
const GURL& origin, const GURL& origin,
const base::FilePath& path, const base::FilePath& path,
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy, const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
base::WeakPtr<storage::BlobStorageContext> blob_context) base::WeakPtr<storage::BlobStorageContext> blob_context)
: origin_(origin), : origin_(origin),
path_(path), path_(path),
request_context_(request_context), request_context_getter_(request_context_getter),
quota_manager_proxy_(quota_manager_proxy), quota_manager_proxy_(quota_manager_proxy),
blob_storage_context_(blob_context), blob_storage_context_(blob_context),
backend_state_(BACKEND_UNINITIALIZED), backend_state_(BACKEND_UNINITIALIZED),
...@@ -794,7 +799,7 @@ void CacheStorageCache::Put(const CacheStorageBatchOperation& operation, ...@@ -794,7 +799,7 @@ void CacheStorageCache::Put(const CacheStorageBatchOperation& operation,
scoped_ptr<PutContext> put_context(new PutContext( scoped_ptr<PutContext> put_context(new PutContext(
origin_, request.Pass(), response.Pass(), blob_data_handle.Pass(), origin_, request.Pass(), response.Pass(), blob_data_handle.Pass(),
pending_callback, request_context_, quota_manager_proxy_)); pending_callback, request_context_getter_, quota_manager_proxy_));
scheduler_->ScheduleOperation(base::Bind(&CacheStorageCache::PutImpl, scheduler_->ScheduleOperation(base::Bind(&CacheStorageCache::PutImpl,
weak_ptr_factory_.GetWeakPtr(), weak_ptr_factory_.GetWeakPtr(),
...@@ -932,12 +937,13 @@ void CacheStorageCache::PutDidWriteHeaders(scoped_ptr<PutContext> put_context, ...@@ -932,12 +937,13 @@ void CacheStorageCache::PutDidWriteHeaders(scoped_ptr<PutContext> put_context,
BlobReader* reader_ptr = reader.get(); BlobReader* reader_ptr = reader.get();
// Grab some pointers before passing put_context in Bind. // Grab some pointers before passing put_context in Bind.
net::URLRequestContext* request_context = put_context->request_context; scoped_refptr<net::URLRequestContextGetter> request_context_getter =
put_context->request_context_getter;
scoped_ptr<storage::BlobDataHandle> blob_data_handle = scoped_ptr<storage::BlobDataHandle> blob_data_handle =
put_context->blob_data_handle.Pass(); put_context->blob_data_handle.Pass();
reader_ptr->StreamBlobToCache( reader_ptr->StreamBlobToCache(
entry.Pass(), request_context, blob_data_handle.Pass(), entry.Pass(), request_context_getter, blob_data_handle.Pass(),
base::Bind(&CacheStorageCache::PutDidWriteBlobToCache, base::Bind(&CacheStorageCache::PutDidWriteBlobToCache,
weak_ptr_factory_.GetWeakPtr(), weak_ptr_factory_.GetWeakPtr(),
base::Passed(put_context.Pass()), base::Passed(put_context.Pass()),
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
#include "net/disk_cache/disk_cache.h" #include "net/disk_cache/disk_cache.h"
namespace net { namespace net {
class URLRequestContext; class URLRequestContextGetter;
class IOBufferWithSize; class IOBufferWithSize;
} }
...@@ -50,13 +50,13 @@ class CONTENT_EXPORT CacheStorageCache ...@@ -50,13 +50,13 @@ class CONTENT_EXPORT CacheStorageCache
static scoped_refptr<CacheStorageCache> CreateMemoryCache( static scoped_refptr<CacheStorageCache> CreateMemoryCache(
const GURL& origin, const GURL& origin,
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy, const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
base::WeakPtr<storage::BlobStorageContext> blob_context); base::WeakPtr<storage::BlobStorageContext> blob_context);
static scoped_refptr<CacheStorageCache> CreatePersistentCache( static scoped_refptr<CacheStorageCache> CreatePersistentCache(
const GURL& origin, const GURL& origin,
const base::FilePath& path, const base::FilePath& path,
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy, const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
base::WeakPtr<storage::BlobStorageContext> blob_context); base::WeakPtr<storage::BlobStorageContext> blob_context);
...@@ -121,7 +121,7 @@ class CONTENT_EXPORT CacheStorageCache ...@@ -121,7 +121,7 @@ class CONTENT_EXPORT CacheStorageCache
CacheStorageCache( CacheStorageCache(
const GURL& origin, const GURL& origin,
const base::FilePath& path, const base::FilePath& path,
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy, const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
base::WeakPtr<storage::BlobStorageContext> blob_context); base::WeakPtr<storage::BlobStorageContext> blob_context);
...@@ -206,7 +206,7 @@ class CONTENT_EXPORT CacheStorageCache ...@@ -206,7 +206,7 @@ class CONTENT_EXPORT CacheStorageCache
GURL origin_; GURL origin_;
base::FilePath path_; base::FilePath path_;
net::URLRequestContext* request_context_; scoped_refptr<net::URLRequestContextGetter> request_context_getter_;
scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy_; scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy_;
base::WeakPtr<storage::BlobStorageContext> blob_storage_context_; base::WeakPtr<storage::BlobStorageContext> blob_storage_context_;
BackendState backend_state_; BackendState backend_state_;
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/files/scoped_temp_dir.h" #include "base/files/scoped_temp_dir.h"
#include "base/memory/ref_counted.h"
#include "base/run_loop.h" #include "base/run_loop.h"
#include "base/strings/string_split.h" #include "base/strings/string_split.h"
#include "base/thread_task_runner_handle.h" #include "base/thread_task_runner_handle.h"
...@@ -128,12 +129,12 @@ class TestCacheStorageCache : public CacheStorageCache { ...@@ -128,12 +129,12 @@ class TestCacheStorageCache : public CacheStorageCache {
TestCacheStorageCache( TestCacheStorageCache(
const GURL& origin, const GURL& origin,
const base::FilePath& path, const base::FilePath& path,
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy, const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
base::WeakPtr<storage::BlobStorageContext> blob_context) base::WeakPtr<storage::BlobStorageContext> blob_context)
: CacheStorageCache(origin, : CacheStorageCache(origin,
path, path,
request_context, request_context_getter,
quota_manager_proxy, quota_manager_proxy,
blob_context), blob_context),
delay_backend_creation_(false) {} delay_backend_creation_(false) {}
...@@ -204,7 +205,7 @@ class CacheStorageCacheTest : public testing::Test { ...@@ -204,7 +205,7 @@ class CacheStorageCacheTest : public testing::Test {
base::FilePath path = MemoryOnly() ? base::FilePath() : temp_dir_.path(); base::FilePath path = MemoryOnly() ? base::FilePath() : temp_dir_.path();
cache_ = make_scoped_refptr(new TestCacheStorageCache( cache_ = make_scoped_refptr(new TestCacheStorageCache(
GURL("http://example.com"), path, url_request_context, GURL("http://example.com"), path, browser_context_.GetRequestContext(),
quota_manager_proxy_, blob_storage_context->context()->AsWeakPtr())); quota_manager_proxy_, blob_storage_context->context()->AsWeakPtr()));
} }
......
...@@ -71,14 +71,13 @@ CacheStorageManager* CacheStorageContextImpl::cache_manager() const { ...@@ -71,14 +71,13 @@ CacheStorageManager* CacheStorageContextImpl::cache_manager() const {
} }
void CacheStorageContextImpl::SetBlobParametersForCache( void CacheStorageContextImpl::SetBlobParametersForCache(
net::URLRequestContextGetter* request_context, net::URLRequestContextGetter* request_context_getter,
ChromeBlobStorageContext* blob_storage_context) { ChromeBlobStorageContext* blob_storage_context) {
DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (cache_manager_ && request_context && blob_storage_context) { if (cache_manager_ && request_context_getter && blob_storage_context) {
cache_manager_->SetBlobParametersForCache( cache_manager_->SetBlobParametersForCache(
request_context->GetURLRequestContext(), request_context_getter, blob_storage_context->context()->AsWeakPtr());
blob_storage_context->context()->AsWeakPtr());
} }
} }
......
...@@ -59,7 +59,7 @@ class CONTENT_EXPORT CacheStorageContextImpl ...@@ -59,7 +59,7 @@ class CONTENT_EXPORT CacheStorageContextImpl
// function immediately returns without forwarding to the // function immediately returns without forwarding to the
// CacheStorageManager. // CacheStorageManager.
void SetBlobParametersForCache( void SetBlobParametersForCache(
net::URLRequestContextGetter* request_context, net::URLRequestContextGetter* request_context_getter,
ChromeBlobStorageContext* blob_storage_context); ChromeBlobStorageContext* blob_storage_context);
private: private:
......
...@@ -99,7 +99,7 @@ scoped_ptr<CacheStorageManager> CacheStorageManager::Create( ...@@ -99,7 +99,7 @@ scoped_ptr<CacheStorageManager> CacheStorageManager::Create(
old_manager->quota_manager_proxy_.get())); old_manager->quota_manager_proxy_.get()));
// These values may be NULL, in which case this will be called again later by // These values may be NULL, in which case this will be called again later by
// the dispatcher host per usual. // the dispatcher host per usual.
manager->SetBlobParametersForCache(old_manager->url_request_context(), manager->SetBlobParametersForCache(old_manager->url_request_context_getter(),
old_manager->blob_storage_context()); old_manager->blob_storage_context());
return manager.Pass(); return manager.Pass();
} }
...@@ -173,13 +173,14 @@ void CacheStorageManager::MatchAllCaches( ...@@ -173,13 +173,14 @@ void CacheStorageManager::MatchAllCaches(
} }
void CacheStorageManager::SetBlobParametersForCache( void CacheStorageManager::SetBlobParametersForCache(
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
base::WeakPtr<storage::BlobStorageContext> blob_storage_context) { base::WeakPtr<storage::BlobStorageContext> blob_storage_context) {
DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK_CURRENTLY_ON(BrowserThread::IO);
DCHECK(cache_storage_map_.empty()); DCHECK(cache_storage_map_.empty());
DCHECK(!request_context_ || request_context_ == request_context); DCHECK(!request_context_getter_ ||
request_context_getter_.get() == request_context_getter.get());
DCHECK(!blob_context_ || blob_context_.get() == blob_storage_context.get()); DCHECK(!blob_context_ || blob_context_.get() == blob_storage_context.get());
request_context_ = request_context; request_context_getter_ = request_context_getter;
blob_context_ = blob_storage_context; blob_context_ = blob_storage_context;
} }
...@@ -292,7 +293,6 @@ CacheStorageManager::CacheStorageManager( ...@@ -292,7 +293,6 @@ CacheStorageManager::CacheStorageManager(
: root_path_(path), : root_path_(path),
cache_task_runner_(cache_task_runner), cache_task_runner_(cache_task_runner),
quota_manager_proxy_(quota_manager_proxy), quota_manager_proxy_(quota_manager_proxy),
request_context_(NULL),
weak_ptr_factory_(this) { weak_ptr_factory_(this) {
if (quota_manager_proxy_.get()) { if (quota_manager_proxy_.get()) {
quota_manager_proxy_->RegisterClient( quota_manager_proxy_->RegisterClient(
...@@ -303,13 +303,13 @@ CacheStorageManager::CacheStorageManager( ...@@ -303,13 +303,13 @@ CacheStorageManager::CacheStorageManager(
CacheStorage* CacheStorageManager::FindOrCreateCacheStorage( CacheStorage* CacheStorageManager::FindOrCreateCacheStorage(
const GURL& origin) { const GURL& origin) {
DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK_CURRENTLY_ON(BrowserThread::IO);
DCHECK(request_context_); DCHECK(request_context_getter_);
CacheStorageMap::const_iterator it = cache_storage_map_.find(origin); CacheStorageMap::const_iterator it = cache_storage_map_.find(origin);
if (it == cache_storage_map_.end()) { if (it == cache_storage_map_.end()) {
MigrateOrigin(origin); MigrateOrigin(origin);
CacheStorage* cache_storage = new CacheStorage( CacheStorage* cache_storage = new CacheStorage(
ConstructOriginPath(root_path_, origin), IsMemoryBacked(), ConstructOriginPath(root_path_, origin), IsMemoryBacked(),
cache_task_runner_.get(), request_context_, quota_manager_proxy_, cache_task_runner_.get(), request_context_getter_, quota_manager_proxy_,
blob_context_, origin); blob_context_, origin);
// The map owns fetch_stores. // The map owns fetch_stores.
cache_storage_map_.insert(std::make_pair(origin, cache_storage)); cache_storage_map_.insert(std::make_pair(origin, cache_storage));
......
...@@ -11,8 +11,10 @@ ...@@ -11,8 +11,10 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/gtest_prod_util.h" #include "base/gtest_prod_util.h"
#include "base/memory/ref_counted.h"
#include "content/browser/cache_storage/cache_storage.h" #include "content/browser/cache_storage/cache_storage.h"
#include "content/common/content_export.h" #include "content/common/content_export.h"
#include "net/url_request/url_request_context_getter.h"
#include "storage/browser/quota/quota_client.h" #include "storage/browser/quota/quota_client.h"
#include "url/gurl.h" #include "url/gurl.h"
...@@ -20,10 +22,6 @@ namespace base { ...@@ -20,10 +22,6 @@ namespace base {
class SequencedTaskRunner; class SequencedTaskRunner;
} }
namespace net {
class URLRequestContext;
}
namespace storage { namespace storage {
class BlobStorageContext; class BlobStorageContext;
class QuotaManagerProxy; class QuotaManagerProxy;
...@@ -73,7 +71,7 @@ class CONTENT_EXPORT CacheStorageManager { ...@@ -73,7 +71,7 @@ class CONTENT_EXPORT CacheStorageManager {
// This must be called before creating any of the public *Cache functions // This must be called before creating any of the public *Cache functions
// above. // above.
void SetBlobParametersForCache( void SetBlobParametersForCache(
net::URLRequestContext* request_context, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
base::WeakPtr<storage::BlobStorageContext> blob_storage_context); base::WeakPtr<storage::BlobStorageContext> blob_storage_context);
base::WeakPtr<CacheStorageManager> AsWeakPtr() { base::WeakPtr<CacheStorageManager> AsWeakPtr() {
...@@ -110,8 +108,9 @@ class CONTENT_EXPORT CacheStorageManager { ...@@ -110,8 +108,9 @@ class CONTENT_EXPORT CacheStorageManager {
scoped_ptr<CacheStorage> cache_storage, scoped_ptr<CacheStorage> cache_storage,
base::WeakPtr<CacheStorageManager> cache_manager); base::WeakPtr<CacheStorageManager> cache_manager);
net::URLRequestContext* url_request_context() const { scoped_refptr<net::URLRequestContextGetter> url_request_context_getter()
return request_context_; const {
return request_context_getter_;
} }
base::WeakPtr<storage::BlobStorageContext> blob_storage_context() const { base::WeakPtr<storage::BlobStorageContext> blob_storage_context() const {
return blob_context_; return blob_context_;
...@@ -147,7 +146,7 @@ class CONTENT_EXPORT CacheStorageManager { ...@@ -147,7 +146,7 @@ class CONTENT_EXPORT CacheStorageManager {
// |cache_task_runner_|. // |cache_task_runner_|.
CacheStorageMap cache_storage_map_; CacheStorageMap cache_storage_map_;
net::URLRequestContext* request_context_; scoped_refptr<net::URLRequestContextGetter> request_context_getter_;
base::WeakPtr<storage::BlobStorageContext> blob_context_; base::WeakPtr<storage::BlobStorageContext> blob_context_;
base::WeakPtrFactory<CacheStorageManager> weak_ptr_factory_; base::WeakPtrFactory<CacheStorageManager> weak_ptr_factory_;
......
...@@ -41,8 +41,6 @@ class CacheStorageManagerTest : public testing::Test { ...@@ -41,8 +41,6 @@ class CacheStorageManagerTest : public testing::Test {
quota_manager_proxy_ = new MockQuotaManagerProxy( quota_manager_proxy_ = new MockQuotaManagerProxy(
nullptr, base::ThreadTaskRunnerHandle::Get().get()); nullptr, base::ThreadTaskRunnerHandle::Get().get());
net::URLRequestContext* url_request_context =
browser_context_.GetRequestContext()->GetURLRequestContext();
if (MemoryOnly()) { if (MemoryOnly()) {
cache_manager_ = CacheStorageManager::Create( cache_manager_ = CacheStorageManager::Create(
base::FilePath(), base::ThreadTaskRunnerHandle::Get(), base::FilePath(), base::ThreadTaskRunnerHandle::Get(),
...@@ -55,7 +53,8 @@ class CacheStorageManagerTest : public testing::Test { ...@@ -55,7 +53,8 @@ class CacheStorageManagerTest : public testing::Test {
} }
cache_manager_->SetBlobParametersForCache( cache_manager_->SetBlobParametersForCache(
url_request_context, blob_storage_context->context()->AsWeakPtr()); browser_context_.GetRequestContext(),
blob_storage_context->context()->AsWeakPtr());
} }
void TearDown() override { void TearDown() override {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment