OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/ui/webui/options/manage_profile_handler.h" | 5 #include "chrome/browser/ui/webui/options/manage_profile_handler.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "base/prefs/scoped_user_pref_update.h" | 10 #include "base/prefs/scoped_user_pref_update.h" |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 "ManageProfileOverlay.showDisconnectManagedProfileDialog", replacements); | 321 "ManageProfileOverlay.showDisconnectManagedProfileDialog", replacements); |
322 } | 322 } |
323 | 323 |
324 void ManageProfileHandler::SetProfileIconAndName(const base::ListValue* args) { | 324 void ManageProfileHandler::SetProfileIconAndName(const base::ListValue* args) { |
325 DCHECK(args); | 325 DCHECK(args); |
326 | 326 |
327 base::FilePath profile_file_path; | 327 base::FilePath profile_file_path; |
328 if (!GetProfilePathFromArgs(args, &profile_file_path)) | 328 if (!GetProfilePathFromArgs(args, &profile_file_path)) |
329 return; | 329 return; |
330 | 330 |
331 ProfileInfoCache& cache = | |
332 g_browser_process->profile_manager()->GetProfileInfoCache(); | |
333 size_t profile_index = cache.GetIndexOfProfileWithPath(profile_file_path); | |
334 if (profile_index == std::string::npos) | |
335 return; | |
336 | |
337 Profile* profile = | 331 Profile* profile = |
338 g_browser_process->profile_manager()->GetProfile(profile_file_path); | 332 g_browser_process->profile_manager()->GetProfile(profile_file_path); |
339 if (!profile) | 333 if (!profile) |
340 return; | 334 return; |
341 | 335 |
342 std::string icon_url; | 336 std::string icon_url; |
343 if (!args->GetString(1, &icon_url)) | 337 if (!args->GetString(1, &icon_url)) |
344 return; | 338 return; |
345 | 339 |
| 340 PrefService* pref_service = profile->GetPrefs(); |
| 341 // Updating the profile preferences will cause the cache to be updated. |
| 342 |
346 // Metrics logging variable. | 343 // Metrics logging variable. |
347 bool previously_using_gaia_icon = | 344 bool previously_using_gaia_icon = |
348 cache.IsUsingGAIAPictureOfProfileAtIndex(profile_index); | 345 pref_service->GetBoolean(prefs::kProfileUsingGAIAAvatar); |
349 | 346 |
350 size_t new_icon_index; | 347 size_t new_icon_index; |
351 if (icon_url == gaia_picture_url_) { | 348 if (icon_url == gaia_picture_url_) { |
352 cache.SetIsUsingGAIAPictureOfProfileAtIndex(profile_index, true); | 349 pref_service->SetBoolean(prefs::kProfileUsingDefaultAvatar, false); |
| 350 pref_service->SetBoolean(prefs::kProfileUsingGAIAAvatar, true); |
353 if (!previously_using_gaia_icon) { | 351 if (!previously_using_gaia_icon) { |
354 // Only log if they changed to the GAIA photo. | 352 // Only log if they changed to the GAIA photo. |
355 // Selection of GAIA photo as avatar is logged as part of the function | 353 // Selection of GAIA photo as avatar is logged as part of the function |
356 // below. | 354 // below. |
357 ProfileMetrics::LogProfileSwitchGaia(ProfileMetrics::GAIA_OPT_IN); | 355 ProfileMetrics::LogProfileSwitchGaia(ProfileMetrics::GAIA_OPT_IN); |
358 } | 356 } |
359 } else if (profiles::IsDefaultAvatarIconUrl(icon_url, &new_icon_index)) { | 357 } else if (profiles::IsDefaultAvatarIconUrl(icon_url, &new_icon_index)) { |
360 ProfileMetrics::LogProfileAvatarSelection(new_icon_index); | 358 ProfileMetrics::LogProfileAvatarSelection(new_icon_index); |
361 PrefService* pref_service = profile->GetPrefs(); | |
362 // Updating the profile preference will cause the cache to be updated for | |
363 // this preference. | |
364 pref_service->SetInteger(prefs::kProfileAvatarIndex, new_icon_index); | 359 pref_service->SetInteger(prefs::kProfileAvatarIndex, new_icon_index); |
365 cache.SetIsUsingGAIAPictureOfProfileAtIndex(profile_index, false); | 360 pref_service->SetBoolean(prefs::kProfileUsingDefaultAvatar, false); |
| 361 pref_service->SetBoolean(prefs::kProfileUsingGAIAAvatar, false); |
366 } | 362 } |
367 ProfileMetrics::LogProfileUpdate(profile_file_path); | 363 ProfileMetrics::LogProfileUpdate(profile_file_path); |
368 | 364 |
369 if (profile->IsSupervised()) | 365 if (profile->IsSupervised()) |
370 return; | 366 return; |
371 | 367 |
372 base::string16 new_profile_name; | 368 base::string16 new_profile_name; |
373 if (!args->GetString(2, &new_profile_name)) | 369 if (!args->GetString(2, &new_profile_name)) |
374 return; | 370 return; |
375 | 371 |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
525 | 521 |
526 // Update the UI buttons. | 522 // Update the UI buttons. |
527 OnHasProfileShortcuts(false); | 523 OnHasProfileShortcuts(false); |
528 } | 524 } |
529 | 525 |
530 void ManageProfileHandler::RefreshGaiaPicture(const base::ListValue* args) { | 526 void ManageProfileHandler::RefreshGaiaPicture(const base::ListValue* args) { |
531 profiles::UpdateGaiaProfilePhotoIfNeeded(Profile::FromWebUI(web_ui())); | 527 profiles::UpdateGaiaProfilePhotoIfNeeded(Profile::FromWebUI(web_ui())); |
532 } | 528 } |
533 | 529 |
534 } // namespace options | 530 } // namespace options |
OLD | NEW |