diff options
author | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-06 10:01:05 +0000 |
---|---|---|
committer | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-06 10:01:05 +0000 |
commit | f9268a9615feeed557e0a143f86dc35bed6af3c3 (patch) | |
tree | c8780c1759474863570b4640306783ada9fc79dc /chrome | |
parent | b5f1e920084c8f227d83ebc5f77be749e53f4f3f (diff) | |
download | chromium_src-f9268a9615feeed557e0a143f86dc35bed6af3c3.zip chromium_src-f9268a9615feeed557e0a143f86dc35bed6af3c3.tar.gz chromium_src-f9268a9615feeed557e0a143f86dc35bed6af3c3.tar.bz2 |
Add accelerator for triggering enrollment from login prompt.
It's still only enabled for non-official builds, since the connection to
GAIA and policy infrastructure is still missing.
BUG=chromium-os:13277
TEST=manual
Review URL: http://codereview.chromium.org/6689010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80599 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
11 files changed, 68 insertions, 21 deletions
diff --git a/chrome/browser/chromeos/login/existing_user_controller.cc b/chrome/browser/chromeos/login/existing_user_controller.cc index afebaa3..44e14db 100644 --- a/chrome/browser/chromeos/login/existing_user_controller.cc +++ b/chrome/browser/chromeos/login/existing_user_controller.cc @@ -234,6 +234,16 @@ void ExistingUserController::OnUserSelected(const std::string& username) { num_login_attempts_ = 0; } +void ExistingUserController::OnStartEnterpriseEnrollment() { +#if !defined(OFFICIAL_BUILD) + // TODO(mnissler): Make sure to only start if the device doesn't have an owner + // and isn't already enrolled. + host_->StartWizard(WizardController::kEnterpriseEnrollmentScreenName, + NULL, GURL()); + login_display_->OnFadeOut(); +#endif +} + //////////////////////////////////////////////////////////////////////////////// // ExistingUserController, LoginPerformer::Delegate implementation: // diff --git a/chrome/browser/chromeos/login/existing_user_controller.h b/chrome/browser/chromeos/login/existing_user_controller.h index d3cc9fa..f3a9120 100644 --- a/chrome/browser/chromeos/login/existing_user_controller.h +++ b/chrome/browser/chromeos/login/existing_user_controller.h @@ -8,6 +8,7 @@ #include <string> +#include "base/compiler_specific.h" #include "base/memory/scoped_ptr.h" #include "base/string16.h" #include "base/task.h" @@ -59,13 +60,14 @@ class ExistingUserController : public LoginDisplay::Delegate, void Init(const UserVector& users); // LoginDisplay::Delegate: implementation - virtual void CreateAccount(); - virtual string16 GetConnectedNetworkName(); - virtual void FixCaptivePortal(); + virtual void CreateAccount() OVERRIDE; + virtual string16 GetConnectedNetworkName() OVERRIDE; + virtual void FixCaptivePortal() OVERRIDE; virtual void Login(const std::string& username, - const std::string& password); - virtual void LoginAsGuest(); - virtual void OnUserSelected(const std::string& username); + const std::string& password) OVERRIDE; + virtual void LoginAsGuest() OVERRIDE; + virtual void OnUserSelected(const std::string& username) OVERRIDE; + virtual void OnStartEnterpriseEnrollment() OVERRIDE; // NotificationObserver implementation. virtual void Observe(NotificationType type, diff --git a/chrome/browser/chromeos/login/existing_user_view.cc b/chrome/browser/chromeos/login/existing_user_view.cc index ab5d3a4..9f287de 100644 --- a/chrome/browser/chromeos/login/existing_user_view.cc +++ b/chrome/browser/chromeos/login/existing_user_view.cc @@ -66,10 +66,13 @@ class UserEntryTextfield : public TextfieldWithMargin { ExistingUserView::ExistingUserView(UserController* user_controller) : user_controller_(user_controller), password_field_(NULL), + accel_enterprise_enrollment_( + views::Accelerator(ui::VKEY_E, false, true, true)), accel_login_off_the_record_( - views::Accelerator(ui::VKEY_B, false, false, true)), + views::Accelerator(ui::VKEY_B, false, false, true)), accel_toggle_accessibility_( WizardAccessibilityHelper::GetAccelerator()) { + AddAccelerator(accel_enterprise_enrollment_); AddAccelerator(accel_login_off_the_record_); AddAccelerator(accel_toggle_accessibility_); } @@ -96,7 +99,10 @@ void ExistingUserView::RecreateFields() { bool ExistingUserView::AcceleratorPressed( const views::Accelerator& accelerator) { - if (accelerator == accel_login_off_the_record_) { + if (accelerator == accel_enterprise_enrollment_) { + user_controller_->OnStartEnterpriseEnrollment(); + return true; + } else if (accelerator == accel_login_off_the_record_) { user_controller_->OnLoginAsGuest(); return true; } else if (accelerator == accel_toggle_accessibility_) { diff --git a/chrome/browser/chromeos/login/existing_user_view.h b/chrome/browser/chromeos/login/existing_user_view.h index be5c5ce..a4bf1c4 100644 --- a/chrome/browser/chromeos/login/existing_user_view.h +++ b/chrome/browser/chromeos/login/existing_user_view.h @@ -53,6 +53,7 @@ class ExistingUserView : public ThrobberHostView, // For editing the password. views::Textfield* password_field_; + views::Accelerator accel_enterprise_enrollment_; views::Accelerator accel_login_off_the_record_; views::Accelerator accel_toggle_accessibility_; diff --git a/chrome/browser/chromeos/login/login_display.h b/chrome/browser/chromeos/login/login_display.h index c20d6c0..1620385 100644 --- a/chrome/browser/chromeos/login/login_display.h +++ b/chrome/browser/chromeos/login/login_display.h @@ -52,6 +52,10 @@ class LoginDisplay : public RemoveUserDelegate { // Called when existing user pod is selected in the UI. virtual void OnUserSelected(const std::string& username) = 0; + + // Called when the user requests enterprise enrollment. + virtual void OnStartEnterpriseEnrollment() = 0; + protected: virtual ~Delegate(); }; diff --git a/chrome/browser/chromeos/login/new_user_view.cc b/chrome/browser/chromeos/login/new_user_view.cc index 95f19ca..6466577 100644 --- a/chrome/browser/chromeos/login/new_user_view.cc +++ b/chrome/browser/chromeos/login/new_user_view.cc @@ -116,10 +116,10 @@ NewUserView::NewUserView(Delegate* delegate, create_account_link_(NULL), guest_link_(NULL), languages_menubutton_(NULL), - accel_focus_pass_(views::Accelerator(ui::VKEY_P, false, false, true)), - accel_focus_user_(views::Accelerator(ui::VKEY_U, false, false, true)), - accel_login_off_the_record_( - views::Accelerator(ui::VKEY_B, false, false, true)), + accel_focus_pass_(ui::VKEY_P, false, false, true), + accel_focus_user_(ui::VKEY_U, false, false, true), + accel_enterprise_enrollment_(ui::VKEY_E, false, true, true), + accel_login_off_the_record_(ui::VKEY_B, false, false, true), accel_toggle_accessibility_(WizardAccessibilityHelper::GetAccelerator()), delegate_(delegate), ALLOW_THIS_IN_INITIALIZER_LIST(focus_grabber_factory_(this)), @@ -198,6 +198,7 @@ void NewUserView::Init() { // Set up accelerators. AddAccelerator(accel_focus_user_); AddAccelerator(accel_focus_pass_); + AddAccelerator(accel_enterprise_enrollment_); AddAccelerator(accel_login_off_the_record_); AddAccelerator(accel_toggle_accessibility_); @@ -220,6 +221,8 @@ bool NewUserView::AcceleratorPressed(const views::Accelerator& accelerator) { username_field_->RequestFocus(); } else if (accelerator == accel_focus_pass_) { password_field_->RequestFocus(); + } else if (accelerator == accel_enterprise_enrollment_) { + delegate_->OnStartEnterpriseEnrollment(); } else if (accelerator == accel_login_off_the_record_) { delegate_->OnLoginAsGuest(); } else if (accelerator == accel_toggle_accessibility_) { diff --git a/chrome/browser/chromeos/login/new_user_view.h b/chrome/browser/chromeos/login/new_user_view.h index 3d3010b..68f88d0 100644 --- a/chrome/browser/chromeos/login/new_user_view.h +++ b/chrome/browser/chromeos/login/new_user_view.h @@ -49,6 +49,9 @@ class NewUserView : public ThrobberHostView, // User initiated new account creation. virtual void OnCreateAccount() = 0; + // User requested enterprise enrollment. + virtual void OnStartEnterpriseEnrollment() = 0; + // User started typing so clear all error messages. virtual void ClearErrors() = 0; @@ -157,6 +160,7 @@ class NewUserView : public ThrobberHostView, views::Accelerator accel_focus_pass_; views::Accelerator accel_focus_user_; + views::Accelerator accel_enterprise_enrollment_; views::Accelerator accel_login_off_the_record_; views::Accelerator accel_toggle_accessibility_; diff --git a/chrome/browser/chromeos/login/user_controller.cc b/chrome/browser/chromeos/login/user_controller.cc index 3af69ef9..c613408 100644 --- a/chrome/browser/chromeos/login/user_controller.cc +++ b/chrome/browser/chromeos/login/user_controller.cc @@ -8,7 +8,6 @@ #include <vector> #include "base/utf_string_conversions.h" -#include "chrome/browser/chromeos/user_cros_settings_provider.h" #include "chrome/browser/chromeos/login/existing_user_view.h" #include "chrome/browser/chromeos/login/guest_user_view.h" #include "chrome/browser/chromeos/login/helper.h" @@ -16,6 +15,7 @@ #include "chrome/browser/chromeos/login/user_view.h" #include "chrome/browser/chromeos/login/username_view.h" #include "chrome/browser/chromeos/login/wizard_controller.h" +#include "chrome/browser/chromeos/user_cros_settings_provider.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" #include "third_party/cros/chromeos_wm_ipc_enums.h" @@ -304,6 +304,10 @@ void UserController::OnCreateAccount() { delegate_->CreateAccount(); } +void UserController::OnStartEnterpriseEnrollment() { + delegate_->StartEnterpriseEnrollment(); +} + void UserController::OnLoginAsGuest() { user_input_->EnableInputControls(false); StartThrobber(); diff --git a/chrome/browser/chromeos/login/user_controller.h b/chrome/browser/chromeos/login/user_controller.h index 57ff851..2f7ab54 100644 --- a/chrome/browser/chromeos/login/user_controller.h +++ b/chrome/browser/chromeos/login/user_controller.h @@ -8,6 +8,7 @@ #include <string> +#include "base/compiler_specific.h" #include "base/string16.h" #include "base/task.h" #include "chrome/browser/chromeos/login/new_user_view.h" @@ -18,6 +19,7 @@ #include "views/controls/button/button.h" #include "views/controls/textfield/textfield.h" #include "views/widget/widget_delegate.h" + namespace views { class WidgetGtk; } @@ -46,6 +48,10 @@ class UserController : public views::WidgetDelegate, // Selects user entry with specified |index|. // Does nothing if current user is already selected. virtual void SelectUser(int index) = 0; + + // Switch to the enterprise enrollment screen (if applicable). + virtual void StartEnterpriseEnrollment() = 0; + protected: virtual ~Delegate() {} }; @@ -110,6 +116,7 @@ class UserController : public views::WidgetDelegate, const std::string& password) OVERRIDE; virtual void OnLoginAsGuest() OVERRIDE; virtual void OnCreateAccount() OVERRIDE; + virtual void OnStartEnterpriseEnrollment() OVERRIDE; virtual void ClearErrors() OVERRIDE; virtual void NavigateAway() OVERRIDE; diff --git a/chrome/browser/chromeos/login/views_login_display.cc b/chrome/browser/chromeos/login/views_login_display.cc index 2f242fe..1150639 100644 --- a/chrome/browser/chromeos/login/views_login_display.cc +++ b/chrome/browser/chromeos/login/views_login_display.cc @@ -15,8 +15,8 @@ #include "chrome/browser/chromeos/wm_ipc.h" #include "chrome/browser/ui/views/window.h" #include "grit/chromium_strings.h" -#include "grit/theme_resources.h" #include "grit/generated_resources.h" +#include "grit/theme_resources.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" #include "views/widget/widget_gtk.h" @@ -292,6 +292,10 @@ void ViewsLoginDisplay::SelectUser(int index) { } } +void ViewsLoginDisplay::StartEnterpriseEnrollment() { + delegate()->OnStartEnterpriseEnrollment(); +} + //////////////////////////////////////////////////////////////////////////////// // ViewsLoginDisplay, views::MessageBubbleDelegate implementation: // diff --git a/chrome/browser/chromeos/login/views_login_display.h b/chrome/browser/chromeos/login/views_login_display.h index a6f1efe..4cc770e 100644 --- a/chrome/browser/chromeos/login/views_login_display.h +++ b/chrome/browser/chromeos/login/views_login_display.h @@ -9,6 +9,7 @@ #include <string> #include <vector> +#include "base/compiler_specific.h" #include "base/memory/ref_counted.h" #include "chrome/browser/chromeos/login/login_display.h" #include "chrome/browser/chromeos/login/message_bubble.h" @@ -48,13 +49,14 @@ class ViewsLoginDisplay : public LoginDisplay, HelpAppLauncher::HelpTopic help_topic_id); // UserController::Delegate implementation: - virtual void CreateAccount(); - virtual void Login(UserController* source, const string16& password); - virtual void LoginAsGuest(); - virtual void ClearErrors(); - virtual void OnUserSelected(UserController* source); - virtual void RemoveUser(UserController* source); - virtual void SelectUser(int index); + virtual void CreateAccount() OVERRIDE; + virtual void Login(UserController* source, const string16& password) OVERRIDE; + virtual void LoginAsGuest() OVERRIDE; + virtual void ClearErrors() OVERRIDE; + virtual void OnUserSelected(UserController* source) OVERRIDE; + virtual void RemoveUser(UserController* source) OVERRIDE; + virtual void SelectUser(int index) OVERRIDE; + virtual void StartEnterpriseEnrollment() OVERRIDE; // Overridden from views::MessageBubbleDelegate: virtual void InfoBubbleClosing(InfoBubble* info_bubble, |