diff options
-rw-r--r-- | chrome/browser/browsing_data/browsing_data_appcache_helper.cc | 16 | ||||
-rw-r--r-- | chrome/browser/browsing_data/browsing_data_appcache_helper.h | 6 | ||||
-rw-r--r-- | chrome/browser/extensions/data_deleter.cc | 12 | ||||
-rw-r--r-- | chrome/browser/extensions/data_deleter.h | 7 | ||||
-rw-r--r-- | content/browser/browser_context.cc | 32 | ||||
-rw-r--r-- | content/browser/resource_context_impl.cc | 50 |
6 files changed, 77 insertions, 46 deletions
diff --git a/chrome/browser/browsing_data/browsing_data_appcache_helper.cc b/chrome/browser/browsing_data/browsing_data_appcache_helper.cc index 50a62e3..ba19455 100644 --- a/chrome/browser/browsing_data/browsing_data_appcache_helper.cc +++ b/chrome/browser/browsing_data/browsing_data_appcache_helper.cc @@ -9,19 +9,19 @@ #include "chrome/browser/browsing_data/browsing_data_helper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/url_constants.h" +#include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" -#include "content/public/browser/resource_context.h" +#include "content/public/browser/storage_partition.h" #include "webkit/appcache/appcache_database.h" #include "webkit/appcache/appcache_storage.h" -using appcache::AppCacheDatabase; -using content::BrowserContext; using content::BrowserThread; -using content::ResourceContext; +using content::BrowserContext; BrowsingDataAppCacheHelper::BrowsingDataAppCacheHelper(Profile* profile) : is_fetching_(false), - resource_context_(profile->GetResourceContext()) { + appcache_service_(BrowserContext::GetDefaultStoragePartition(profile)-> + GetAppCacheService()) { } void BrowsingDataAppCacheHelper::StartFetching(const base::Closure& callback) { @@ -41,7 +41,7 @@ void BrowsingDataAppCacheHelper::StartFetching(const base::Closure& callback) { appcache_info_callback_.Reset( base::Bind(&BrowsingDataAppCacheHelper::OnFetchComplete, base::Unretained(this))); - ResourceContext::GetAppCacheService(resource_context_)-> + appcache_service_-> GetAllAppCacheInfo(info_collection_, appcache_info_callback_.callback()); } @@ -55,8 +55,8 @@ void BrowsingDataAppCacheHelper::DeleteAppCacheGroup( return; } - ResourceContext::GetAppCacheService(resource_context_)->DeleteAppCacheGroup( - manifest_url, net::CompletionCallback()); + appcache_service_->DeleteAppCacheGroup(manifest_url, + net::CompletionCallback()); } BrowsingDataAppCacheHelper::~BrowsingDataAppCacheHelper() {} diff --git a/chrome/browser/browsing_data/browsing_data_appcache_helper.h b/chrome/browser/browsing_data/browsing_data_appcache_helper.h index 3b17fbb..c29fa80 100644 --- a/chrome/browser/browsing_data/browsing_data_appcache_helper.h +++ b/chrome/browser/browsing_data/browsing_data_appcache_helper.h @@ -13,8 +13,8 @@ class Profile; -namespace content { -class ResourceContext; +namespace appcache { +class AppCacheService; } // This class fetches appcache information on behalf of a caller @@ -45,7 +45,7 @@ class BrowsingDataAppCacheHelper void OnFetchComplete(int rv); bool is_fetching_; - content::ResourceContext* resource_context_; + appcache::AppCacheService* appcache_service_; net::CancelableCompletionCallback appcache_info_callback_; DISALLOW_COPY_AND_ASSIGN(BrowsingDataAppCacheHelper); diff --git a/chrome/browser/extensions/data_deleter.cc b/chrome/browser/extensions/data_deleter.cc index 81f3d40..0abe1e0 100644 --- a/chrome/browser/extensions/data_deleter.cc +++ b/chrome/browser/extensions/data_deleter.cc @@ -14,7 +14,6 @@ #include "chrome/common/url_constants.h" #include "content/public/browser/dom_storage_context.h" #include "content/public/browser/indexed_db_context.h" -#include "content/public/browser/resource_context.h" #include "content/public/browser/storage_partition.h" #include "net/base/completion_callback.h" #include "net/base/net_errors.h" @@ -30,7 +29,6 @@ using content::BrowserContext; using content::BrowserThread; using content::DOMStorageContext; using content::IndexedDBContext; -using content::ResourceContext; namespace extensions { @@ -70,7 +68,8 @@ void DataDeleter::StartDeleting(Profile* profile, BrowserThread::IO, FROM_HERE, base::Bind(&DataDeleter::DeleteAppcachesOnIOThread, deleter, - profile->GetResourceContext())); + BrowserContext::GetDefaultStoragePartition(profile)-> + GetAppCacheService())); profile->GetExtensionService()->settings_frontend()-> DeleteStorageSoon(extension_id); @@ -138,10 +137,11 @@ void DataDeleter::DeleteFileSystemOnFileThread() { file_util::Delete(isolated_app_path_, true); } -void DataDeleter::DeleteAppcachesOnIOThread(ResourceContext* context) { +void DataDeleter::DeleteAppcachesOnIOThread( + appcache::AppCacheService* appcache_service) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); - ResourceContext::GetAppCacheService(context)->DeleteAppCachesForOrigin( - storage_origin_, net::CompletionCallback()); + appcache_service->DeleteAppCachesForOrigin(storage_origin_, + net::CompletionCallback()); } } // namespace extensions diff --git a/chrome/browser/extensions/data_deleter.h b/chrome/browser/extensions/data_deleter.h index a078795..6a87c3c 100644 --- a/chrome/browser/extensions/data_deleter.h +++ b/chrome/browser/extensions/data_deleter.h @@ -12,10 +12,13 @@ #include "content/public/browser/browser_thread.h" #include "googleurl/src/gurl.h" +namespace appcache { +class AppCacheService; +} + namespace content { class DOMStorageContext; class IndexedDBContext; -class ResourceContext; } namespace fileapi { @@ -80,7 +83,7 @@ class DataDeleter : public base::RefCountedThreadSafe< // Deletes appcache files for the extension. May only be called on the IO // thread. - void DeleteAppcachesOnIOThread(content::ResourceContext* resource_context); + void DeleteAppcachesOnIOThread(appcache::AppCacheService* appcache_service); // The ID of the extension being deleted. const std::string extension_id_; diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc index 4d1ef83..79cc086 100644 --- a/content/browser/browser_context.cc +++ b/content/browser/browser_context.cc @@ -22,6 +22,7 @@ #include "net/cookies/cookie_monster.h" #include "net/cookies/cookie_store.h" #include "net/url_request/url_request_context.h" +#include "net/url_request/url_request_context_getter.h" using base::UserDataAdapter; @@ -54,13 +55,15 @@ void PurgeDOMStorageContextInPartition(const std::string& id, GetDOMStorageContext()->PurgeMemory(); } -void SaveSessionStateOnIOThread(ResourceContext* resource_context) { - resource_context->GetRequestContext()->cookie_store()->GetCookieMonster()-> +void SaveSessionStateOnIOThread( + const scoped_refptr<net::URLRequestContextGetter>& context_getter, + appcache::AppCacheService* appcache_service) { + net::URLRequestContext* context = context_getter->GetURLRequestContext(); + context->cookie_store()->GetCookieMonster()-> SetForceKeepSessionState(); - resource_context->GetRequestContext()->server_bound_cert_service()-> - GetCertStore()->SetForceKeepSessionState(); - ResourceContext::GetAppCacheService(resource_context)-> - set_force_keep_session_state(); + context->server_bound_cert_service()->GetCertStore()-> + SetForceKeepSessionState(); + appcache_service->set_force_keep_session_state(); } void SaveSessionStateOnWebkitThread( @@ -68,8 +71,8 @@ void SaveSessionStateOnWebkitThread( indexed_db_context->SetForceKeepSessionState(); } -void PurgeMemoryOnIOThread(ResourceContext* resource_context) { - ResourceContext::GetAppCacheService(resource_context)->PurgeMemory(); +void PurgeMemoryOnIOThread(appcache::AppCacheService* appcache_service) { + appcache_service->PurgeMemory(); } } // namespace @@ -178,8 +181,11 @@ void BrowserContext::SaveSessionState(BrowserContext* browser_context) { if (BrowserThread::IsMessageLoopValid(BrowserThread::IO)) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - base::Bind(&SaveSessionStateOnIOThread, - browser_context->GetResourceContext())); + base::Bind( + &SaveSessionStateOnIOThread, + make_scoped_refptr(browser_context->GetRequestContext()), + BrowserContext::GetDefaultStoragePartition(browser_context)-> + GetAppCacheService())); } DOMStorageContextImpl* dom_storage_context_impl = @@ -201,8 +207,10 @@ void BrowserContext::PurgeMemory(BrowserContext* browser_context) { if (BrowserThread::IsMessageLoopValid(BrowserThread::IO)) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - base::Bind(&PurgeMemoryOnIOThread, - browser_context->GetResourceContext())); + base::Bind( + &PurgeMemoryOnIOThread, + BrowserContext::GetDefaultStoragePartition(browser_context)-> + GetAppCacheService())); } ForEachStoragePartition(browser_context, diff --git a/content/browser/resource_context_impl.cc b/content/browser/resource_context_impl.cc index 7e3555d..e59692f 100644 --- a/content/browser/resource_context_impl.cc +++ b/content/browser/resource_context_impl.cc @@ -154,8 +154,11 @@ class DeveloperProtocolHandler }; void InitializeRequestContext( - ResourceContext* resource_context, - scoped_refptr<net::URLRequestContextGetter> context_getter) { + scoped_refptr<net::URLRequestContextGetter> context_getter, + AppCacheService* appcache_service, + FileSystemContext* file_system_context, + ChromeBlobStorageContext* blob_storage_context) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); if (!context_getter) return; // tests. net::URLRequestContext* context = context_getter->GetURLRequestContext(); @@ -167,18 +170,17 @@ void InitializeRequestContext( bool set_protocol = job_factory->SetProtocolHandler( chrome::kBlobScheme, new BlobProtocolHandler( - GetBlobStorageControllerForResourceContext(resource_context), + blob_storage_context->controller(), BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE))); DCHECK(set_protocol); set_protocol = job_factory->SetProtocolHandler( chrome::kFileSystemScheme, - CreateFileSystemProtocolHandler( - GetFileSystemContextForResourceContext(resource_context))); + CreateFileSystemProtocolHandler(file_system_context)); DCHECK(set_protocol); - job_factory->AddInterceptor(new DeveloperProtocolHandler( - ResourceContext::GetAppCacheService(resource_context), - GetBlobStorageControllerForResourceContext(resource_context))); + job_factory->AddInterceptor( + new DeveloperProtocolHandler(appcache_service, + blob_storage_context->controller())); // TODO(jam): Add the ProtocolHandlerRegistryIntercepter here! } @@ -284,17 +286,35 @@ void InitializeResourceContext(BrowserContext* browser_context) { // TODO(creis): Do equivalent initializations for isolated app and isolated // media request contexts. if (BrowserThread::IsMessageLoopValid(BrowserThread::IO)) { + // TODO(ajwong): Move this whole block into + // StoragePartitionImplMap::PostCreateInitialization after we're certain + // this is safe to happen before InitializeResourceContext, and after we've + // found the right URLRequestContext for a storage partition. Otherwise, + // our isolated URLRequestContext getters will do the wrong thing for blobs, + // and FileSystemContext. + // + // http://crbug.com/85121 + BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - base::Bind(&InitializeRequestContext, - resource_context, - make_scoped_refptr(browser_context->GetRequestContext()))); + base::Bind( + &InitializeRequestContext, + make_scoped_refptr(browser_context->GetRequestContext()), + BrowserContext::GetAppCacheService(browser_context), + make_scoped_refptr( + BrowserContext::GetFileSystemContext(browser_context)), + make_scoped_refptr( + ChromeBlobStorageContext::GetFor(browser_context)))); BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - base::Bind(&InitializeRequestContext, - resource_context, - make_scoped_refptr( - browser_context->GetMediaRequestContext()))); + base::Bind( + &InitializeRequestContext, + make_scoped_refptr(browser_context->GetMediaRequestContext()), + BrowserContext::GetAppCacheService(browser_context), + make_scoped_refptr( + BrowserContext::GetFileSystemContext(browser_context)), + make_scoped_refptr( + ChromeBlobStorageContext::GetFor(browser_context)))); } } |