| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 } | 202 } |
| 203 | 203 |
| 204 // static | 204 // static |
| 205 void ProfileImpl::RegisterUserPrefs(PrefService* prefs) { | 205 void ProfileImpl::RegisterUserPrefs(PrefService* prefs) { |
| 206 prefs->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, | 206 prefs->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, |
| 207 false, | 207 false, |
| 208 PrefService::UNSYNCABLE_PREF); | 208 PrefService::UNSYNCABLE_PREF); |
| 209 prefs->RegisterBooleanPref(prefs::kClearSiteDataOnExit, | 209 prefs->RegisterBooleanPref(prefs::kClearSiteDataOnExit, |
| 210 false, | 210 false, |
| 211 PrefService::SYNCABLE_PREF); | 211 PrefService::SYNCABLE_PREF); |
| 212 prefs->RegisterIntegerPref(prefs::kProfileAvatarIndex, | |
| 213 -1, | |
| 214 PrefService::SYNCABLE_PREF); | |
| 215 prefs->RegisterStringPref(prefs::kProfileName, | |
| 216 "", | |
| 217 PrefService::SYNCABLE_PREF); | |
| 218 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX) | 212 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX) |
| 219 prefs->RegisterIntegerPref(prefs::kLocalProfileId, | 213 prefs->RegisterIntegerPref(prefs::kLocalProfileId, |
| 220 kInvalidLocalProfileId, | 214 kInvalidLocalProfileId, |
| 221 PrefService::UNSYNCABLE_PREF); | 215 PrefService::UNSYNCABLE_PREF); |
| 222 // Notice that the preprocessor conditions above are exactly those that will | 216 // Notice that the preprocessor conditions above are exactly those that will |
| 223 // result in using PasswordStoreX in CreatePasswordStore() below. | 217 // result in using PasswordStoreX in CreatePasswordStore() below. |
| 224 PasswordStoreX::RegisterUserPrefs(prefs); | 218 PasswordStoreX::RegisterUserPrefs(prefs); |
| 225 #endif | 219 #endif |
| 226 } | 220 } |
| 227 | 221 |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 void ProfileImpl::DoFinalInit() { | 277 void ProfileImpl::DoFinalInit() { |
| 284 PrefService* prefs = GetPrefs(); | 278 PrefService* prefs = GetPrefs(); |
| 285 pref_change_registrar_.Init(prefs); | 279 pref_change_registrar_.Init(prefs); |
| 286 pref_change_registrar_.Add(prefs::kSpellCheckDictionary, this); | 280 pref_change_registrar_.Add(prefs::kSpellCheckDictionary, this); |
| 287 pref_change_registrar_.Add(prefs::kEnableSpellCheck, this); | 281 pref_change_registrar_.Add(prefs::kEnableSpellCheck, this); |
| 288 pref_change_registrar_.Add(prefs::kEnableAutoSpellCorrect, this); | 282 pref_change_registrar_.Add(prefs::kEnableAutoSpellCorrect, this); |
| 289 pref_change_registrar_.Add(prefs::kSpeechInputFilterProfanities, this); | 283 pref_change_registrar_.Add(prefs::kSpeechInputFilterProfanities, this); |
| 290 pref_change_registrar_.Add(prefs::kClearSiteDataOnExit, this); | 284 pref_change_registrar_.Add(prefs::kClearSiteDataOnExit, this); |
| 291 pref_change_registrar_.Add(prefs::kGoogleServicesUsername, this); | 285 pref_change_registrar_.Add(prefs::kGoogleServicesUsername, this); |
| 292 pref_change_registrar_.Add(prefs::kDefaultZoomLevel, this); | 286 pref_change_registrar_.Add(prefs::kDefaultZoomLevel, this); |
| 293 pref_change_registrar_.Add(prefs::kProfileAvatarIndex, this); | |
| 294 pref_change_registrar_.Add(prefs::kProfileName, this); | |
| 295 | 287 |
| 296 // It would be nice to use PathService for fetching this directory, but | 288 // It would be nice to use PathService for fetching this directory, but |
| 297 // the cache directory depends on the profile directory, which isn't available | 289 // the cache directory depends on the profile directory, which isn't available |
| 298 // to PathService. | 290 // to PathService. |
| 299 chrome::GetUserCacheDirectory(path_, &base_cache_path_); | 291 chrome::GetUserCacheDirectory(path_, &base_cache_path_); |
| 300 if (!delegate_) { | 292 if (!delegate_) { |
| 301 if (!file_util::CreateDirectory(base_cache_path_)) | 293 if (!file_util::CreateDirectory(base_cache_path_)) |
| 302 LOG(FATAL) << "Failed to create " << base_cache_path_.value(); | 294 LOG(FATAL) << "Failed to create " << base_cache_path_.value(); |
| 303 } else { | 295 } else { |
| 304 // Async profile loading is used, so call this on the FILE thread instead. | 296 // Async profile loading is used, so call this on the FILE thread instead. |
| (...skipping 1001 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1306 if (webkit_context_) { | 1298 if (webkit_context_) { |
| 1307 webkit_context_->set_clear_local_state_on_exit( | 1299 webkit_context_->set_clear_local_state_on_exit( |
| 1308 clear_local_state_on_exit_); | 1300 clear_local_state_on_exit_); |
| 1309 } | 1301 } |
| 1310 if (db_tracker_) { | 1302 if (db_tracker_) { |
| 1311 db_tracker_->SetClearLocalStateOnExit( | 1303 db_tracker_->SetClearLocalStateOnExit( |
| 1312 clear_local_state_on_exit_); | 1304 clear_local_state_on_exit_); |
| 1313 } | 1305 } |
| 1314 } else if (*pref_name_in == prefs::kGoogleServicesUsername) { | 1306 } else if (*pref_name_in == prefs::kGoogleServicesUsername) { |
| 1315 UpdateProfileUserNameCache(); | 1307 UpdateProfileUserNameCache(); |
| 1316 } else if (*pref_name_in == prefs::kProfileAvatarIndex) { | |
| 1317 UpdateProfileAvatarCache(); | |
| 1318 } else if (*pref_name_in == prefs::kProfileName) { | |
| 1319 UpdateProfileNameCache(); | |
| 1320 } else if (*pref_name_in == prefs::kDefaultZoomLevel) { | 1308 } else if (*pref_name_in == prefs::kDefaultZoomLevel) { |
| 1321 GetHostZoomMap()->set_default_zoom_level( | 1309 GetHostZoomMap()->set_default_zoom_level( |
| 1322 prefs->GetDouble(prefs::kDefaultZoomLevel)); | 1310 prefs->GetDouble(prefs::kDefaultZoomLevel)); |
| 1323 } | 1311 } |
| 1324 break; | 1312 break; |
| 1325 } | 1313 } |
| 1326 case chrome::NOTIFICATION_BOOKMARK_MODEL_LOADED: | 1314 case chrome::NOTIFICATION_BOOKMARK_MODEL_LOADED: |
| 1327 GetProfileSyncService(); // Causes lazy-load if sync is enabled. | 1315 GetProfileSyncService(); // Causes lazy-load if sync is enabled. |
| 1328 registrar_.Remove(this, chrome::NOTIFICATION_BOOKMARK_MODEL_LOADED, | 1316 registrar_.Remove(this, chrome::NOTIFICATION_BOOKMARK_MODEL_LOADED, |
| 1329 content::Source<Profile>(this)); | 1317 content::Source<Profile>(this)); |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1612 ProfileManager* profile_manager = g_browser_process->profile_manager(); | 1600 ProfileManager* profile_manager = g_browser_process->profile_manager(); |
| 1613 ProfileInfoCache& cache = profile_manager->GetProfileInfoCache(); | 1601 ProfileInfoCache& cache = profile_manager->GetProfileInfoCache(); |
| 1614 size_t index = cache.GetIndexOfProfileWithPath(GetPath()); | 1602 size_t index = cache.GetIndexOfProfileWithPath(GetPath()); |
| 1615 if (index != std::string::npos) { | 1603 if (index != std::string::npos) { |
| 1616 std::string user_name = | 1604 std::string user_name = |
| 1617 GetPrefs()->GetString(prefs::kGoogleServicesUsername); | 1605 GetPrefs()->GetString(prefs::kGoogleServicesUsername); |
| 1618 cache.SetUserNameOfProfileAtIndex(index, UTF8ToUTF16(user_name)); | 1606 cache.SetUserNameOfProfileAtIndex(index, UTF8ToUTF16(user_name)); |
| 1619 } | 1607 } |
| 1620 } | 1608 } |
| 1621 | 1609 |
| 1622 void ProfileImpl::UpdateProfileNameCache() { | |
| 1623 ProfileManager* profile_manager = g_browser_process->profile_manager(); | |
| 1624 ProfileInfoCache& cache = profile_manager->GetProfileInfoCache(); | |
| 1625 size_t index = cache.GetIndexOfProfileWithPath(GetPath()); | |
| 1626 if (index != std::string::npos) { | |
| 1627 std::string profile_name = | |
| 1628 GetPrefs()->GetString(prefs::kProfileName); | |
| 1629 cache.SetNameOfProfileAtIndex(index, UTF8ToUTF16(profile_name)); | |
| 1630 } | |
| 1631 } | |
| 1632 | |
| 1633 void ProfileImpl::UpdateProfileAvatarCache() { | |
| 1634 ProfileManager* profile_manager = g_browser_process->profile_manager(); | |
| 1635 ProfileInfoCache& cache = profile_manager->GetProfileInfoCache(); | |
| 1636 size_t index = cache.GetIndexOfProfileWithPath(GetPath()); | |
| 1637 if (index != std::string::npos) { | |
| 1638 size_t avatar_index = | |
| 1639 GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); | |
| 1640 cache.SetAvatarIconOfProfileAtIndex(index, avatar_index); | |
| 1641 } | |
| 1642 } | |
| 1643 | |
| 1644 // Gets the cache parameters from the command line. If |is_media_context| is | 1610 // Gets the cache parameters from the command line. If |is_media_context| is |
| 1645 // set to true then settings for the media context type is what we need, | 1611 // set to true then settings for the media context type is what we need, |
| 1646 // |cache_path| will be set to the user provided path, or will not be touched if | 1612 // |cache_path| will be set to the user provided path, or will not be touched if |
| 1647 // there is not an argument. |max_size| will be the user provided value or zero | 1613 // there is not an argument. |max_size| will be the user provided value or zero |
| 1648 // by default. | 1614 // by default. |
| 1649 void ProfileImpl::GetCacheParameters(bool is_media_context, | 1615 void ProfileImpl::GetCacheParameters(bool is_media_context, |
| 1650 FilePath* cache_path, | 1616 FilePath* cache_path, |
| 1651 int* max_size) { | 1617 int* max_size) { |
| 1652 DCHECK(cache_path); | 1618 DCHECK(cache_path); |
| 1653 DCHECK(max_size); | 1619 DCHECK(max_size); |
| 1654 FilePath path(prefs_->GetFilePath(prefs::kDiskCacheDir)); | 1620 FilePath path(prefs_->GetFilePath(prefs::kDiskCacheDir)); |
| 1655 if (!path.empty()) | 1621 if (!path.empty()) |
| 1656 *cache_path = path; | 1622 *cache_path = path; |
| 1657 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) : | 1623 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) : |
| 1658 prefs_->GetInteger(prefs::kDiskCacheSize); | 1624 prefs_->GetInteger(prefs::kDiskCacheSize); |
| 1659 } | 1625 } |
| OLD | NEW |