Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(662)

Side by Side Diff: content/browser/resource_context_impl.cc

Issue 10764015: Ensure static BrowserContext methods only get called on the UI thread. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix unittests Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/browser/browser_context.cc ('k') | content/public/browser/browser_context.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/resource_context_impl.h" 5 #include "content/browser/resource_context_impl.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "content/browser/appcache/chrome_appcache_service.h" 8 #include "content/browser/appcache/chrome_appcache_service.h"
9 #include "content/browser/fileapi/browser_file_system_helper.h" 9 #include "content/browser/fileapi/browser_file_system_helper.h"
10 #include "content/browser/fileapi/chrome_blob_storage_context.h" 10 #include "content/browser/fileapi/chrome_blob_storage_context.h"
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 job_factory->AddInterceptor(new DeveloperProtocolHandler( 168 job_factory->AddInterceptor(new DeveloperProtocolHandler(
169 ResourceContext::GetAppCacheService(resource_context), 169 ResourceContext::GetAppCacheService(resource_context),
170 GetBlobStorageControllerForResourceContext(resource_context))); 170 GetBlobStorageControllerForResourceContext(resource_context)));
171 171
172 // TODO(jam): Add the ProtocolHandlerRegistryIntercepter here! 172 // TODO(jam): Add the ProtocolHandlerRegistryIntercepter here!
173 } 173 }
174 174
175 } // namespace 175 } // namespace
176 176
177 AppCacheService* ResourceContext::GetAppCacheService(ResourceContext* context) { 177 AppCacheService* ResourceContext::GetAppCacheService(ResourceContext* context) {
178 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
178 return UserDataAdapter<ChromeAppCacheService>::Get( 179 return UserDataAdapter<ChromeAppCacheService>::Get(
179 context, kAppCacheServicKeyName); 180 context, kAppCacheServicKeyName);
180 } 181 }
181 182
182 ResourceContext::ResourceContext() { 183 ResourceContext::ResourceContext() {
183 if (ResourceDispatcherHostImpl::Get()) 184 if (ResourceDispatcherHostImpl::Get())
184 ResourceDispatcherHostImpl::Get()->AddResourceContext(this); 185 ResourceDispatcherHostImpl::Get()->AddResourceContext(this);
185 } 186 }
186 187
187 ResourceContext::~ResourceContext() { 188 ResourceContext::~ResourceContext() {
188 ResourceDispatcherHostImpl* rdhi = ResourceDispatcherHostImpl::Get(); 189 ResourceDispatcherHostImpl* rdhi = ResourceDispatcherHostImpl::Get();
189 if (rdhi) { 190 if (rdhi) {
190 rdhi->CancelRequestsForContext(this); 191 rdhi->CancelRequestsForContext(this);
191 rdhi->RemoveResourceContext(this); 192 rdhi->RemoveResourceContext(this);
192 } 193 }
193 } 194 }
194 195
195 BlobStorageController* GetBlobStorageControllerForResourceContext( 196 BlobStorageController* GetBlobStorageControllerForResourceContext(
196 ResourceContext* resource_context) { 197 ResourceContext* resource_context) {
198 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
197 return GetChromeBlobStorageContextForResourceContext(resource_context)-> 199 return GetChromeBlobStorageContextForResourceContext(resource_context)->
198 controller(); 200 controller();
199 } 201 }
200 202
201 DatabaseTracker* GetDatabaseTrackerForResourceContext( 203 DatabaseTracker* GetDatabaseTrackerForResourceContext(
202 ResourceContext* resource_context) { 204 ResourceContext* resource_context) {
205 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
203 return UserDataAdapter<DatabaseTracker>::Get( 206 return UserDataAdapter<DatabaseTracker>::Get(
204 resource_context, kDatabaseTrackerKeyName); 207 resource_context, kDatabaseTrackerKeyName);
205 } 208 }
206 209
207 FileSystemContext* GetFileSystemContextForResourceContext( 210 FileSystemContext* GetFileSystemContextForResourceContext(
208 ResourceContext* resource_context) { 211 ResourceContext* resource_context) {
212 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
209 return UserDataAdapter<FileSystemContext>::Get( 213 return UserDataAdapter<FileSystemContext>::Get(
210 resource_context, kFileSystemContextKeyName); 214 resource_context, kFileSystemContextKeyName);
211 } 215 }
212 216
213 IndexedDBContextImpl* GetIndexedDBContextForResourceContext( 217 IndexedDBContextImpl* GetIndexedDBContextForResourceContext(
214 ResourceContext* resource_context) { 218 ResourceContext* resource_context) {
219 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
215 return UserDataAdapter<IndexedDBContextImpl>::Get( 220 return UserDataAdapter<IndexedDBContextImpl>::Get(
216 resource_context, kIndexedDBContextKeyName); 221 resource_context, kIndexedDBContextKeyName);
217 } 222 }
218 223
219 ChromeBlobStorageContext* GetChromeBlobStorageContextForResourceContext( 224 ChromeBlobStorageContext* GetChromeBlobStorageContextForResourceContext(
220 ResourceContext* resource_context) { 225 ResourceContext* resource_context) {
226 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
221 return UserDataAdapter<ChromeBlobStorageContext>::Get( 227 return UserDataAdapter<ChromeBlobStorageContext>::Get(
222 resource_context, kBlobStorageContextKeyName); 228 resource_context, kBlobStorageContextKeyName);
223 } 229 }
224 230
225 HostZoomMap* GetHostZoomMapForResourceContext(ResourceContext* context) { 231 HostZoomMap* GetHostZoomMapForResourceContext(ResourceContext* context) {
232 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
226 return static_cast<NonOwningZoomData*>( 233 return static_cast<NonOwningZoomData*>(
227 context->GetUserData(kHostZoomMapKeyName))->host_zoom_map(); 234 context->GetUserData(kHostZoomMapKeyName))->host_zoom_map();
228 } 235 }
229 236
230 void InitializeResourceContext(BrowserContext* browser_context) { 237 void InitializeResourceContext(BrowserContext* browser_context) {
231 ResourceContext* resource_context = browser_context->GetResourceContext(); 238 ResourceContext* resource_context = browser_context->GetResourceContext();
232 DCHECK(!resource_context->GetUserData(kIndexedDBContextKeyName)); 239 DCHECK(!resource_context->GetUserData(kIndexedDBContextKeyName));
233 240
234 resource_context->SetUserData( 241 resource_context->SetUserData(
235 kIndexedDBContextKeyName, 242 kIndexedDBContextKeyName,
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 BrowserThread::PostTask( 279 BrowserThread::PostTask(
273 BrowserThread::IO, FROM_HERE, 280 BrowserThread::IO, FROM_HERE,
274 base::Bind(&InitializeRequestContext, 281 base::Bind(&InitializeRequestContext,
275 resource_context, 282 resource_context,
276 make_scoped_refptr( 283 make_scoped_refptr(
277 browser_context->GetRequestContextForMedia()))); 284 browser_context->GetRequestContextForMedia())));
278 } 285 }
279 } 286 }
280 287
281 } // namespace content 288 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/browser_context.cc ('k') | content/public/browser/browser_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698