OLD | NEW |
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 "content/browser/appcache/chrome_appcache_service.h" | 7 #include "content/browser/appcache/chrome_appcache_service.h" |
8 #include "content/browser/chrome_blob_storage_context.h" | 8 #include "content/browser/chrome_blob_storage_context.h" |
9 #include "content/browser/file_system/browser_file_system_helper.h" | 9 #include "content/browser/file_system/browser_file_system_helper.h" |
10 #include "content/browser/in_process_webkit/webkit_context.h" | 10 #include "content/browser/in_process_webkit/webkit_context.h" |
| 11 #include "content/browser/host_zoom_map_impl.h" |
11 #include "content/public/browser/browser_context.h" | 12 #include "content/public/browser/browser_context.h" |
12 #include "content/public/browser/browser_thread.h" | 13 #include "content/public/browser/browser_thread.h" |
13 #include "webkit/database/database_tracker.h" | 14 #include "webkit/database/database_tracker.h" |
14 | 15 |
15 // Key names on ResourceContext. | 16 // Key names on ResourceContext. |
16 static const char* kAppCacheServicKeyName = "content_appcache_service_tracker"; | 17 static const char* kAppCacheServicKeyName = "content_appcache_service_tracker"; |
17 static const char* kBlobStorageContextKeyName = "content_blob_storage_context"; | 18 static const char* kBlobStorageContextKeyName = "content_blob_storage_context"; |
18 static const char* kDatabaseTrackerKeyName = "content_database_tracker"; | 19 static const char* kDatabaseTrackerKeyName = "content_database_tracker"; |
19 static const char* kFileSystemContextKeyName = "content_file_system_context"; | 20 static const char* kFileSystemContextKeyName = "content_file_system_context"; |
| 21 static const char* kHostZoomMapKeyName = "content_host_zoom_map"; |
20 static const char* kWebKitContextKeyName = "content_webkit_context"; | 22 static const char* kWebKitContextKeyName = "content_webkit_context"; |
21 | 23 |
22 using appcache::AppCacheService; | 24 using appcache::AppCacheService; |
23 using base::UserDataAdapter; | 25 using base::UserDataAdapter; |
24 using content::BrowserThread; | 26 using content::BrowserThread; |
25 using fileapi::FileSystemContext; | 27 using fileapi::FileSystemContext; |
26 using webkit_blob::BlobStorageController; | 28 using webkit_blob::BlobStorageController; |
27 using webkit_database::DatabaseTracker; | 29 using webkit_database::DatabaseTracker; |
28 | 30 |
29 namespace content { | 31 namespace content { |
30 | 32 |
| 33 class NonOwningZoomData : public base::SupportsUserData::Data { |
| 34 public: |
| 35 explicit NonOwningZoomData(HostZoomMap* hzm) : host_zoom_map_(hzm) {} |
| 36 HostZoomMap* host_zoom_map() { return host_zoom_map_; } |
| 37 |
| 38 private: |
| 39 HostZoomMap* host_zoom_map_; |
| 40 }; |
| 41 |
31 AppCacheService* ResourceContext::GetAppCacheService(ResourceContext* context) { | 42 AppCacheService* ResourceContext::GetAppCacheService(ResourceContext* context) { |
32 return UserDataAdapter<ChromeAppCacheService>::Get( | 43 return UserDataAdapter<ChromeAppCacheService>::Get( |
33 context, kAppCacheServicKeyName); | 44 context, kAppCacheServicKeyName); |
34 } | 45 } |
35 | 46 |
36 FileSystemContext* ResourceContext::GetFileSystemContext( | 47 FileSystemContext* ResourceContext::GetFileSystemContext( |
37 ResourceContext* resource_context) { | 48 ResourceContext* resource_context) { |
38 return UserDataAdapter<FileSystemContext>::Get( | 49 return UserDataAdapter<FileSystemContext>::Get( |
39 resource_context, kFileSystemContextKeyName); | 50 resource_context, kFileSystemContextKeyName); |
40 } | 51 } |
(...skipping 15 matching lines...) Expand all Loading... |
56 return UserDataAdapter<WebKitContext>::Get( | 67 return UserDataAdapter<WebKitContext>::Get( |
57 resource_context, kWebKitContextKeyName); | 68 resource_context, kWebKitContextKeyName); |
58 } | 69 } |
59 | 70 |
60 ChromeBlobStorageContext* GetChromeBlobStorageContextForResourceContext( | 71 ChromeBlobStorageContext* GetChromeBlobStorageContextForResourceContext( |
61 ResourceContext* resource_context) { | 72 ResourceContext* resource_context) { |
62 return UserDataAdapter<ChromeBlobStorageContext>::Get( | 73 return UserDataAdapter<ChromeBlobStorageContext>::Get( |
63 resource_context, kBlobStorageContextKeyName); | 74 resource_context, kBlobStorageContextKeyName); |
64 } | 75 } |
65 | 76 |
| 77 HostZoomMap* GetHostZoomMapForResourceContext(ResourceContext* context) { |
| 78 return static_cast<NonOwningZoomData*>( |
| 79 context->GetUserData(kHostZoomMapKeyName))->host_zoom_map(); |
| 80 } |
| 81 |
66 void InitializeResourceContext(BrowserContext* browser_context) { | 82 void InitializeResourceContext(BrowserContext* browser_context) { |
67 ResourceContext* resource_context = browser_context->GetResourceContext(); | 83 ResourceContext* resource_context = browser_context->GetResourceContext(); |
68 DCHECK(!resource_context->GetUserData(kWebKitContextKeyName)); | 84 DCHECK(!resource_context->GetUserData(kWebKitContextKeyName)); |
69 resource_context->SetUserData( | 85 resource_context->SetUserData( |
70 kWebKitContextKeyName, | 86 kWebKitContextKeyName, |
71 new UserDataAdapter<WebKitContext>( | 87 new UserDataAdapter<WebKitContext>( |
72 BrowserContext::GetWebKitContext(browser_context))); | 88 BrowserContext::GetWebKitContext(browser_context))); |
73 resource_context->SetUserData( | 89 resource_context->SetUserData( |
74 kDatabaseTrackerKeyName, | 90 kDatabaseTrackerKeyName, |
75 new UserDataAdapter<webkit_database::DatabaseTracker>( | 91 new UserDataAdapter<webkit_database::DatabaseTracker>( |
76 BrowserContext::GetDatabaseTracker(browser_context))); | 92 BrowserContext::GetDatabaseTracker(browser_context))); |
77 resource_context->SetUserData( | 93 resource_context->SetUserData( |
78 kAppCacheServicKeyName, | 94 kAppCacheServicKeyName, |
79 new UserDataAdapter<ChromeAppCacheService>( | 95 new UserDataAdapter<ChromeAppCacheService>( |
80 static_cast<ChromeAppCacheService*>( | 96 static_cast<ChromeAppCacheService*>( |
81 BrowserContext::GetAppCacheService(browser_context)))); | 97 BrowserContext::GetAppCacheService(browser_context)))); |
82 resource_context->SetUserData( | 98 resource_context->SetUserData( |
83 kFileSystemContextKeyName, | 99 kFileSystemContextKeyName, |
84 new UserDataAdapter<FileSystemContext>( | 100 new UserDataAdapter<FileSystemContext>( |
85 BrowserContext::GetFileSystemContext(browser_context))); | 101 BrowserContext::GetFileSystemContext(browser_context))); |
86 resource_context->SetUserData( | 102 resource_context->SetUserData( |
87 kBlobStorageContextKeyName, | 103 kBlobStorageContextKeyName, |
88 new UserDataAdapter<ChromeBlobStorageContext>( | 104 new UserDataAdapter<ChromeBlobStorageContext>( |
89 ChromeBlobStorageContext::GetFor(browser_context))); | 105 ChromeBlobStorageContext::GetFor(browser_context))); |
| 106 |
| 107 // This object is owned by the BrowserContext and not ResourceContext, so |
| 108 // store a non-owning pointer here. |
| 109 resource_context->SetUserData( |
| 110 kHostZoomMapKeyName, |
| 111 new NonOwningZoomData( |
| 112 HostZoomMap::GetForBrowserContext(browser_context))); |
90 } | 113 } |
91 | 114 |
92 } // namespace content | 115 } // namespace content |
OLD | NEW |