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

Side by Side Diff: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc

Issue 8537015: [cros] User images are updated on the login screen. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/ui/webui/chromeos/login/signin_screen_handler.h" 5 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_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/command_line.h" 9 #include "base/command_line.h"
10 #include "base/hash_tables.h" 10 #include "base/hash_tables.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/stringprintf.h"
13 #include "base/task.h" 12 #include "base/task.h"
14 #include "base/values.h" 13 #include "base/values.h"
15 #include "chrome/browser/browser_process.h" 14 #include "chrome/browser/browser_process.h"
16 #include "chrome/browser/browser_shutdown.h" 15 #include "chrome/browser/browser_shutdown.h"
17 #include "chrome/browser/chromeos/cros/cros_library.h" 16 #include "chrome/browser/chromeos/cros/cros_library.h"
18 #include "chrome/browser/chromeos/cros/network_library.h" 17 #include "chrome/browser/chromeos/cros/network_library.h"
19 #include "chrome/browser/chromeos/cros/power_library.h" 18 #include "chrome/browser/chromeos/cros/power_library.h"
20 #include "chrome/browser/chromeos/input_method/input_method_manager.h" 19 #include "chrome/browser/chromeos/input_method/input_method_manager.h"
21 #include "chrome/browser/chromeos/input_method/xkeyboard.h" 20 #include "chrome/browser/chromeos/input_method/xkeyboard.h"
22 #include "chrome/browser/chromeos/login/screen_locker.h" 21 #include "chrome/browser/chromeos/login/screen_locker.h"
(...skipping 26 matching lines...) Expand all
49 const char kGaiaSigninScreen[] = "gaia-signin"; 48 const char kGaiaSigninScreen[] = "gaia-signin";
50 // Start page of GAIA authentication extension. 49 // Start page of GAIA authentication extension.
51 const char kGaiaExtStartPage[] = 50 const char kGaiaExtStartPage[] =
52 "chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik/main.html"; 51 "chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik/main.html";
53 52
54 // User dictionary keys. 53 // User dictionary keys.
55 const char kKeyName[] = "name"; 54 const char kKeyName[] = "name";
56 const char kKeyEmailAddress[] = "emailAddress"; 55 const char kKeyEmailAddress[] = "emailAddress";
57 const char kKeySignedIn[] = "signedIn"; 56 const char kKeySignedIn[] = "signedIn";
58 const char kKeyCanRemove[] = "canRemove"; 57 const char kKeyCanRemove[] = "canRemove";
59 const char kKeyImageUrl[] = "imageUrl";
60 const char kKeyOauthTokenStatus[] = "oauthTokenStatus"; 58 const char kKeyOauthTokenStatus[] = "oauthTokenStatus";
61 59
62 // Max number of users to show. 60 // Max number of users to show.
63 const int kMaxUsers = 5; 61 const int kMaxUsers = 5;
64 62
65 const char kReasonNetworkChanged[] = "network changed"; 63 const char kReasonNetworkChanged[] = "network changed";
66 const char kReasonProxyChanged[] = "proxy changed"; 64 const char kReasonProxyChanged[] = "proxy changed";
67 65
68 // Sanitize emails. Currently, it only ensures all emails have a domain. 66 // Sanitize emails. Currently, it only ensures all emails have a domain.
69 std::string SanitizeEmail(const std::string& email) { 67 std::string SanitizeEmail(const std::string& email) {
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 397
400 void SigninScreenHandler::OnLoginSuccess(const std::string& username) { 398 void SigninScreenHandler::OnLoginSuccess(const std::string& username) {
401 base::StringValue username_value(username); 399 base::StringValue username_value(username);
402 web_ui_->CallJavascriptFunction("cr.ui.Oobe.onLoginSuccess", username_value); 400 web_ui_->CallJavascriptFunction("cr.ui.Oobe.onLoginSuccess", username_value);
403 } 401 }
404 402
405 void SigninScreenHandler::OnUserRemoved(const std::string& username) { 403 void SigninScreenHandler::OnUserRemoved(const std::string& username) {
406 SendUserList(false); 404 SendUserList(false);
407 } 405 }
408 406
407 void SigninScreenHandler::OnUserImageChanged(const User& user) {
408 base::StringValue user_email(user.email());
409 web_ui_->CallJavascriptFunction(
410 "login.AccountPickerScreen.updateUserImage", user_email);
411 }
412
409 void SigninScreenHandler::ShowError(int login_attempts, 413 void SigninScreenHandler::ShowError(int login_attempts,
410 const std::string& error_text, 414 const std::string& error_text,
411 const std::string& help_link_text, 415 const std::string& help_link_text,
412 HelpAppLauncher::HelpTopic help_topic_id) { 416 HelpAppLauncher::HelpTopic help_topic_id) {
413 base::FundamentalValue login_attempts_value(login_attempts); 417 base::FundamentalValue login_attempts_value(login_attempts);
414 base::StringValue error_message(error_text); 418 base::StringValue error_message(error_text);
415 base::StringValue help_link(help_link_text); 419 base::StringValue help_link(help_link_text);
416 base::FundamentalValue help_id(static_cast<int>(help_topic_id)); 420 base::FundamentalValue help_id(static_cast<int>(help_topic_id));
417 web_ui_->CallJavascriptFunction("cr.ui.Oobe.showSignInError", 421 web_ui_->CallJavascriptFunction("cr.ui.Oobe.showSignInError",
418 login_attempts_value, 422 login_attempts_value,
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
610 614
611 // Single user check here is necessary because owner info might not be 615 // Single user check here is necessary because owner info might not be
612 // available when running into login screen on first boot. 616 // available when running into login screen on first boot.
613 // See http://crosbug.com/12723 617 // See http://crosbug.com/12723
614 user_dict->SetBoolean(kKeyCanRemove, 618 user_dict->SetBoolean(kKeyCanRemove,
615 !single_user && 619 !single_user &&
616 !email.empty() && 620 !email.empty() &&
617 !is_owner && 621 !is_owner &&
618 !signed_in); 622 !signed_in);
619 623
620 if (!email.empty()) {
621 long long timestamp = base::TimeTicks::Now().ToInternalValue();
622 std::string image_url(
623 StringPrintf("%s%s?id=%lld",
624 chrome::kChromeUIUserImageURL,
625 email.c_str(),
626 timestamp));
627 user_dict->SetString(kKeyImageUrl, image_url);
628 } else {
629 std::string image_url(std::string(chrome::kChromeUIScheme) + "://" +
630 std::string(chrome::kChromeUIThemePath) +
631 "/IDR_LOGIN_DEFAULT_USER");
632 user_dict->SetString(kKeyImageUrl, image_url);
633 }
634
635 users_list.Append(user_dict); 624 users_list.Append(user_dict);
636 if (!is_owner) 625 if (!is_owner)
637 ++non_owner_count; 626 ++non_owner_count;
638 } 627 }
639 } 628 }
640 629
641 if (show_guest) { 630 if (show_guest) {
642 // Add the Guest to the user list. 631 // Add the Guest to the user list.
643 DictionaryValue* guest_dict = new DictionaryValue(); 632 DictionaryValue* guest_dict = new DictionaryValue();
644 guest_dict->SetString(kKeyName, l10n_util::GetStringUTF16(IDS_GUEST)); 633 guest_dict->SetString(kKeyName, l10n_util::GetStringUTF16(IDS_GUEST));
645 guest_dict->SetString(kKeyEmailAddress, ""); 634 guest_dict->SetString(kKeyEmailAddress, "");
646 guest_dict->SetBoolean(kKeyCanRemove, false); 635 guest_dict->SetBoolean(kKeyCanRemove, false);
647 guest_dict->SetInteger(kKeyOauthTokenStatus, 636 guest_dict->SetInteger(kKeyOauthTokenStatus,
648 User::OAUTH_TOKEN_STATUS_UNKNOWN); 637 User::OAUTH_TOKEN_STATUS_UNKNOWN);
649 std::string image_url(std::string(chrome::kChromeUIScheme) + "://" +
650 std::string(chrome::kChromeUIThemePath) + "/IDR_LOGIN_GUEST");
651 guest_dict->SetString(kKeyImageUrl, image_url);
652 users_list.Append(guest_dict); 638 users_list.Append(guest_dict);
653 } 639 }
654 640
655 // Call the Javascript callback 641 // Call the Javascript callback
656 base::FundamentalValue animated_value(animated); 642 base::FundamentalValue animated_value(animated);
657 web_ui_->CallJavascriptFunction("login.AccountPickerScreen.loadUsers", 643 web_ui_->CallJavascriptFunction("login.AccountPickerScreen.loadUsers",
658 users_list, animated_value); 644 users_list, animated_value);
659 } 645 }
660 646
661 void SigninScreenHandler::HandleAccountPickerReady( 647 void SigninScreenHandler::HandleAccountPickerReady(
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 724
739 cookie_remover_ = new BrowsingDataRemover( 725 cookie_remover_ = new BrowsingDataRemover(
740 Profile::FromBrowserContext(web_ui_->tab_contents()->browser_context()), 726 Profile::FromBrowserContext(web_ui_->tab_contents()->browser_context()),
741 BrowsingDataRemover::EVERYTHING, 727 BrowsingDataRemover::EVERYTHING,
742 base::Time()); 728 base::Time());
743 cookie_remover_->AddObserver(this); 729 cookie_remover_->AddObserver(this);
744 cookie_remover_->Remove(BrowsingDataRemover::REMOVE_SITE_DATA); 730 cookie_remover_->Remove(BrowsingDataRemover::REMOVE_SITE_DATA);
745 } 731 }
746 732
747 } // namespace chromeos 733 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698