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

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

Issue 11308081: cros: Account picker UI for public account. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased on top of 11419184 Created 8 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 side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698