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

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

Issue 9416070: Move creation and ownership of HostZoomMap to content instead of having every embedder do this. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix mac/cros browsertests Created 8 years, 10 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/resource_context_impl.h ('k') | content/browser/tab_contents/tab_contents.cc » ('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 "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
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
OLDNEW
« no previous file with comments | « content/browser/resource_context_impl.h ('k') | content/browser/tab_contents/tab_contents.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698