diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-10 20:02:40 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-10 20:02:40 +0000 |
commit | ecd3ad2092793f90be0154e7e8d9ba3c9fe84fc5 (patch) | |
tree | d30af04aee615221c06789344f052bdc7c2e0b1b /content/browser | |
parent | 69137249668c73c284d8fb0de018538466d6d825 (diff) | |
download | chromium_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.cc | 5 | ||||
-rw-r--r-- | content/browser/resource_context_impl.cc | 7 |
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(); } |