| OLD | NEW |
| 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_WIZARD_CONTROLLER_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_WIZARD_CONTROLLER_H_ |
| 6 #define CHROME_BROWSER_CHROMEOS_LOGIN_WIZARD_CONTROLLER_H_ | 6 #define CHROME_BROWSER_CHROMEOS_LOGIN_WIZARD_CONTROLLER_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 class PrefService; | 22 class PrefService; |
| 23 class WizardContentsView; | 23 class WizardContentsView; |
| 24 class WizardScreen; | 24 class WizardScreen; |
| 25 | 25 |
| 26 namespace chromeos { | 26 namespace chromeos { |
| 27 class AccountScreen; | 27 class AccountScreen; |
| 28 class BackgroundView; | 28 class BackgroundView; |
| 29 class EulaScreen; | 29 class EulaScreen; |
| 30 class ExistingUserController; | 30 class ExistingUserController; |
| 31 class HTMLPageScreen; | 31 class HTMLPageScreen; |
| 32 class LoginScreen; | |
| 33 class NetworkScreen; | 32 class NetworkScreen; |
| 34 class RegistrationScreen; | 33 class RegistrationScreen; |
| 35 class StartupCustomizationDocument; | 34 class StartupCustomizationDocument; |
| 36 class UpdateScreen; | 35 class UpdateScreen; |
| 37 class UserImageScreen; | 36 class UserImageScreen; |
| 38 } | 37 } |
| 39 | 38 |
| 40 namespace gfx { | 39 namespace gfx { |
| 41 class Rect; | 40 class Rect; |
| 42 } | 41 } |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 | 98 |
| 100 // Takes ownership of the specified background widget and view. | 99 // Takes ownership of the specified background widget and view. |
| 101 void OwnBackground(views::Widget* background_widget, | 100 void OwnBackground(views::Widget* background_widget, |
| 102 chromeos::BackgroundView* background_view); | 101 chromeos::BackgroundView* background_view); |
| 103 | 102 |
| 104 // Skips OOBE update screen if it's currently shown. | 103 // Skips OOBE update screen if it's currently shown. |
| 105 void CancelOOBEUpdate(); | 104 void CancelOOBEUpdate(); |
| 106 | 105 |
| 107 // Lazy initializers and getters for screens. | 106 // Lazy initializers and getters for screens. |
| 108 chromeos::NetworkScreen* GetNetworkScreen(); | 107 chromeos::NetworkScreen* GetNetworkScreen(); |
| 109 chromeos::LoginScreen* GetLoginScreen(); | |
| 110 chromeos::AccountScreen* GetAccountScreen(); | 108 chromeos::AccountScreen* GetAccountScreen(); |
| 111 chromeos::UpdateScreen* GetUpdateScreen(); | 109 chromeos::UpdateScreen* GetUpdateScreen(); |
| 112 chromeos::UserImageScreen* GetUserImageScreen(); | 110 chromeos::UserImageScreen* GetUserImageScreen(); |
| 113 chromeos::EulaScreen* GetEulaScreen(); | 111 chromeos::EulaScreen* GetEulaScreen(); |
| 114 chromeos::RegistrationScreen* GetRegistrationScreen(); | 112 chromeos::RegistrationScreen* GetRegistrationScreen(); |
| 115 chromeos::HTMLPageScreen* GetHTMLPageScreen(); | 113 chromeos::HTMLPageScreen* GetHTMLPageScreen(); |
| 116 | 114 |
| 117 // Show specific screen. | 115 // Show specific screen. |
| 118 void ShowNetworkScreen(); | 116 void ShowNetworkScreen(); |
| 119 void ShowAccountScreen(); | 117 void ShowAccountScreen(); |
| 120 void ShowUpdateScreen(); | 118 void ShowUpdateScreen(); |
| 121 void ShowUserImageScreen(); | 119 void ShowUserImageScreen(); |
| 122 void ShowEulaScreen(); | 120 void ShowEulaScreen(); |
| 123 void ShowRegistrationScreen(); | 121 void ShowRegistrationScreen(); |
| 124 void ShowHTMLPageScreen(); | 122 void ShowHTMLPageScreen(); |
| 125 // Shows the default login screen and returns NULL or shows images login | 123 // Shows images login screen and returns the corresponding controller |
| 126 // screen and returns the corresponding controller instance for optional | 124 // instance for optional tweaking. |
| 127 // tweaking. | |
| 128 chromeos::ExistingUserController* ShowLoginScreen(); | 125 chromeos::ExistingUserController* ShowLoginScreen(); |
| 129 | 126 |
| 130 // Returns a pointer to the current screen or NULL if there's no such | 127 // Returns a pointer to the current screen or NULL if there's no such |
| 131 // screen. | 128 // screen. |
| 132 WizardScreen* current_screen() const { return current_screen_; } | 129 WizardScreen* current_screen() const { return current_screen_; } |
| 133 | 130 |
| 134 // Overrides observer for testing. | 131 // Overrides observer for testing. |
| 135 void set_observer(ScreenObserver* observer) { observer_ = observer; } | 132 void set_observer(ScreenObserver* observer) { observer_ = observer; } |
| 136 | 133 |
| 137 // Set URL to open on browser launch. | 134 // Set URL to open on browser launch. |
| (...skipping 24 matching lines...) Expand all Loading... |
| 162 static const char kEulaScreenName[]; | 159 static const char kEulaScreenName[]; |
| 163 static const char kHTMLPageScreenName[]; | 160 static const char kHTMLPageScreenName[]; |
| 164 | 161 |
| 165 // NotificationObserver implementation: | 162 // NotificationObserver implementation: |
| 166 virtual void Observe(NotificationType type, | 163 virtual void Observe(NotificationType type, |
| 167 const NotificationSource& source, | 164 const NotificationSource& source, |
| 168 const NotificationDetails& details); | 165 const NotificationDetails& details); |
| 169 | 166 |
| 170 private: | 167 private: |
| 171 // Exit handlers: | 168 // Exit handlers: |
| 172 void OnLoginSignInSelected(); | |
| 173 void OnLoginGuestUser(); | |
| 174 void OnLoginCreateAccount(); | |
| 175 void OnNetworkConnected(); | 169 void OnNetworkConnected(); |
| 176 void OnNetworkOffline(); | 170 void OnNetworkOffline(); |
| 177 void OnAccountCreateBack(); | 171 void OnAccountCreateBack(); |
| 178 void OnAccountCreated(); | 172 void OnAccountCreated(); |
| 179 void OnConnectionFailed(); | 173 void OnConnectionFailed(); |
| 180 void OnUpdateCompleted(); | 174 void OnUpdateCompleted(); |
| 181 void OnEulaAccepted(); | 175 void OnEulaAccepted(); |
| 182 void OnUpdateErrorCheckingForUpdate(); | 176 void OnUpdateErrorCheckingForUpdate(); |
| 183 void OnUpdateErrorUpdating(); | 177 void OnUpdateErrorUpdating(); |
| 184 void OnUserImageSelected(); | 178 void OnUserImageSelected(); |
| 185 void OnUserImageSkipped(); | 179 void OnUserImageSkipped(); |
| 186 void OnRegistrationSuccess(); | 180 void OnRegistrationSuccess(); |
| 187 void OnRegistrationSkipped(); | 181 void OnRegistrationSkipped(); |
| 188 void OnOOBECompleted(); | 182 void OnOOBECompleted(); |
| 189 | 183 |
| 190 // Shows update screen and starts update process. | 184 // Shows update screen and starts update process. |
| 191 void InitiateOOBEUpdate(); | 185 void InitiateOOBEUpdate(); |
| 192 | 186 |
| 187 // Overridden from chromeos::ScreenObserver: |
| 188 virtual void OnExit(ExitCodes exit_code); |
| 189 virtual void OnSetUserNamePassword(const std::string& username, |
| 190 const std::string& password); |
| 191 |
| 193 // Creates wizard screen window with the specified |bounds|. | 192 // Creates wizard screen window with the specified |bounds|. |
| 194 // If |initial_show| initial animation (window & background) is shown. | 193 // If |initial_show| initial animation (window & background) is shown. |
| 195 // Otherwise only window is animated. | 194 // Otherwise only window is animated. |
| 196 views::WidgetGtk* CreateScreenWindow(const gfx::Rect& bounds, | 195 views::WidgetGtk* CreateScreenWindow(const gfx::Rect& bounds, |
| 197 bool initial_show); | 196 bool initial_show); |
| 198 | 197 |
| 199 // Returns bounds for the wizard screen host window in screen coordinates. | 198 // Returns bounds for the wizard screen host window in screen coordinates. |
| 200 // Calculates bounds using screen_bounds_. | 199 // Calculates bounds using screen_bounds_. |
| 201 gfx::Rect GetWizardScreenBounds(int screen_width, int screen_height) const; | 200 gfx::Rect GetWizardScreenBounds(int screen_width, int screen_height) const; |
| 202 | 201 |
| 203 // Switches from one screen to another. | 202 // Switches from one screen to another. |
| 204 void SetCurrentScreen(WizardScreen* screen); | 203 void SetCurrentScreen(WizardScreen* screen); |
| 205 | 204 |
| 206 // Changes status area visibility. | 205 // Changes status area visibility. |
| 207 void SetStatusAreaVisible(bool visible); | 206 void SetStatusAreaVisible(bool visible); |
| 208 | 207 |
| 209 // Overridden from chromeos::ScreenObserver: | |
| 210 virtual void OnExit(ExitCodes exit_code); | |
| 211 virtual void OnSetUserNamePassword(const std::string& username, | |
| 212 const std::string& password); | |
| 213 | |
| 214 // Overridden from WizardScreenDelegate: | 208 // Overridden from WizardScreenDelegate: |
| 215 virtual views::View* GetWizardView(); | 209 virtual views::View* GetWizardView(); |
| 216 virtual chromeos::ScreenObserver* GetObserver(WizardScreen* screen); | 210 virtual chromeos::ScreenObserver* GetObserver(WizardScreen* screen); |
| 217 | 211 |
| 218 // Determines which screen to show first by the parameter, shows it and | 212 // Determines which screen to show first by the parameter, shows it and |
| 219 // sets it as the current one. | 213 // sets it as the current one. |
| 220 void ShowFirstScreen(const std::string& first_screen_name); | 214 void ShowFirstScreen(const std::string& first_screen_name); |
| 221 | 215 |
| 222 // Logs in the specified user via default login screen. | 216 // Logs in the specified user via default login screen. |
| 223 void Login(const std::string& username, const std::string& password); | 217 void Login(const std::string& username, const std::string& password); |
| 224 | 218 |
| 225 // Widget we're showing in. | 219 // Widget we're showing in. |
| 226 views::Widget* widget_; | 220 views::Widget* widget_; |
| 227 | 221 |
| 228 // Used to render the background. | 222 // Used to render the background. |
| 229 views::Widget* background_widget_; | 223 views::Widget* background_widget_; |
| 230 chromeos::BackgroundView* background_view_; | 224 chromeos::BackgroundView* background_view_; |
| 231 | 225 |
| 232 // Contents view. | 226 // Contents view. |
| 233 views::View* contents_; | 227 views::View* contents_; |
| 234 | 228 |
| 235 // Used to calculate position of the wizard screen. | 229 // Used to calculate position of the wizard screen. |
| 236 gfx::Rect screen_bounds_; | 230 gfx::Rect screen_bounds_; |
| 237 | 231 |
| 238 // Screens. | 232 // Screens. |
| 239 scoped_ptr<chromeos::NetworkScreen> network_screen_; | 233 scoped_ptr<chromeos::NetworkScreen> network_screen_; |
| 240 scoped_ptr<chromeos::LoginScreen> login_screen_; | |
| 241 scoped_ptr<chromeos::AccountScreen> account_screen_; | 234 scoped_ptr<chromeos::AccountScreen> account_screen_; |
| 242 scoped_ptr<chromeos::UpdateScreen> update_screen_; | 235 scoped_ptr<chromeos::UpdateScreen> update_screen_; |
| 243 scoped_ptr<chromeos::UserImageScreen> user_image_screen_; | 236 scoped_ptr<chromeos::UserImageScreen> user_image_screen_; |
| 244 scoped_ptr<chromeos::EulaScreen> eula_screen_; | 237 scoped_ptr<chromeos::EulaScreen> eula_screen_; |
| 245 scoped_ptr<chromeos::RegistrationScreen> registration_screen_; | 238 scoped_ptr<chromeos::RegistrationScreen> registration_screen_; |
| 246 scoped_ptr<chromeos::HTMLPageScreen> html_page_screen_; | 239 scoped_ptr<chromeos::HTMLPageScreen> html_page_screen_; |
| 247 | 240 |
| 248 // Screen that's currently active. | 241 // Screen that's currently active. |
| 249 WizardScreen* current_screen_; | 242 WizardScreen* current_screen_; |
| 250 | 243 |
| 251 std::string username_; | 244 std::string username_; |
| 252 std::string password_; | 245 std::string password_; |
| 253 | 246 |
| 254 // True if running official BUILD. | 247 // True if running official BUILD. |
| 255 bool is_official_build_; | 248 bool is_official_build_; |
| 256 | 249 |
| 257 // True if full OOBE flow should be shown. | 250 // True if full OOBE flow should be shown. |
| 258 bool is_out_of_box_; | 251 bool is_out_of_box_; |
| 259 | 252 |
| 260 // True if this is run under automation test and we need to show only | |
| 261 // login screen. | |
| 262 bool is_test_mode_; | |
| 263 | |
| 264 // Value of the screen name that WizardController was started with. | 253 // Value of the screen name that WizardController was started with. |
| 265 std::string first_screen_name_; | 254 std::string first_screen_name_; |
| 266 | 255 |
| 267 // NULL by default - controller itself is observer. Mock could be assigned. | 256 // NULL by default - controller itself is observer. Mock could be assigned. |
| 268 ScreenObserver* observer_; | 257 ScreenObserver* observer_; |
| 269 | 258 |
| 270 // Default WizardController. | 259 // Default WizardController. |
| 271 static WizardController* default_controller_; | 260 static WizardController* default_controller_; |
| 272 | 261 |
| 273 // Partner startup customizations. | 262 // Partner startup customizations. |
| (...skipping 12 matching lines...) Expand all Loading... |
| 286 FRIEND_TEST_ALL_PREFIXES(WizardControllerFlowTest, | 275 FRIEND_TEST_ALL_PREFIXES(WizardControllerFlowTest, |
| 287 ControlFlowLanguageOnNetwork); | 276 ControlFlowLanguageOnNetwork); |
| 288 FRIEND_TEST_ALL_PREFIXES(WizardControllerFlowTest, ControlFlowMain); | 277 FRIEND_TEST_ALL_PREFIXES(WizardControllerFlowTest, ControlFlowMain); |
| 289 FRIEND_TEST_ALL_PREFIXES(WizardControllerTest, SwitchLanguage); | 278 FRIEND_TEST_ALL_PREFIXES(WizardControllerTest, SwitchLanguage); |
| 290 friend class WizardControllerFlowTest; | 279 friend class WizardControllerFlowTest; |
| 291 | 280 |
| 292 DISALLOW_COPY_AND_ASSIGN(WizardController); | 281 DISALLOW_COPY_AND_ASSIGN(WizardController); |
| 293 }; | 282 }; |
| 294 | 283 |
| 295 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_WIZARD_CONTROLLER_H_ | 284 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_WIZARD_CONTROLLER_H_ |
| OLD | NEW |