summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authormnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-06 10:01:05 +0000
committermnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-06 10:01:05 +0000
commitf9268a9615feeed557e0a143f86dc35bed6af3c3 (patch)
treec8780c1759474863570b4640306783ada9fc79dc /chrome
parentb5f1e920084c8f227d83ebc5f77be749e53f4f3f (diff)
downloadchromium_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')
-rw-r--r--chrome/browser/chromeos/login/existing_user_controller.cc10
-rw-r--r--chrome/browser/chromeos/login/existing_user_controller.h14
-rw-r--r--chrome/browser/chromeos/login/existing_user_view.cc10
-rw-r--r--chrome/browser/chromeos/login/existing_user_view.h1
-rw-r--r--chrome/browser/chromeos/login/login_display.h4
-rw-r--r--chrome/browser/chromeos/login/new_user_view.cc11
-rw-r--r--chrome/browser/chromeos/login/new_user_view.h4
-rw-r--r--chrome/browser/chromeos/login/user_controller.cc6
-rw-r--r--chrome/browser/chromeos/login/user_controller.h7
-rw-r--r--chrome/browser/chromeos/login/views_login_display.cc6
-rw-r--r--chrome/browser/chromeos/login/views_login_display.h16
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,