diff options
author | ajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-28 08:35:53 +0000 |
---|---|---|
committer | ajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-28 08:35:53 +0000 |
commit | 6939075a255c45985101d42ffe9559fb20b3dbe4 (patch) | |
tree | 2fae2c2318814fe555d5f837f977505fe212940d /content | |
parent | 2bdebfb24e5df6728a2176a853b6a2383562c49a (diff) | |
download | chromium_src-6939075a255c45985101d42ffe9559fb20b3dbe4.zip chromium_src-6939075a255c45985101d42ffe9559fb20b3dbe4.tar.gz chromium_src-6939075a255c45985101d42ffe9559fb20b3dbe4.tar.bz2 |
Remove silly uses of ResourceContext that unnecessarily violate the Law of Demeter.
BUG=85121
Review URL: https://chromiumcodereview.appspot.com/10878041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153642 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r-- | content/browser/browser_context.cc | 32 | ||||
-rw-r--r-- | content/browser/resource_context_impl.cc | 50 |
2 files changed, 55 insertions, 27 deletions
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)))); } } |