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); |