Chromium Code Reviews| Index: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
| diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
| index 140ecbaedb7460e0cc398cbf6546d27dd23696ce..0969c9b445564f476c928efa0bb4c785a9d55432 100644 |
| --- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
| +++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
| @@ -68,6 +68,7 @@ const char kKeyUsername[] = "username"; |
| const char kKeyDisplayName[] = "displayName"; |
| const char kKeyEmailAddress[] = "emailAddress"; |
| const char kKeyNameTooltip[] = "nameTooltip"; |
| +const char kKeyPublicAccount[] = "publicAccount"; |
| const char kKeySignedIn[] = "signedIn"; |
| const char kKeyCanRemove[] = "canRemove"; |
| const char kKeyOauthTokenStatus[] = "oauthTokenStatus"; |
| @@ -104,7 +105,7 @@ void UpdateAuthParamsFromSettings(DictionaryValue* params, |
| params->SetBoolean("guestSignin", allow_guest); |
| } |
| -} // namespace |
| +} // namespace |
|
bartfab (slow)
2012/11/28 15:18:33
Nit: We always have two spaces before |namespace|.
xiyuan
2012/12/01 00:24:19
Most of the file are having two spaces before "//"
|
| // SigninScreenHandler implementation ------------------------------------------ |
| @@ -189,12 +190,33 @@ void SigninScreenHandler::GetLocalizedStrings( |
| l10n_util::GetStringFUTF16( |
| IDS_LOGIN_ERROR_TPM_FAILURE_REBOOT, |
| l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME))); |
| + |
| + policy::BrowserPolicyConnector* policy_connector = |
| + g_browser_process->browser_policy_connector(); |
| + |
| localized_strings->SetString("disabledAddUserTooltip", |
| l10n_util::GetStringUTF16( |
| - g_browser_process->browser_policy_connector()->IsEnterpriseManaged() ? |
| + policy_connector->IsEnterpriseManaged() ? |
| IDS_DISABLED_ADD_USER_TOOLTIP_ENTERPRISE : |
| IDS_DISABLED_ADD_USER_TOOLTIP)); |
| + std::string enterprise_domain; |
| + if (policy_connector->IsEnterpriseManaged()) |
| + enterprise_domain = policy_connector->GetEnterpriseDomain(); |
| + |
| + if (enterprise_domain.empty()) { |
|
bartfab (slow)
2012/11/28 15:18:33
This case would be an error - public accounts defi
Nikita (slow)
2012/11/28 18:57:34
Is this a possible situation:
Chromebook stays at
bartfab (slow)
2012/11/28 19:19:11
Yes, this is entirely possible. A policy refresh c
bartfab (slow)
2012/11/29 14:39:39
Nikita clarified what happens when the login scree
xiyuan
2012/12/01 00:24:19
In new patch, the domain name is sent as part of u
|
| + localized_strings->SetString("publicAccountInfo", std::string()); |
| + } else { |
| + localized_strings->SetString("publicAccountInfo", |
| + l10n_util::GetStringFUTF16(IDS_LOGIN_PUBLIC_ACCOUNT_INFO, |
| + UTF8ToUTF16(enterprise_domain))); |
| + } |
| + |
| + localized_strings->SetString("publicAccountHint", |
| + l10n_util::GetStringUTF16(IDS_LOGIN_PUBLIC_ACCOUNT_HINT)); |
| + localized_strings->SetString("publicAccountEnter", |
| + l10n_util::GetStringUTF16(IDS_LOGIN_PUBLIC_ACCOUNT_ENTER)); |
| + |
| if (chromeos::KioskModeSettings::Get()->IsKioskModeEnabled()) { |
| localized_strings->SetString("demoLoginMessage", |
| l10n_util::GetStringUTF16(IDS_KIOSK_MODE_LOGIN_MESSAGE)); |
| @@ -288,6 +310,9 @@ void SigninScreenHandler::RegisterMessages() { |
| web_ui()->RegisterMessageCallback("launchIncognito", |
| base::Bind(&SigninScreenHandler::HandleLaunchIncognito, |
| base::Unretained(this))); |
| + web_ui()->RegisterMessageCallback("launchPublicAccount", |
| + base::Bind(&SigninScreenHandler::HandleLaunchPublicAccount, |
| + base::Unretained(this))); |
| web_ui()->RegisterMessageCallback("offlineLogin", |
| base::Bind(&SigninScreenHandler::HandleOfflineLogin, |
| base::Unretained(this))); |
| @@ -623,6 +648,20 @@ void SigninScreenHandler::HandleLaunchIncognito(const base::ListValue* args) { |
| delegate_->LoginAsGuest(); |
| } |
| +void SigninScreenHandler::HandleLaunchPublicAccount( |
| + const base::ListValue* args) { |
| + std::string email; |
| + if (!args->GetString(0, &email)) { |
| + NOTREACHED(); |
| + return; |
| + } |
| + email = gaia::SanitizeEmail(email); |
|
bartfab (slow)
2012/11/28 15:11:38
This is not used right now. Please remove. I will
xiyuan
2012/12/01 00:24:19
Removed
|
| + |
| + // TODO(xiyuan): Wire this with real public account signin. |
|
bartfab (slow)
2012/11/28 15:11:38
Feel free to list me as the TODO owner here. I wil
xiyuan
2012/12/01 00:24:19
Done.
|
| + if (delegate_) |
| + delegate_->LoginAsGuest(); |
| +} |
| + |
| void SigninScreenHandler::HandleOfflineLogin(const base::ListValue* args) { |
| if (!delegate_ || delegate_->IsShowUsers()) { |
| NOTREACHED(); |
| @@ -735,6 +774,7 @@ void SigninScreenHandler::SendUserList(bool animated) { |
| std::string owner; |
| chromeos::CrosSettings::Get()->GetString(chromeos::kDeviceOwner, &owner); |
| bool is_owner = (email == owner); |
| + bool public_account = ((*it)->GetType() == User::USER_TYPE_PUBLIC_ACCOUNT); |
| bool signed_in = *it == UserManager::Get()->GetLoggedInUser(); |
| if (non_owner_count < max_non_owner_users || is_owner) { |
| @@ -743,6 +783,7 @@ void SigninScreenHandler::SendUserList(bool animated) { |
| user_dict->SetString(kKeyEmailAddress, (*it)->display_email()); |
| user_dict->SetString(kKeyDisplayName, (*it)->GetDisplayName()); |
| user_dict->SetString(kKeyNameTooltip, (*it)->display_email()); |
| + user_dict->SetBoolean(kKeyPublicAccount, public_account); |
| user_dict->SetInteger(kKeyOauthTokenStatus, (*it)->oauth_token_status()); |
| user_dict->SetBoolean(kKeySignedIn, signed_in); |
| @@ -753,6 +794,7 @@ void SigninScreenHandler::SendUserList(bool animated) { |
| !single_user && |
| !email.empty() && |
| !is_owner && |
| + !public_account && |
| !signed_in); |
| users_list.Append(user_dict); |