summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-28 08:35:53 +0000
committerajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-28 08:35:53 +0000
commit6939075a255c45985101d42ffe9559fb20b3dbe4 (patch)
tree2fae2c2318814fe555d5f837f977505fe212940d /content
parent2bdebfb24e5df6728a2176a853b6a2383562c49a (diff)
downloadchromium_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.cc32
-rw-r--r--content/browser/resource_context_impl.cc50
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))));
}
}