OLD | NEW |
(Empty) | |
| 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 |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "content/browser/resource_context_impl.h" |
| 6 |
| 7 #include "content/browser/appcache/chrome_appcache_service.h" |
| 8 #include "content/browser/chrome_blob_storage_context.h" |
| 9 #include "content/browser/file_system/browser_file_system_helper.h" |
| 10 #include "content/browser/in_process_webkit/webkit_context.h" |
| 11 #include "content/public/browser/browser_context.h" |
| 12 #include "content/public/browser/browser_thread.h" |
| 13 #include "webkit/database/database_tracker.h" |
| 14 |
| 15 // Key names on ResourceContext. |
| 16 static const char* kAppCacheServicKeyName = "content_appcache_service_tracker"; |
| 17 static const char* kBlobStorageContextKeyName = "content_blob_storage_context"; |
| 18 static const char* kDatabaseTrackerKeyName = "content_database_tracker"; |
| 19 static const char* kFileSystemContextKeyName = "content_file_system_context"; |
| 20 static const char* kWebKitContextKeyName = "content_webkit_context"; |
| 21 |
| 22 using appcache::AppCacheService; |
| 23 using base::UserDataAdapter; |
| 24 using content::BrowserThread; |
| 25 using fileapi::FileSystemContext; |
| 26 using webkit_blob::BlobStorageController; |
| 27 using webkit_database::DatabaseTracker; |
| 28 |
| 29 namespace content { |
| 30 |
| 31 AppCacheService* ResourceContext::GetAppCacheService(ResourceContext* context) { |
| 32 return UserDataAdapter<ChromeAppCacheService>::Get( |
| 33 context, kAppCacheServicKeyName); |
| 34 } |
| 35 |
| 36 FileSystemContext* ResourceContext::GetFileSystemContext( |
| 37 ResourceContext* resource_context) { |
| 38 return UserDataAdapter<FileSystemContext>::Get( |
| 39 resource_context, kFileSystemContextKeyName); |
| 40 } |
| 41 |
| 42 BlobStorageController* ResourceContext::GetBlobStorageController( |
| 43 ResourceContext* resource_context) { |
| 44 return GetChromeBlobStorageContextForResourceContext(resource_context)-> |
| 45 controller(); |
| 46 } |
| 47 |
| 48 DatabaseTracker* GetDatabaseTrackerForResourceContext( |
| 49 ResourceContext* resource_context) { |
| 50 return UserDataAdapter<DatabaseTracker>::Get( |
| 51 resource_context, kDatabaseTrackerKeyName); |
| 52 } |
| 53 |
| 54 WebKitContext* GetWebKitContextForResourceContext( |
| 55 ResourceContext* resource_context) { |
| 56 return UserDataAdapter<WebKitContext>::Get( |
| 57 resource_context, kWebKitContextKeyName); |
| 58 } |
| 59 |
| 60 ChromeBlobStorageContext* GetChromeBlobStorageContextForResourceContext( |
| 61 ResourceContext* resource_context) { |
| 62 return UserDataAdapter<ChromeBlobStorageContext>::Get( |
| 63 resource_context, kBlobStorageContextKeyName); |
| 64 } |
| 65 |
| 66 void InitializeResourceContext(BrowserContext* browser_context) { |
| 67 ResourceContext* resource_context = browser_context->GetResourceContext(); |
| 68 DCHECK(!resource_context->GetUserData(kWebKitContextKeyName)); |
| 69 resource_context->SetUserData( |
| 70 kWebKitContextKeyName, |
| 71 new UserDataAdapter<WebKitContext>( |
| 72 BrowserContext::GetWebKitContext(browser_context))); |
| 73 resource_context->SetUserData( |
| 74 kDatabaseTrackerKeyName, |
| 75 new UserDataAdapter<webkit_database::DatabaseTracker>( |
| 76 BrowserContext::GetDatabaseTracker(browser_context))); |
| 77 resource_context->SetUserData( |
| 78 kAppCacheServicKeyName, |
| 79 new UserDataAdapter<ChromeAppCacheService>( |
| 80 static_cast<ChromeAppCacheService*>( |
| 81 BrowserContext::GetAppCacheService(browser_context)))); |
| 82 resource_context->SetUserData( |
| 83 kFileSystemContextKeyName, |
| 84 new UserDataAdapter<FileSystemContext>( |
| 85 BrowserContext::GetFileSystemContext(browser_context))); |
| 86 resource_context->SetUserData( |
| 87 kBlobStorageContextKeyName, |
| 88 new UserDataAdapter<ChromeBlobStorageContext>( |
| 89 ChromeBlobStorageContext::GetFor(browser_context))); |
| 90 } |
| 91 |
| 92 } // namespace content |
OLD | NEW |