| 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 "chrome/browser/profiles/gaia_info_update_service.h" | 5 #include "chrome/browser/profiles/gaia_info_update_service.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/prefs/pref_service.h" | 9 #include "chrome/browser/prefs/pref_service.h" |
| 10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 ProfileDownloader* downloader) { | 157 ProfileDownloader* downloader) { |
| 158 profile_image_downloader_.reset(); | 158 profile_image_downloader_.reset(); |
| 159 | 159 |
| 160 // Save the last updated time. | 160 // Save the last updated time. |
| 161 last_updated_ = base::Time::Now(); | 161 last_updated_ = base::Time::Now(); |
| 162 profile_->GetPrefs()->SetInt64(prefs::kProfileGAIAInfoUpdateTime, | 162 profile_->GetPrefs()->SetInt64(prefs::kProfileGAIAInfoUpdateTime, |
| 163 last_updated_.ToInternalValue()); | 163 last_updated_.ToInternalValue()); |
| 164 ScheduleNextUpdate(); | 164 ScheduleNextUpdate(); |
| 165 } | 165 } |
| 166 | 166 |
| 167 void GAIAInfoUpdateService::Observe( | 167 void GAIAInfoUpdateService::OnPreferenceChanged(PrefServiceBase* service, |
| 168 int type, | 168 const std::string& pref_name) { |
| 169 const content::NotificationSource& source, | 169 if (prefs::kGoogleServicesUsername == pref_name) |
| 170 const content::NotificationDetails& details) { | 170 OnUsernameChanged(); |
| 171 if (type == chrome::NOTIFICATION_PREF_CHANGED) { | |
| 172 std::string* name = content::Details<std::string>(details).ptr(); | |
| 173 if (prefs::kGoogleServicesUsername == *name) | |
| 174 OnUsernameChanged(); | |
| 175 } else { | |
| 176 NOTREACHED(); | |
| 177 } | |
| 178 } | 171 } |
| 179 | 172 |
| 180 void GAIAInfoUpdateService::OnUsernameChanged() { | 173 void GAIAInfoUpdateService::OnUsernameChanged() { |
| 181 ProfileInfoCache& cache = | 174 ProfileInfoCache& cache = |
| 182 g_browser_process->profile_manager()->GetProfileInfoCache(); | 175 g_browser_process->profile_manager()->GetProfileInfoCache(); |
| 183 size_t profile_index = cache.GetIndexOfProfileWithPath(profile_->GetPath()); | 176 size_t profile_index = cache.GetIndexOfProfileWithPath(profile_->GetPath()); |
| 184 if (profile_index == std::string::npos) | 177 if (profile_index == std::string::npos) |
| 185 return; | 178 return; |
| 186 | 179 |
| 187 std::string username = profile_->GetPrefs()->GetString( | 180 std::string username = profile_->GetPrefs()->GetString( |
| (...skipping 23 matching lines...) Expand all Loading... |
| 211 const base::TimeDelta update_delta = base::Time::Now() - last_updated_; | 204 const base::TimeDelta update_delta = base::Time::Now() - last_updated_; |
| 212 | 205 |
| 213 base::TimeDelta delta; | 206 base::TimeDelta delta; |
| 214 if (update_delta < base::TimeDelta() || update_delta > desired_delta) | 207 if (update_delta < base::TimeDelta() || update_delta > desired_delta) |
| 215 delta = base::TimeDelta::FromSeconds(kMinUpdateIntervalSeconds); | 208 delta = base::TimeDelta::FromSeconds(kMinUpdateIntervalSeconds); |
| 216 else | 209 else |
| 217 delta = desired_delta - update_delta; | 210 delta = desired_delta - update_delta; |
| 218 | 211 |
| 219 timer_.Start(FROM_HERE, delta, this, &GAIAInfoUpdateService::Update); | 212 timer_.Start(FROM_HERE, delta, this, &GAIAInfoUpdateService::Update); |
| 220 } | 213 } |
| OLD | NEW |