summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/browsing_data/browsing_data_appcache_helper.cc16
-rw-r--r--chrome/browser/browsing_data/browsing_data_appcache_helper.h6
-rw-r--r--chrome/browser/extensions/data_deleter.cc12
-rw-r--r--chrome/browser/extensions/data_deleter.h7
-rw-r--r--content/browser/browser_context.cc32
-rw-r--r--content/browser/resource_context_impl.cc50
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))));
}
}