summaryrefslogtreecommitdiffstats
path: root/content/browser
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-10 20:02:40 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-10 20:02:40 +0000
commitecd3ad2092793f90be0154e7e8d9ba3c9fe84fc5 (patch)
treed30af04aee615221c06789344f052bdc7c2e0b1b /content/browser
parent69137249668c73c284d8fb0de018538466d6d825 (diff)
downloadchromium_src-ecd3ad2092793f90be0154e7e8d9ba3c9fe84fc5.zip
chromium_src-ecd3ad2092793f90be0154e7e8d9ba3c9fe84fc5.tar.gz
chromium_src-ecd3ad2092793f90be0154e7e8d9ba3c9fe84fc5.tar.bz2
Ensure static BrowserContext methods only get called on the UI thread. Also ensure ResourceContext methods only get called on the IO thread.
Review URL: https://chromiumcodereview.appspot.com/10764015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145944 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser')
-rw-r--r--content/browser/browser_context.cc5
-rw-r--r--content/browser/resource_context_impl.cc7
2 files changed, 12 insertions, 0 deletions
diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc
index 522ccd1..19dcf23 100644
--- a/content/browser/browser_context.cc
+++ b/content/browser/browser_context.cc
@@ -44,6 +44,10 @@ namespace content {
namespace {
void CreateQuotaManagerAndClients(BrowserContext* context) {
+ // Ensure that these methods are called on the UI thread, except for unittests
+ // where a UI thread might not have been created.
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) ||
+ !BrowserThread::IsMessageLoopValid(BrowserThread::UI));
if (context->GetUserData(kQuotaManagerKeyName)) {
DCHECK(context->GetUserData(kDatabaseTrackerKeyName));
DCHECK(context->GetUserData(kDOMStorageContextKeyName));
@@ -143,6 +147,7 @@ DOMStorageContextImpl* GetDOMStorageContextImpl(BrowserContext* context) {
DownloadManager* BrowserContext::GetDownloadManager(
BrowserContext* context) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
if (!context->GetUserData(kDownloadManagerKeyName)) {
ResourceDispatcherHostImpl* rdh = ResourceDispatcherHostImpl::Get();
DCHECK(rdh);
diff --git a/content/browser/resource_context_impl.cc b/content/browser/resource_context_impl.cc
index f47824d..ef9b75d 100644
--- a/content/browser/resource_context_impl.cc
+++ b/content/browser/resource_context_impl.cc
@@ -175,6 +175,7 @@ void InitializeRequestContext(
} // namespace
AppCacheService* ResourceContext::GetAppCacheService(ResourceContext* context) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
return UserDataAdapter<ChromeAppCacheService>::Get(
context, kAppCacheServicKeyName);
}
@@ -194,35 +195,41 @@ ResourceContext::~ResourceContext() {
BlobStorageController* GetBlobStorageControllerForResourceContext(
ResourceContext* resource_context) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
return GetChromeBlobStorageContextForResourceContext(resource_context)->
controller();
}
DatabaseTracker* GetDatabaseTrackerForResourceContext(
ResourceContext* resource_context) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
return UserDataAdapter<DatabaseTracker>::Get(
resource_context, kDatabaseTrackerKeyName);
}
FileSystemContext* GetFileSystemContextForResourceContext(
ResourceContext* resource_context) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
return UserDataAdapter<FileSystemContext>::Get(
resource_context, kFileSystemContextKeyName);
}
IndexedDBContextImpl* GetIndexedDBContextForResourceContext(
ResourceContext* resource_context) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
return UserDataAdapter<IndexedDBContextImpl>::Get(
resource_context, kIndexedDBContextKeyName);
}
ChromeBlobStorageContext* GetChromeBlobStorageContextForResourceContext(
ResourceContext* resource_context) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
return UserDataAdapter<ChromeBlobStorageContext>::Get(
resource_context, kBlobStorageContextKeyName);
}
HostZoomMap* GetHostZoomMapForResourceContext(ResourceContext* context) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
return static_cast<NonOwningZoomData*>(
context->GetUserData(kHostZoomMapKeyName))->host_zoom_map();
}