Index: content/browser/storage_partition_impl.h |
diff --git a/content/browser/storage_partition_impl.h b/content/browser/storage_partition_impl.h |
index 9ab7fc3bffc6099d8519042f72e2a2f7e09d2c8c..c4f0bfb1d8fc52e362872137ab839b10292d8e99 100644 |
--- a/content/browser/storage_partition_impl.h |
+++ b/content/browser/storage_partition_impl.h |
@@ -21,10 +21,14 @@ class StoragePartitionImpl : public StoragePartition { |
// TODO(ajwong): Break the direct dependency on |context|. We only |
// need 3 pieces of info from it. |
- static StoragePartitionImpl* Create(BrowserContext* context, |
- const FilePath& partition_path); |
+ static StoragePartitionImpl* Create( |
+ BrowserContext* context, |
+ const FilePath& partition_path); |
// StoragePartition interface. |
+ virtual FilePath GetPath() OVERRIDE; |
+ virtual net::URLRequestContextGetter* GetURLRequestContext() OVERRIDE; |
+ virtual net::URLRequestContextGetter* GetMediaURLRequestContext() OVERRIDE; |
virtual quota::QuotaManager* GetQuotaManager() OVERRIDE; |
virtual ChromeAppCacheService* GetAppCacheService() OVERRIDE; |
virtual fileapi::FileSystemContext* GetFileSystemContext() OVERRIDE; |
@@ -33,15 +37,35 @@ class StoragePartitionImpl : public StoragePartition { |
virtual IndexedDBContextImpl* GetIndexedDBContext() OVERRIDE; |
private: |
- StoragePartitionImpl(const FilePath& partition_path, |
- quota::QuotaManager* quota_manager, |
- ChromeAppCacheService* appcache_service, |
- fileapi::FileSystemContext* filesystem_context, |
- webkit_database::DatabaseTracker* database_tracker, |
- DOMStorageContextImpl* dom_storage_context, |
- IndexedDBContextImpl* indexed_db_context); |
+ friend class StoragePartitionImplMap; |
+ |
+ StoragePartitionImpl( |
+ const FilePath& partition_path, |
+ quota::QuotaManager* quota_manager, |
+ ChromeAppCacheService* appcache_service, |
+ fileapi::FileSystemContext* filesystem_context, |
+ webkit_database::DatabaseTracker* database_tracker, |
+ DOMStorageContextImpl* dom_storage_context, |
+ IndexedDBContextImpl* indexed_db_context); |
+ |
+ // Used by StoragePartitionImplMap. |
+ // |
+ // TODO(ajwong): These should be taken in the constructor and in Create() but |
+ // because the URLRequestContextGetter still lives in Profile with a tangle |
+ // initialization, if we call try to retrieve the URLRequestContextGetter() |
+ // before the default StoragePartition is created, we end up reentering the |
+ // construction and double-initializing. For now, we retain the legacy |
+ // behavior while allowing StoragePartitionImpl to expose these accessors by |
+ // letting StoragePartitionImplMap call these two private settings at the |
+ // appropriate time. These should move back into the constructor once |
+ // URLRequestContextGetter's lifetime is sorted out. |
+ void SetURLRequestContext(net::URLRequestContextGetter* url_request_context); |
+ void SetMediaURLRequestContext( |
+ net::URLRequestContextGetter* media_url_request_context); |
FilePath partition_path_; |
+ scoped_refptr<net::URLRequestContextGetter> url_request_context_; |
+ scoped_refptr<net::URLRequestContextGetter> media_url_request_context_; |
scoped_refptr<quota::QuotaManager> quota_manager_; |
scoped_refptr<ChromeAppCacheService> appcache_service_; |
scoped_refptr<fileapi::FileSystemContext> filesystem_context_; |