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 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
333 "ManageProfileOverlay.showDisconnectManagedProfileDialog", replacements); | 333 "ManageProfileOverlay.showDisconnectManagedProfileDialog", replacements); |
334 } | 334 } |
335 | 335 |
336 void ManageProfileHandler::SetProfileIconAndName(const base::ListValue* args) { | 336 void ManageProfileHandler::SetProfileIconAndName(const base::ListValue* args) { |
337 DCHECK(args); | 337 DCHECK(args); |
338 | 338 |
339 base::FilePath profile_file_path; | 339 base::FilePath profile_file_path; |
340 if (!GetProfilePathFromArgs(args, &profile_file_path)) | 340 if (!GetProfilePathFromArgs(args, &profile_file_path)) |
341 return; | 341 return; |
342 | 342 |
343 ProfileInfoCache& cache = | |
344 g_browser_process->profile_manager()->GetProfileInfoCache(); | |
345 size_t profile_index = cache.GetIndexOfProfileWithPath(profile_file_path); | |
346 if (profile_index == std::string::npos) | |
347 return; | |
348 | |
349 Profile* profile = | 343 Profile* profile = |
350 g_browser_process->profile_manager()->GetProfile(profile_file_path); | 344 g_browser_process->profile_manager()->GetProfile(profile_file_path); |
351 if (!profile) | 345 if (!profile) |
352 return; | 346 return; |
353 | 347 |
354 std::string icon_url; | 348 std::string icon_url; |
355 if (!args->GetString(1, &icon_url)) | 349 if (!args->GetString(1, &icon_url)) |
356 return; | 350 return; |
357 | 351 |
| 352 PrefService* pref_service = profile->GetPrefs(); |
| 353 // Updating the profile preferences will cause the cache to be updated. |
| 354 |
358 // Metrics logging variable. | 355 // Metrics logging variable. |
359 bool previously_using_gaia_icon = | 356 bool previously_using_gaia_icon = |
360 cache.IsUsingGAIAPictureOfProfileAtIndex(profile_index); | 357 pref_service->GetBoolean(prefs::kProfileUsingGAIAAvatar); |
361 | 358 |
362 size_t new_icon_index; | 359 size_t new_icon_index; |
363 if (icon_url == gaia_picture_url_) { | 360 if (icon_url == gaia_picture_url_) { |
364 cache.SetIsUsingGAIAPictureOfProfileAtIndex(profile_index, true); | 361 pref_service->SetBoolean(prefs::kProfileUsingDefaultAvatar, false); |
| 362 pref_service->SetBoolean(prefs::kProfileUsingGAIAAvatar, true); |
365 if (!previously_using_gaia_icon) { | 363 if (!previously_using_gaia_icon) { |
366 // Only log if they changed to the GAIA photo. | 364 // Only log if they changed to the GAIA photo. |
367 // Selection of GAIA photo as avatar is logged as part of the function | 365 // Selection of GAIA photo as avatar is logged as part of the function |
368 // below. | 366 // below. |
369 ProfileMetrics::LogProfileSwitchGaia(ProfileMetrics::GAIA_OPT_IN); | 367 ProfileMetrics::LogProfileSwitchGaia(ProfileMetrics::GAIA_OPT_IN); |
370 } | 368 } |
371 } else if (profiles::IsDefaultAvatarIconUrl(icon_url, &new_icon_index)) { | 369 } else if (profiles::IsDefaultAvatarIconUrl(icon_url, &new_icon_index)) { |
372 ProfileMetrics::LogProfileAvatarSelection(new_icon_index); | 370 ProfileMetrics::LogProfileAvatarSelection(new_icon_index); |
373 PrefService* pref_service = profile->GetPrefs(); | |
374 // Updating the profile preference will cause the cache to be updated for | |
375 // this preference. | |
376 pref_service->SetInteger(prefs::kProfileAvatarIndex, new_icon_index); | 371 pref_service->SetInteger(prefs::kProfileAvatarIndex, new_icon_index); |
377 cache.SetIsUsingGAIAPictureOfProfileAtIndex(profile_index, false); | 372 pref_service->SetBoolean(prefs::kProfileUsingDefaultAvatar, false); |
| 373 pref_service->SetBoolean(prefs::kProfileUsingGAIAAvatar, false); |
378 } | 374 } |
379 ProfileMetrics::LogProfileUpdate(profile_file_path); | 375 ProfileMetrics::LogProfileUpdate(profile_file_path); |
380 | 376 |
381 if (profile->IsSupervised()) | 377 if (profile->IsSupervised()) |
382 return; | 378 return; |
383 | 379 |
384 base::string16 new_profile_name; | 380 base::string16 new_profile_name; |
385 if (!args->GetString(2, &new_profile_name)) | 381 if (!args->GetString(2, &new_profile_name)) |
386 return; | 382 return; |
387 | 383 |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
537 | 533 |
538 // Update the UI buttons. | 534 // Update the UI buttons. |
539 OnHasProfileShortcuts(false); | 535 OnHasProfileShortcuts(false); |
540 } | 536 } |
541 | 537 |
542 void ManageProfileHandler::RefreshGaiaPicture(const base::ListValue* args) { | 538 void ManageProfileHandler::RefreshGaiaPicture(const base::ListValue* args) { |
543 profiles::UpdateGaiaProfilePhotoIfNeeded(Profile::FromWebUI(web_ui())); | 539 profiles::UpdateGaiaProfilePhotoIfNeeded(Profile::FromWebUI(web_ui())); |
544 } | 540 } |
545 | 541 |
546 } // namespace options | 542 } // namespace options |
OLD | NEW |