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

Side by Side Diff: chrome/browser/chromeos/login/existing_user_controller.h

Issue 5809001: Removed old login screen from source. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed comments Created 9 years, 11 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_EXISTING_USER_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_EXISTING_USER_CONTROLLER_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_EXISTING_USER_CONTROLLER_H_ 6 #define CHROME_BROWSER_CHROMEOS_LOGIN_EXISTING_USER_CONTROLLER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/scoped_ptr.h" 12 #include "base/scoped_ptr.h"
13 #include "base/task.h" 13 #include "base/task.h"
14 #include "base/timer.h" 14 #include "base/timer.h"
15 #include "chrome/browser/chromeos/login/background_view.h" 15 #include "chrome/browser/chromeos/login/background_view.h"
16 #include "chrome/browser/chromeos/login/captcha_view.h" 16 #include "chrome/browser/chromeos/login/captcha_view.h"
17 #include "chrome/browser/chromeos/login/login_performer.h" 17 #include "chrome/browser/chromeos/login/login_performer.h"
18 #include "chrome/browser/chromeos/login/message_bubble.h" 18 #include "chrome/browser/chromeos/login/message_bubble.h"
19 #include "chrome/browser/chromeos/login/password_changed_view.h" 19 #include "chrome/browser/chromeos/login/password_changed_view.h"
20 #include "chrome/browser/chromeos/login/user_controller.h" 20 #include "chrome/browser/chromeos/login/user_controller.h"
21 #include "chrome/browser/chromeos/login/user_manager.h" 21 #include "chrome/browser/chromeos/login/user_manager.h"
22 #include "chrome/browser/chromeos/wm_message_listener.h" 22 #include "chrome/browser/chromeos/wm_message_listener.h"
23 #include "gfx/size.h" 23 #include "gfx/size.h"
24 #include "testing/gtest/include/gtest/gtest_prod.h"
24 25
25 namespace chromeos { 26 namespace chromeos {
26 27
27 class HelpAppLauncher; 28 class HelpAppLauncher;
28 class MessageBubble; 29 class MessageBubble;
29 class UserCrosSettingsProvider; 30 class UserCrosSettingsProvider;
30 31
31 // ExistingUserController is used to handle login when someone has 32 // ExistingUserController is used to handle login when someone has
32 // already logged into the machine. When Init is invoked, a 33 // already logged into the machine. When Init is invoked, a
33 // UserController is created for each of the Users's in the 34 // UserController is created for each of the Users's in the
34 // UserManager (including one for new user and one for Guest login), 35 // UserManager (including one for new user and one for Guest login),
35 // and the window manager is then told to show the windows. 36 // and the window manager is then told to show the windows.
36 // 37 //
37 // To use ExistingUserController create an instance of it and invoke Init. 38 // To use ExistingUserController create an instance of it and invoke Init.
38 // 39 //
39 // ExistingUserController maintains it's own life cycle and deletes itself when 40 // ExistingUserController maintains it's own life cycle and deletes itself when
40 // the user logs in (or chooses to see other settings). 41 // the user logs in (or chooses to see other settings).
41 class ExistingUserController : public WmMessageListener::Observer, 42 class ExistingUserController : public WmMessageListener::Observer,
42 public UserController::Delegate, 43 public UserController::Delegate,
43 public LoginPerformer::Delegate, 44 public LoginPerformer::Delegate,
44 public MessageBubbleDelegate, 45 public MessageBubbleDelegate,
45 public CaptchaView::Delegate, 46 public CaptchaView::Delegate,
46 public PasswordChangedView::Delegate { 47 public PasswordChangedView::Delegate {
47 public: 48 public:
48 // Initializes views for known users. |background_bounds| determines the 49 // Initializes views for known users. |background_bounds| determines the
49 // bounds of background view. 50 // bounds of background view.
50 ExistingUserController(const std::vector<UserManager::User>& users, 51 ExistingUserController(const std::vector<UserManager::User>& users,
51 const gfx::Rect& background_bounds); 52 const gfx::Rect& background_bounds);
52 53
54 // Returns the current existing user controller if it has been created.
55 static ExistingUserController* current_controller() {
56 return current_controller_;
57 }
58
53 // Creates and shows the appropriate set of windows. 59 // Creates and shows the appropriate set of windows.
54 void Init(); 60 void Init();
55 61
56 // Takes ownership of the specified background widget and view. 62 // Takes ownership of the specified background widget and view.
57 void OwnBackground(views::Widget* background_widget, 63 void OwnBackground(views::Widget* background_widget,
58 chromeos::BackgroundView* background_view); 64 chromeos::BackgroundView* background_view);
59 65
60 // Tries to login from new user pod with given user login and password. 66 // Tries to login from new user pod with given user login and password.
61 // Called after creating new account. 67 // Called after creating new account.
62 void LoginNewUser(const std::string& username, const std::string& password); 68 void LoginNewUser(const std::string& username, const std::string& password);
63 69
64 // Selects new user pod. 70 // Selects new user pod.
65 void SelectNewUser(); 71 void SelectNewUser();
66 72
67 private: 73 private:
68 friend class DeleteTask<ExistingUserController>; 74 friend class DeleteTask<ExistingUserController>;
75 friend class MockLoginPerformerDelegate;
69 76
70 ~ExistingUserController(); 77 ~ExistingUserController();
71 78
72 // Cover for invoking the destructor. Used by delete_timer_. 79 // Cover for invoking the destructor. Used by delete_timer_.
73 void Delete(); 80 void Delete();
74 81
75 // WmMessageListener::Observer: 82 // WmMessageListener::Observer:
76 virtual void ProcessWmMessage(const WmIpc::Message& message, 83 virtual void ProcessWmMessage(const WmIpc::Message& message,
77 GdkWindow* window); 84 GdkWindow* window);
78 85
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 gfx::NativeWindow GetNativeWindow() const; 129 gfx::NativeWindow GetNativeWindow() const;
123 130
124 // Show error message. |error_id| error message ID in resources. 131 // Show error message. |error_id| error message ID in resources.
125 // If |details| string is not empty, it specify additional error text 132 // If |details| string is not empty, it specify additional error text
126 // provided by authenticator, it is not localized. 133 // provided by authenticator, it is not localized.
127 void ShowError(int error_id, const std::string& details); 134 void ShowError(int error_id, const std::string& details);
128 135
129 // Send message to window manager to enable/disable click on other windows. 136 // Send message to window manager to enable/disable click on other windows.
130 void SendSetLoginState(bool is_login); 137 void SendSetLoginState(bool is_login);
131 138
139 void set_login_performer_delegate(LoginPerformer::Delegate* d) {
140 login_performer_delegate_.reset(d);
141 }
142
132 // Bounds of the background window. 143 // Bounds of the background window.
133 const gfx::Rect background_bounds_; 144 const gfx::Rect background_bounds_;
134 145
135 // Background window/view. 146 // Background window/view.
136 views::Widget* background_window_; 147 views::Widget* background_window_;
137 BackgroundView* background_view_; 148 BackgroundView* background_view_;
138 149
139 // The set of visible UserControllers. 150 // The set of visible UserControllers.
140 std::vector<UserController*> controllers_; 151 std::vector<UserController*> controllers_;
141 152
142 // The set of invisible UserControllers. 153 // The set of invisible UserControllers.
143 std::vector<UserController*> invisible_controllers_; 154 std::vector<UserController*> invisible_controllers_;
144 155
145 // Used to execute login operations. 156 // Used to execute login operations.
146 scoped_ptr<LoginPerformer> login_performer_; 157 scoped_ptr<LoginPerformer> login_performer_;
147 158
159 // Delegate for login performer to be overridden by tests.
160 // |this| is used if |login_performer_delegate_| is NULL.
161 scoped_ptr<LoginPerformer::Delegate> login_performer_delegate_;
162
148 // Index of selected view (user). 163 // Index of selected view (user).
149 size_t selected_view_index_; 164 size_t selected_view_index_;
150 165
151 // Number of login attempts. Used to show help link when > 1 unsuccessful 166 // Number of login attempts. Used to show help link when > 1 unsuccessful
152 // logins for the same user. 167 // logins for the same user.
153 size_t num_login_attempts_; 168 size_t num_login_attempts_;
154 169
155 // See comment in ProcessWmMessage. 170 // See comment in ProcessWmMessage.
156 base::OneShotTimer<ExistingUserController> delete_timer_; 171 base::OneShotTimer<ExistingUserController> delete_timer_;
157 172
158 // Pointer to the instance that was scheduled to be deleted soon or NULL 173 // Pointer to the current instance of the controller to be used by
159 // if there is no such instance. 174 // automation tests.
160 static ExistingUserController* delete_scheduled_instance_; 175 static ExistingUserController* current_controller_;
161 176
162 // Pointer to shown message bubble. We don't need to delete it because 177 // Pointer to shown message bubble. We don't need to delete it because
163 // it will be deleted on bubble closing. 178 // it will be deleted on bubble closing.
164 MessageBubble* bubble_; 179 MessageBubble* bubble_;
165 180
166 // URL that will be opened on browser startup. 181 // URL that will be opened on browser startup.
167 GURL start_url_; 182 GURL start_url_;
168 183
169 // Help application used for help dialogs. 184 // Help application used for help dialogs.
170 scoped_ptr<HelpAppLauncher> help_app_; 185 scoped_ptr<HelpAppLauncher> help_app_;
171 186
172 // Triggers prefetching of user settings. 187 // Triggers prefetching of user settings.
173 scoped_ptr<UserCrosSettingsProvider> user_settings_; 188 scoped_ptr<UserCrosSettingsProvider> user_settings_;
174 189
175 // Factory of callbacks. 190 // Factory of callbacks.
176 ScopedRunnableMethodFactory<ExistingUserController> method_factory_; 191 ScopedRunnableMethodFactory<ExistingUserController> method_factory_;
177 192
193 FRIEND_TEST_ALL_PREFIXES(ExistingUserControllerTest, NewUserLogin);
194
178 DISALLOW_COPY_AND_ASSIGN(ExistingUserController); 195 DISALLOW_COPY_AND_ASSIGN(ExistingUserController);
179 }; 196 };
180 197
181 } // namespace chromeos 198 } // namespace chromeos
182 199
183 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_EXISTING_USER_CONTROLLER_H_ 200 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_EXISTING_USER_CONTROLLER_H_
OLDNEW
« no previous file with comments | « chrome/browser/automation/automation_provider_chromeos.cc ('k') | chrome/browser/chromeos/login/existing_user_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698