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

Side by Side Diff: chrome/browser/profiles/profile_impl.cc

Issue 9419033: Move creation of BrowserContext objects that live in content to content, instead of depending on th… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: 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
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 "chrome/browser/profiles/profile_impl.h" 5 #include "chrome/browser/profiles/profile_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/environment.h" 10 #include "base/environment.h"
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 #include "chrome/browser/web_resource/promo_resource_service.h" 85 #include "chrome/browser/web_resource/promo_resource_service.h"
86 #include "chrome/browser/webdata/web_data_service.h" 86 #include "chrome/browser/webdata/web_data_service.h"
87 #include "chrome/common/chrome_constants.h" 87 #include "chrome/common/chrome_constants.h"
88 #include "chrome/common/chrome_notification_types.h" 88 #include "chrome/common/chrome_notification_types.h"
89 #include "chrome/common/chrome_paths_internal.h" 89 #include "chrome/common/chrome_paths_internal.h"
90 #include "chrome/common/chrome_switches.h" 90 #include "chrome/common/chrome_switches.h"
91 #include "chrome/common/extensions/extension_permission_set.h" 91 #include "chrome/common/extensions/extension_permission_set.h"
92 #include "chrome/common/json_pref_store.h" 92 #include "chrome/common/json_pref_store.h"
93 #include "chrome/common/pref_names.h" 93 #include "chrome/common/pref_names.h"
94 #include "chrome/common/url_constants.h" 94 #include "chrome/common/url_constants.h"
95 #include "content/browser/appcache/chrome_appcache_service.h"
96 #include "content/browser/chrome_blob_storage_context.h"
97 #include "content/browser/file_system/browser_file_system_helper.h"
98 #include "content/browser/in_process_webkit/webkit_context.h" 95 #include "content/browser/in_process_webkit/webkit_context.h"
99 #include "content/browser/speech/speech_input_manager.h" 96 #include "content/browser/speech/speech_input_manager.h"
100 #include "content/public/browser/browser_thread.h" 97 #include "content/public/browser/browser_thread.h"
101 #include "content/public/browser/host_zoom_map.h" 98 #include "content/public/browser/host_zoom_map.h"
102 #include "content/public/browser/notification_service.h" 99 #include "content/public/browser/notification_service.h"
103 #include "content/public/browser/user_metrics.h" 100 #include "content/public/browser/user_metrics.h"
104 #include "grit/locale_settings.h" 101 #include "grit/locale_settings.h"
105 #include "net/base/transport_security_state.h" 102 #include "net/base/transport_security_state.h"
106 #include "net/http/http_server_properties.h" 103 #include "net/http/http_server_properties.h"
107 #include "webkit/database/database_tracker.h" 104 #include "webkit/database/database_tracker.h"
108 #include "webkit/quota/quota_manager.h"
109 105
110 #if defined(OS_WIN) 106 #if defined(OS_WIN)
111 #include "chrome/browser/instant/promo_counter.h" 107 #include "chrome/browser/instant/promo_counter.h"
112 #include "chrome/browser/password_manager/password_store_win.h" 108 #include "chrome/browser/password_manager/password_store_win.h"
113 #include "chrome/installer/util/install_util.h" 109 #include "chrome/installer/util/install_util.h"
114 #elif defined(OS_MACOSX) 110 #elif defined(OS_MACOSX)
115 #include "chrome/browser/keychain_mac.h" 111 #include "chrome/browser/keychain_mac.h"
116 #include "chrome/browser/mock_keychain_mac.h" 112 #include "chrome/browser/mock_keychain_mac.h"
117 #include "chrome/browser/password_manager/password_store_mac.h" 113 #include "chrome/browser/password_manager/password_store_mac.h"
118 #elif defined(OS_CHROMEOS) 114 #elif defined(OS_CHROMEOS)
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 } 538 }
543 539
544 ProfileImpl::~ProfileImpl() { 540 ProfileImpl::~ProfileImpl() {
545 content::NotificationService::current()->Notify( 541 content::NotificationService::current()->Notify(
546 chrome::NOTIFICATION_PROFILE_DESTROYED, 542 chrome::NOTIFICATION_PROFILE_DESTROYED,
547 content::Source<Profile>(this), 543 content::Source<Profile>(this),
548 content::NotificationService::NoDetails()); 544 content::NotificationService::NoDetails());
549 // Save the session state if we're going to restore the session during the 545 // Save the session state if we're going to restore the session during the
550 // next startup. 546 // next startup.
551 SessionStartupPref pref = SessionStartupPref::GetStartupPref(this); 547 SessionStartupPref pref = SessionStartupPref::GetStartupPref(this);
552 if (pref.type == SessionStartupPref::LAST) 548 if (pref.type == SessionStartupPref::LAST) {
553 SaveSessionState(); 549 SaveSessionState();
554 else if (appcache_service_ && clear_local_state_on_exit_) { 550 } else if (clear_local_state_on_exit_) {
555 BrowserThread::PostTask( 551 BrowserThread::PostTask(
556 BrowserThread::IO, FROM_HERE, 552 BrowserThread::IO, FROM_HERE,
557 base::Bind(&appcache::AppCacheService::set_clear_local_state_on_exit, 553 base::Bind(&appcache::AppCacheService::set_clear_local_state_on_exit,
558 appcache_service_.get(), true)); 554 BrowserContext::GetAppCacheService(this), true));
555 BrowserContext::GetWebKitContext(this)->set_clear_local_state_on_exit(true);
556 BrowserContext::GetDatabaseTracker(this)->SetClearLocalStateOnExit(true);
559 } 557 }
560 558
561 StopCreateSessionServiceTimer(); 559 StopCreateSessionServiceTimer();
562 560
563 // Remove pref observers 561 // Remove pref observers
564 pref_change_registrar_.RemoveAll(); 562 pref_change_registrar_.RemoveAll();
565 563
566 ChromePluginServiceFilter::GetInstance()->UnregisterResourceContext( 564 ChromePluginServiceFilter::GetInstance()->UnregisterResourceContext(
567 io_data_.GetResourceContextNoInit()); 565 io_data_.GetResourceContextNoInit());
568 566
569 if (io_data_.HasMainRequestContext() && 567 if (io_data_.HasMainRequestContext() &&
570 default_request_context_ == GetRequestContext()) { 568 default_request_context_ == GetRequestContext()) {
571 default_request_context_ = NULL; 569 default_request_context_ = NULL;
572 } 570 }
573 571
574 // Destroy OTR profile and its profile services first. 572 // Destroy OTR profile and its profile services first.
575 DestroyOffTheRecordProfile(); 573 DestroyOffTheRecordProfile();
576 574
577 ProfileDependencyManager::GetInstance()->DestroyProfileServices(this); 575 ProfileDependencyManager::GetInstance()->DestroyProfileServices(this);
578 576
579 if (db_tracker_) {
580 BrowserThread::PostTask(
581 BrowserThread::FILE, FROM_HERE,
582 base::Bind(&webkit_database::DatabaseTracker::Shutdown,
583 db_tracker_.get()));
584 }
585
586 // Password store uses WebDB, shut it down before the WebDB has been shutdown. 577 // Password store uses WebDB, shut it down before the WebDB has been shutdown.
587 if (password_store_.get()) 578 if (password_store_.get())
588 password_store_->Shutdown(); 579 password_store_->Shutdown();
589 580
590 // Both HistoryService and WebDataService maintain threads for background 581 // Both HistoryService and WebDataService maintain threads for background
591 // processing. Its possible each thread still has tasks on it that have 582 // processing. Its possible each thread still has tasks on it that have
592 // increased the ref count of the service. In such a situation, when we 583 // increased the ref count of the service. In such a situation, when we
593 // decrement the refcount, it won't be 0, and the threads/databases aren't 584 // decrement the refcount, it won't be 0, and the threads/databases aren't
594 // properly shut down. By explicitly calling Cleanup/Shutdown we ensure the 585 // properly shut down. By explicitly calling Cleanup/Shutdown we ensure the
595 // databases are properly closed. 586 // databases are properly closed.
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
673 } 664 }
674 665
675 bool ProfileImpl::HasOffTheRecordProfile() { 666 bool ProfileImpl::HasOffTheRecordProfile() {
676 return off_the_record_profile_.get() != NULL; 667 return off_the_record_profile_.get() != NULL;
677 } 668 }
678 669
679 Profile* ProfileImpl::GetOriginalProfile() { 670 Profile* ProfileImpl::GetOriginalProfile() {
680 return this; 671 return this;
681 } 672 }
682 673
683 ChromeAppCacheService* ProfileImpl::GetAppCacheService() {
684 CreateQuotaManagerAndClients();
685 return appcache_service_;
686 }
687
688 webkit_database::DatabaseTracker* ProfileImpl::GetDatabaseTracker() {
689 CreateQuotaManagerAndClients();
690 return db_tracker_;
691 }
692
693 VisitedLinkMaster* ProfileImpl::GetVisitedLinkMaster() { 674 VisitedLinkMaster* ProfileImpl::GetVisitedLinkMaster() {
694 if (!visited_link_master_.get()) { 675 if (!visited_link_master_.get()) {
695 scoped_ptr<VisitedLinkMaster> visited_links( 676 scoped_ptr<VisitedLinkMaster> visited_links(
696 new VisitedLinkMaster(visited_link_event_listener_.get(), this)); 677 new VisitedLinkMaster(visited_link_event_listener_.get(), this));
697 if (!visited_links->Init()) 678 if (!visited_links->Init())
698 return NULL; 679 return NULL;
699 visited_link_master_.swap(visited_links); 680 visited_link_master_.swap(visited_links);
700 } 681 }
701 682
702 return visited_link_master_.get(); 683 return visited_link_master_.get();
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
1129 NOTREACHED() << "Could not initialize password manager."; 1110 NOTREACHED() << "Could not initialize password manager.";
1130 return; 1111 return;
1131 } 1112 }
1132 password_store_.swap(ps); 1113 password_store_.swap(ps);
1133 } 1114 }
1134 1115
1135 DownloadManager* ProfileImpl::GetDownloadManager() { 1116 DownloadManager* ProfileImpl::GetDownloadManager() {
1136 return DownloadServiceFactory::GetForProfile(this)->GetDownloadManager(); 1117 return DownloadServiceFactory::GetForProfile(this)->GetDownloadManager();
1137 } 1118 }
1138 1119
1139 fileapi::FileSystemContext* ProfileImpl::GetFileSystemContext() {
1140 CreateQuotaManagerAndClients();
1141 return file_system_context_.get();
1142 }
1143
1144 quota::QuotaManager* ProfileImpl::GetQuotaManager() {
1145 CreateQuotaManagerAndClients();
1146 return quota_manager_.get();
1147 }
1148
1149 bool ProfileImpl::DidLastSessionExitCleanly() { 1120 bool ProfileImpl::DidLastSessionExitCleanly() {
1150 // last_session_exited_cleanly_ is set when the preferences are loaded. Force 1121 // last_session_exited_cleanly_ is set when the preferences are loaded. Force
1151 // it to be set by asking for the prefs. 1122 // it to be set by asking for the prefs.
1152 GetPrefs(); 1123 GetPrefs();
1153 return last_session_exited_cleanly_; 1124 return last_session_exited_cleanly_;
1154 } 1125 }
1155 1126
1127 quota::SpecialStoragePolicy* ProfileImpl::GetSpecialStoragePolicy() {
1128 return GetExtensionSpecialStoragePolicy();
1129 }
1130
1156 BookmarkModel* ProfileImpl::GetBookmarkModel() { 1131 BookmarkModel* ProfileImpl::GetBookmarkModel() {
1157 if (!bookmark_bar_model_.get()) { 1132 if (!bookmark_bar_model_.get()) {
1158 bookmark_bar_model_.reset(new BookmarkModel(this)); 1133 bookmark_bar_model_.reset(new BookmarkModel(this));
1159 bookmark_bar_model_->Load(); 1134 bookmark_bar_model_->Load();
1160 } 1135 }
1161 return bookmark_bar_model_.get(); 1136 return bookmark_bar_model_.get();
1162 } 1137 }
1163 1138
1164 ProtocolHandlerRegistry* ProfileImpl::GetProtocolHandlerRegistry() { 1139 ProtocolHandlerRegistry* ProfileImpl::GetProtocolHandlerRegistry() {
1165 return protocol_handler_registry_.get(); 1140 return protocol_handler_registry_.get();
(...skipping 21 matching lines...) Expand all
1187 history::TopSites* ProfileImpl::GetTopSitesWithoutCreating() { 1162 history::TopSites* ProfileImpl::GetTopSitesWithoutCreating() {
1188 return top_sites_; 1163 return top_sites_;
1189 } 1164 }
1190 1165
1191 ExtensionPrefValueMap* ProfileImpl::GetExtensionPrefValueMap() { 1166 ExtensionPrefValueMap* ProfileImpl::GetExtensionPrefValueMap() {
1192 if (!extension_pref_value_map_.get()) 1167 if (!extension_pref_value_map_.get())
1193 extension_pref_value_map_.reset(new ExtensionPrefValueMap); 1168 extension_pref_value_map_.reset(new ExtensionPrefValueMap);
1194 return extension_pref_value_map_.get(); 1169 return extension_pref_value_map_.get();
1195 } 1170 }
1196 1171
1197 void ProfileImpl::CreateQuotaManagerAndClients() {
1198 if (quota_manager_.get()) {
1199 DCHECK(file_system_context_.get());
1200 DCHECK(db_tracker_.get());
1201 DCHECK(webkit_context_.get());
1202 return;
1203 }
1204
1205 // All of the clients have to be created and registered with the
1206 // QuotaManager prior to the QuotaManger being used. So we do them
1207 // all together here prior to handing out a reference to anything
1208 // that utlizes the QuotaManager.
1209 quota_manager_ = new quota::QuotaManager(
1210 IsOffTheRecord(),
1211 GetPath(),
1212 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO),
1213 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB),
1214 GetExtensionSpecialStoragePolicy());
1215
1216 // Each consumer is responsible for registering its QuotaClient during
1217 // its construction.
1218 file_system_context_ = CreateFileSystemContext(
1219 GetPath(), IsOffTheRecord(),
1220 GetExtensionSpecialStoragePolicy(),
1221 quota_manager_->proxy());
1222 db_tracker_ = new webkit_database::DatabaseTracker(
1223 GetPath(), IsOffTheRecord(), clear_local_state_on_exit_,
1224 GetExtensionSpecialStoragePolicy(),
1225 quota_manager_->proxy(),
1226 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE));
1227 webkit_context_ = new WebKitContext(
1228 IsOffTheRecord(), GetPath(), GetExtensionSpecialStoragePolicy(),
1229 clear_local_state_on_exit_, quota_manager_->proxy(),
1230 BrowserThread::GetMessageLoopProxyForThread(
1231 BrowserThread::WEBKIT_DEPRECATED));
1232 appcache_service_ = new ChromeAppCacheService(quota_manager_->proxy());
1233 BrowserThread::PostTask(
1234 BrowserThread::IO, FROM_HERE,
1235 base::Bind(&ChromeAppCacheService::InitializeOnIOThread,
1236 appcache_service_.get(),
1237 IsOffTheRecord()
1238 ? FilePath() : GetPath().Append(chrome::kAppCacheDirname),
1239 io_data_.GetResourceContextNoInit(),
1240 make_scoped_refptr(GetExtensionSpecialStoragePolicy())));
1241 }
1242
1243 WebKitContext* ProfileImpl::GetWebKitContext() {
1244 CreateQuotaManagerAndClients();
1245 return webkit_context_.get();
1246 }
1247
1248 void ProfileImpl::MarkAsCleanShutdown() { 1172 void ProfileImpl::MarkAsCleanShutdown() {
1249 if (prefs_.get()) { 1173 if (prefs_.get()) {
1250 // The session cleanly exited, set kSessionExitedCleanly appropriately. 1174 // The session cleanly exited, set kSessionExitedCleanly appropriately.
1251 prefs_->SetBoolean(prefs::kSessionExitedCleanly, true); 1175 prefs_->SetBoolean(prefs::kSessionExitedCleanly, true);
1252 1176
1253 // NOTE: If you change what thread this writes on, be sure and update 1177 // NOTE: If you change what thread this writes on, be sure and update
1254 // ChromeFrame::EndSession(). 1178 // ChromeFrame::EndSession().
1255 prefs_->CommitPendingWrite(); 1179 prefs_->CommitPendingWrite();
1256 } 1180 }
1257 } 1181 }
(...skipping 15 matching lines...) Expand all
1273 case chrome::NOTIFICATION_PREF_CHANGED: { 1197 case chrome::NOTIFICATION_PREF_CHANGED: {
1274 std::string* pref_name_in = content::Details<std::string>(details).ptr(); 1198 std::string* pref_name_in = content::Details<std::string>(details).ptr();
1275 PrefService* prefs = content::Source<PrefService>(source).ptr(); 1199 PrefService* prefs = content::Source<PrefService>(source).ptr();
1276 DCHECK(pref_name_in && prefs); 1200 DCHECK(pref_name_in && prefs);
1277 if (*pref_name_in == prefs::kSpeechInputFilterProfanities) { 1201 if (*pref_name_in == prefs::kSpeechInputFilterProfanities) {
1278 GetSpeechInputPreferences()->SetFilterProfanities(prefs->GetBoolean( 1202 GetSpeechInputPreferences()->SetFilterProfanities(prefs->GetBoolean(
1279 prefs::kSpeechInputFilterProfanities)); 1203 prefs::kSpeechInputFilterProfanities));
1280 } else if (*pref_name_in == prefs::kClearSiteDataOnExit) { 1204 } else if (*pref_name_in == prefs::kClearSiteDataOnExit) {
1281 clear_local_state_on_exit_ = 1205 clear_local_state_on_exit_ =
1282 prefs->GetBoolean(prefs::kClearSiteDataOnExit); 1206 prefs->GetBoolean(prefs::kClearSiteDataOnExit);
1283 if (webkit_context_) {
1284 webkit_context_->set_clear_local_state_on_exit(
1285 clear_local_state_on_exit_);
1286 }
1287 if (db_tracker_) {
1288 db_tracker_->SetClearLocalStateOnExit(
1289 clear_local_state_on_exit_);
1290 }
1291 } else if (*pref_name_in == prefs::kGoogleServicesUsername) { 1207 } else if (*pref_name_in == prefs::kGoogleServicesUsername) {
1292 UpdateProfileUserNameCache(); 1208 UpdateProfileUserNameCache();
1293 } else if (*pref_name_in == prefs::kProfileAvatarIndex) { 1209 } else if (*pref_name_in == prefs::kProfileAvatarIndex) {
1294 UpdateProfileAvatarCache(); 1210 UpdateProfileAvatarCache();
1295 } else if (*pref_name_in == prefs::kProfileName) { 1211 } else if (*pref_name_in == prefs::kProfileName) {
1296 UpdateProfileNameCache(); 1212 UpdateProfileNameCache();
1297 } else if (*pref_name_in == prefs::kDefaultZoomLevel) { 1213 } else if (*pref_name_in == prefs::kDefaultZoomLevel) {
1298 GetHostZoomMap()->SetDefaultZoomLevel( 1214 GetHostZoomMap()->SetDefaultZoomLevel(
1299 prefs->GetDouble(prefs::kDefaultZoomLevel)); 1215 prefs->GetDouble(prefs::kDefaultZoomLevel));
1300 } 1216 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1335 SessionServiceFactory::GetForProfile(this); 1251 SessionServiceFactory::GetForProfile(this);
1336 } 1252 }
1337 1253
1338 TokenService* ProfileImpl::GetTokenService() { 1254 TokenService* ProfileImpl::GetTokenService() {
1339 if (!token_service_.get()) { 1255 if (!token_service_.get()) {
1340 token_service_.reset(new TokenService()); 1256 token_service_.reset(new TokenService());
1341 } 1257 }
1342 return token_service_.get(); 1258 return token_service_.get();
1343 } 1259 }
1344 1260
1345 ChromeBlobStorageContext* ProfileImpl::GetBlobStorageContext() {
1346 if (!blob_storage_context_) {
1347 blob_storage_context_ = new ChromeBlobStorageContext();
1348 BrowserThread::PostTask(
1349 BrowserThread::IO, FROM_HERE,
1350 base::Bind(&ChromeBlobStorageContext::InitializeOnIOThread,
1351 blob_storage_context_.get()));
1352 }
1353 return blob_storage_context_;
1354 }
1355
1356 ExtensionInfoMap* ProfileImpl::GetExtensionInfoMap() { 1261 ExtensionInfoMap* ProfileImpl::GetExtensionInfoMap() {
1357 return extension_info_map_.get(); 1262 return extension_info_map_.get();
1358 } 1263 }
1359 1264
1360 ChromeURLDataManager* ProfileImpl::GetChromeURLDataManager() { 1265 ChromeURLDataManager* ProfileImpl::GetChromeURLDataManager() {
1361 if (!chrome_url_data_manager_.get()) 1266 if (!chrome_url_data_manager_.get())
1362 chrome_url_data_manager_.reset(new ChromeURLDataManager( 1267 chrome_url_data_manager_.reset(new ChromeURLDataManager(
1363 io_data_.GetChromeURLDataManagerBackendGetter())); 1268 io_data_.GetChromeURLDataManagerBackendGetter()));
1364 return chrome_url_data_manager_.get(); 1269 return chrome_url_data_manager_.get();
1365 } 1270 }
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1519 GetPrefs()->GetString(prefs::kHomePage), 1424 GetPrefs()->GetString(prefs::kHomePage),
1520 std::string())); 1425 std::string()));
1521 if (!home_page.is_valid()) 1426 if (!home_page.is_valid())
1522 return GURL(chrome::kChromeUINewTabURL); 1427 return GURL(chrome::kChromeUINewTabURL);
1523 return home_page; 1428 return home_page;
1524 } 1429 }
1525 1430
1526 void ProfileImpl::SaveSessionState() { 1431 void ProfileImpl::SaveSessionState() {
1527 if (!session_restore_enabled_) 1432 if (!session_restore_enabled_)
1528 return; 1433 return;
1529 if (webkit_context_.get()) 1434 BrowserContext::GetWebKitContext(this)->SaveSessionState();
1530 webkit_context_->SaveSessionState(); 1435 BrowserContext::GetDatabaseTracker(this)->SaveSessionState();
1531 if (db_tracker_.get())
1532 db_tracker_->SaveSessionState();
1533 1436
1534 BrowserThread::PostTask( 1437 BrowserThread::PostTask(
1535 BrowserThread::IO, FROM_HERE, 1438 BrowserThread::IO, FROM_HERE,
1536 base::Bind(&SaveSessionStateOnIOThread, 1439 base::Bind(&SaveSessionStateOnIOThread,
1537 make_scoped_refptr(GetRequestContext()), 1440 make_scoped_refptr(GetRequestContext()),
1538 make_scoped_refptr(appcache_service_.get()))); 1441 make_scoped_refptr(BrowserContext::GetAppCacheService(this))));
1539 } 1442 }
1540 1443
1541 void ProfileImpl::UpdateProfileUserNameCache() { 1444 void ProfileImpl::UpdateProfileUserNameCache() {
1542 ProfileManager* profile_manager = g_browser_process->profile_manager(); 1445 ProfileManager* profile_manager = g_browser_process->profile_manager();
1543 ProfileInfoCache& cache = profile_manager->GetProfileInfoCache(); 1446 ProfileInfoCache& cache = profile_manager->GetProfileInfoCache();
1544 size_t index = cache.GetIndexOfProfileWithPath(GetPath()); 1447 size_t index = cache.GetIndexOfProfileWithPath(GetPath());
1545 if (index != std::string::npos) { 1448 if (index != std::string::npos) {
1546 std::string user_name = 1449 std::string user_name =
1547 GetPrefs()->GetString(prefs::kGoogleServicesUsername); 1450 GetPrefs()->GetString(prefs::kGoogleServicesUsername);
1548 cache.SetUserNameOfProfileAtIndex(index, UTF8ToUTF16(user_name)); 1451 cache.SetUserNameOfProfileAtIndex(index, UTF8ToUTF16(user_name));
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1580 FilePath* cache_path, 1483 FilePath* cache_path,
1581 int* max_size) { 1484 int* max_size) {
1582 DCHECK(cache_path); 1485 DCHECK(cache_path);
1583 DCHECK(max_size); 1486 DCHECK(max_size);
1584 FilePath path(prefs_->GetFilePath(prefs::kDiskCacheDir)); 1487 FilePath path(prefs_->GetFilePath(prefs::kDiskCacheDir));
1585 if (!path.empty()) 1488 if (!path.empty())
1586 *cache_path = path; 1489 *cache_path = path;
1587 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) : 1490 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) :
1588 prefs_->GetInteger(prefs::kDiskCacheSize); 1491 prefs_->GetInteger(prefs::kDiskCacheSize);
1589 } 1492 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698