| 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/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/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 const char kGaiaExtStartPage[] = | 60 const char kGaiaExtStartPage[] = |
| 61 "chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik/main.html"; | 61 "chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik/main.html"; |
| 62 // Same as above but offline version. | 62 // Same as above but offline version. |
| 63 const char kGaiaExtStartPageOffline[] = | 63 const char kGaiaExtStartPageOffline[] = |
| 64 "chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik/offline.html"; | 64 "chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik/offline.html"; |
| 65 | 65 |
| 66 // User dictionary keys. | 66 // User dictionary keys. |
| 67 const char kKeyUsername[] = "username"; | 67 const char kKeyUsername[] = "username"; |
| 68 const char kKeyDisplayName[] = "displayName"; | 68 const char kKeyDisplayName[] = "displayName"; |
| 69 const char kKeyEmailAddress[] = "emailAddress"; | 69 const char kKeyEmailAddress[] = "emailAddress"; |
| 70 const char kKeyEnterpriseDomain[] = "enterpriseDomain"; |
| 70 const char kKeyNameTooltip[] = "nameTooltip"; | 71 const char kKeyNameTooltip[] = "nameTooltip"; |
| 71 const char kKeyPublicAccount[] = "publicAccount"; | 72 const char kKeyPublicAccount[] = "publicAccount"; |
| 72 const char kKeySignedIn[] = "signedIn"; | 73 const char kKeySignedIn[] = "signedIn"; |
| 73 const char kKeyCanRemove[] = "canRemove"; | 74 const char kKeyCanRemove[] = "canRemove"; |
| 74 const char kKeyOauthTokenStatus[] = "oauthTokenStatus"; | 75 const char kKeyOauthTokenStatus[] = "oauthTokenStatus"; |
| 75 | 76 |
| 76 // Max number of users to show. | 77 // Max number of users to show. |
| 77 const size_t kMaxUsers = 5; | 78 const size_t kMaxUsers = 5; |
| 78 | 79 |
| 79 // The Task posted to PostTaskAndReply in StartClearingDnsCache on the IO | 80 // The Task posted to PostTaskAndReply in StartClearingDnsCache on the IO |
| (...skipping 18 matching lines...) Expand all Loading... |
| 98 const CrosSettings* cros_settings) { | 99 const CrosSettings* cros_settings) { |
| 99 bool allow_new_user = true; | 100 bool allow_new_user = true; |
| 100 cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user); | 101 cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user); |
| 101 bool allow_guest = true; | 102 bool allow_guest = true; |
| 102 cros_settings->GetBoolean(kAccountsPrefAllowGuest, &allow_guest); | 103 cros_settings->GetBoolean(kAccountsPrefAllowGuest, &allow_guest); |
| 103 // Account creation depends on Guest sign-in (http://crosbug.com/24570). | 104 // Account creation depends on Guest sign-in (http://crosbug.com/24570). |
| 104 params->SetBoolean("createAccount", allow_new_user && allow_guest); | 105 params->SetBoolean("createAccount", allow_new_user && allow_guest); |
| 105 params->SetBoolean("guestSignin", allow_guest); | 106 params->SetBoolean("guestSignin", allow_guest); |
| 106 } | 107 } |
| 107 | 108 |
| 108 } // namespace | 109 } // namespace |
| 109 | 110 |
| 110 // SigninScreenHandler implementation ------------------------------------------ | 111 // SigninScreenHandler implementation ------------------------------------------ |
| 111 | 112 |
| 112 SigninScreenHandler::SigninScreenHandler( | 113 SigninScreenHandler::SigninScreenHandler( |
| 113 const scoped_refptr<NetworkStateInformer>& network_state_informer) | 114 const scoped_refptr<NetworkStateInformer>& network_state_informer) |
| 114 : delegate_(NULL), | 115 : delegate_(NULL), |
| 115 native_window_delegate_(NULL), | 116 native_window_delegate_(NULL), |
| 116 show_on_init_(false), | 117 show_on_init_(false), |
| 117 oobe_ui_(false), | 118 oobe_ui_(false), |
| 118 focus_stolen_(false), | 119 focus_stolen_(false), |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 localized_strings->SetString("errorTpmFailureReboot", | 190 localized_strings->SetString("errorTpmFailureReboot", |
| 190 l10n_util::GetStringFUTF16( | 191 l10n_util::GetStringFUTF16( |
| 191 IDS_LOGIN_ERROR_TPM_FAILURE_REBOOT, | 192 IDS_LOGIN_ERROR_TPM_FAILURE_REBOOT, |
| 192 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME))); | 193 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME))); |
| 193 localized_strings->SetString("disabledAddUserTooltip", | 194 localized_strings->SetString("disabledAddUserTooltip", |
| 194 l10n_util::GetStringUTF16( | 195 l10n_util::GetStringUTF16( |
| 195 g_browser_process->browser_policy_connector()->IsEnterpriseManaged() ? | 196 g_browser_process->browser_policy_connector()->IsEnterpriseManaged() ? |
| 196 IDS_DISABLED_ADD_USER_TOOLTIP_ENTERPRISE : | 197 IDS_DISABLED_ADD_USER_TOOLTIP_ENTERPRISE : |
| 197 IDS_DISABLED_ADD_USER_TOOLTIP)); | 198 IDS_DISABLED_ADD_USER_TOOLTIP)); |
| 198 | 199 |
| 200 localized_strings->SetString("publicAccountInfoFormat", |
| 201 l10n_util::GetStringUTF16(IDS_LOGIN_PUBLIC_ACCOUNT_INFO_FORMAT)); |
| 202 localized_strings->SetString("publicAccountReminder", |
| 203 l10n_util::GetStringUTF16(IDS_LOGIN_PUBLIC_ACCOUNT_SIGNOUT_REMINDER)); |
| 204 localized_strings->SetString("publicAccountEnter", |
| 205 l10n_util::GetStringUTF16(IDS_LOGIN_PUBLIC_ACCOUNT_ENTER)); |
| 206 |
| 199 if (chromeos::KioskModeSettings::Get()->IsKioskModeEnabled()) { | 207 if (chromeos::KioskModeSettings::Get()->IsKioskModeEnabled()) { |
| 200 localized_strings->SetString("demoLoginMessage", | 208 localized_strings->SetString("demoLoginMessage", |
| 201 l10n_util::GetStringUTF16(IDS_KIOSK_MODE_LOGIN_MESSAGE)); | 209 l10n_util::GetStringUTF16(IDS_KIOSK_MODE_LOGIN_MESSAGE)); |
| 202 } | 210 } |
| 203 } | 211 } |
| 204 | 212 |
| 205 void SigninScreenHandler::Show(bool oobe_ui) { | 213 void SigninScreenHandler::Show(bool oobe_ui) { |
| 206 CHECK(delegate_); | 214 CHECK(delegate_); |
| 207 oobe_ui_ = oobe_ui; | 215 oobe_ui_ = oobe_ui; |
| 208 if (!page_is_ready()) { | 216 if (!page_is_ready()) { |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 base::Unretained(this))); | 290 base::Unretained(this))); |
| 283 web_ui()->RegisterMessageCallback("getUsers", | 291 web_ui()->RegisterMessageCallback("getUsers", |
| 284 base::Bind(&SigninScreenHandler::HandleGetUsers, | 292 base::Bind(&SigninScreenHandler::HandleGetUsers, |
| 285 base::Unretained(this))); | 293 base::Unretained(this))); |
| 286 web_ui()->RegisterMessageCallback("launchDemoUser", | 294 web_ui()->RegisterMessageCallback("launchDemoUser", |
| 287 base::Bind(&SigninScreenHandler::HandleLaunchDemoUser, | 295 base::Bind(&SigninScreenHandler::HandleLaunchDemoUser, |
| 288 base::Unretained(this))); | 296 base::Unretained(this))); |
| 289 web_ui()->RegisterMessageCallback("launchIncognito", | 297 web_ui()->RegisterMessageCallback("launchIncognito", |
| 290 base::Bind(&SigninScreenHandler::HandleLaunchIncognito, | 298 base::Bind(&SigninScreenHandler::HandleLaunchIncognito, |
| 291 base::Unretained(this))); | 299 base::Unretained(this))); |
| 300 web_ui()->RegisterMessageCallback("launchPublicAccount", |
| 301 base::Bind(&SigninScreenHandler::HandleLaunchPublicAccount, |
| 302 base::Unretained(this))); |
| 292 web_ui()->RegisterMessageCallback("offlineLogin", | 303 web_ui()->RegisterMessageCallback("offlineLogin", |
| 293 base::Bind(&SigninScreenHandler::HandleOfflineLogin, | 304 base::Bind(&SigninScreenHandler::HandleOfflineLogin, |
| 294 base::Unretained(this))); | 305 base::Unretained(this))); |
| 295 web_ui()->RegisterMessageCallback("showAddUser", | 306 web_ui()->RegisterMessageCallback("showAddUser", |
| 296 base::Bind(&SigninScreenHandler::HandleShowAddUser, | 307 base::Bind(&SigninScreenHandler::HandleShowAddUser, |
| 297 base::Unretained(this))); | 308 base::Unretained(this))); |
| 298 web_ui()->RegisterMessageCallback("shutdownSystem", | 309 web_ui()->RegisterMessageCallback("shutdownSystem", |
| 299 base::Bind(&SigninScreenHandler::HandleShutdownSystem, | 310 base::Bind(&SigninScreenHandler::HandleShutdownSystem, |
| 300 base::Unretained(this))); | 311 base::Unretained(this))); |
| 301 web_ui()->RegisterMessageCallback("loadWallpaper", | 312 web_ui()->RegisterMessageCallback("loadWallpaper", |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 617 void SigninScreenHandler::HandleLaunchDemoUser(const base::ListValue* args) { | 628 void SigninScreenHandler::HandleLaunchDemoUser(const base::ListValue* args) { |
| 618 if (delegate_) | 629 if (delegate_) |
| 619 delegate_->LoginAsRetailModeUser(); | 630 delegate_->LoginAsRetailModeUser(); |
| 620 } | 631 } |
| 621 | 632 |
| 622 void SigninScreenHandler::HandleLaunchIncognito(const base::ListValue* args) { | 633 void SigninScreenHandler::HandleLaunchIncognito(const base::ListValue* args) { |
| 623 if (delegate_) | 634 if (delegate_) |
| 624 delegate_->LoginAsGuest(); | 635 delegate_->LoginAsGuest(); |
| 625 } | 636 } |
| 626 | 637 |
| 638 void SigninScreenHandler::HandleLaunchPublicAccount( |
| 639 const base::ListValue* args) { |
| 640 // TODO(bartfab): Wire this with real public account signin. |
| 641 } |
| 642 |
| 627 void SigninScreenHandler::HandleOfflineLogin(const base::ListValue* args) { | 643 void SigninScreenHandler::HandleOfflineLogin(const base::ListValue* args) { |
| 628 if (!delegate_ || delegate_->IsShowUsers()) { | 644 if (!delegate_ || delegate_->IsShowUsers()) { |
| 629 NOTREACHED(); | 645 NOTREACHED(); |
| 630 return; | 646 return; |
| 631 } | 647 } |
| 632 if (!args->GetString(0, &email_)) | 648 if (!args->GetString(0, &email_)) |
| 633 email_.clear(); | 649 email_.clear(); |
| 634 | 650 |
| 635 // Load auth extension. Parameters are: force reload, do not load extension in | 651 // Load auth extension. Parameters are: force reload, do not load extension in |
| 636 // background, use offline version. | 652 // background, use offline version. |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 742 if (non_owner_count < max_non_owner_users || is_owner) { | 758 if (non_owner_count < max_non_owner_users || is_owner) { |
| 743 DictionaryValue* user_dict = new DictionaryValue(); | 759 DictionaryValue* user_dict = new DictionaryValue(); |
| 744 user_dict->SetString(kKeyUsername, email); | 760 user_dict->SetString(kKeyUsername, email); |
| 745 user_dict->SetString(kKeyEmailAddress, (*it)->display_email()); | 761 user_dict->SetString(kKeyEmailAddress, (*it)->display_email()); |
| 746 user_dict->SetString(kKeyDisplayName, (*it)->GetDisplayName()); | 762 user_dict->SetString(kKeyDisplayName, (*it)->GetDisplayName()); |
| 747 user_dict->SetString(kKeyNameTooltip, (*it)->display_email()); | 763 user_dict->SetString(kKeyNameTooltip, (*it)->display_email()); |
| 748 user_dict->SetBoolean(kKeyPublicAccount, public_account); | 764 user_dict->SetBoolean(kKeyPublicAccount, public_account); |
| 749 user_dict->SetInteger(kKeyOauthTokenStatus, (*it)->oauth_token_status()); | 765 user_dict->SetInteger(kKeyOauthTokenStatus, (*it)->oauth_token_status()); |
| 750 user_dict->SetBoolean(kKeySignedIn, signed_in); | 766 user_dict->SetBoolean(kKeySignedIn, signed_in); |
| 751 | 767 |
| 768 if (public_account) { |
| 769 policy::BrowserPolicyConnector* policy_connector = |
| 770 g_browser_process->browser_policy_connector(); |
| 771 |
| 772 if (policy_connector->IsEnterpriseManaged()) { |
| 773 user_dict->SetString(kKeyEnterpriseDomain, |
| 774 policy_connector->GetEnterpriseDomain()); |
| 775 } |
| 776 } |
| 777 |
| 752 // Single user check here is necessary because owner info might not be | 778 // Single user check here is necessary because owner info might not be |
| 753 // available when running into login screen on first boot. | 779 // available when running into login screen on first boot. |
| 754 // See http://crosbug.com/12723 | 780 // See http://crosbug.com/12723 |
| 755 user_dict->SetBoolean(kKeyCanRemove, | 781 user_dict->SetBoolean(kKeyCanRemove, |
| 756 !single_user && | 782 !single_user && |
| 757 !email.empty() && | 783 !email.empty() && |
| 758 !is_owner && | 784 !is_owner && |
| 759 !public_account && | 785 !public_account && |
| 760 !signed_in); | 786 !signed_in); |
| 761 | 787 |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1004 ConnectionType last_network_type) { | 1030 ConnectionType last_network_type) { |
| 1005 base::FundamentalValue state_value(state); | 1031 base::FundamentalValue state_value(state); |
| 1006 base::StringValue network_value(network_name); | 1032 base::StringValue network_value(network_name); |
| 1007 base::StringValue reason_value(reason); | 1033 base::StringValue reason_value(reason); |
| 1008 base::FundamentalValue last_network_value(last_network_type); | 1034 base::FundamentalValue last_network_value(last_network_type); |
| 1009 web_ui()->CallJavascriptFunction(callback, | 1035 web_ui()->CallJavascriptFunction(callback, |
| 1010 state_value, network_value, reason_value, last_network_value); | 1036 state_value, network_value, reason_value, last_network_value); |
| 1011 } | 1037 } |
| 1012 | 1038 |
| 1013 } // namespace chromeos | 1039 } // namespace chromeos |
| OLD | NEW |