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

Side by Side Diff: trunk/src/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h

Issue 310313006: Revert 275154 "ChromeOS login webui refactoring : Move GAIA-rela..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 6 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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_UI_WEBUI_CHROMEOS_LOGIN_SIGNIN_SCREEN_HANDLER_H_ 5 #ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_SIGNIN_SCREEN_HANDLER_H_
6 #define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_SIGNIN_SCREEN_HANDLER_H_ 6 #define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_SIGNIN_SCREEN_HANDLER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 26 matching lines...) Expand all
37 namespace base { 37 namespace base {
38 class DictionaryValue; 38 class DictionaryValue;
39 class ListValue; 39 class ListValue;
40 } 40 }
41 41
42 namespace chromeos { 42 namespace chromeos {
43 43
44 class AuthenticatedUserEmailRetriever; 44 class AuthenticatedUserEmailRetriever;
45 class CaptivePortalWindowProxy; 45 class CaptivePortalWindowProxy;
46 class CoreOobeActor; 46 class CoreOobeActor;
47 class GaiaScreenHandler;
48 class LocallyManagedUserCreationScreenHandler; 47 class LocallyManagedUserCreationScreenHandler;
49 class NativeWindowDelegate; 48 class NativeWindowDelegate;
50 class User; 49 class User;
51 class UserContext; 50 class UserContext;
52 51
53 // Helper class to pass initial parameters to the login screen. 52 // Helper class to pass initial parameters to the login screen.
54 class LoginScreenContext { 53 class LoginScreenContext {
55 public: 54 public:
56 LoginScreenContext(); 55 LoginScreenContext();
57 explicit LoginScreenContext(const base::ListValue* args); 56 explicit LoginScreenContext(const base::ListValue* args);
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 kiosk_enable_flow_aborted_callback_for_test_ = callback; 245 kiosk_enable_flow_aborted_callback_for_test_ = callback;
247 } 246 }
248 247
249 private: 248 private:
250 enum UIState { 249 enum UIState {
251 UI_STATE_UNKNOWN = 0, 250 UI_STATE_UNKNOWN = 0,
252 UI_STATE_GAIA_SIGNIN, 251 UI_STATE_GAIA_SIGNIN,
253 UI_STATE_ACCOUNT_PICKER, 252 UI_STATE_ACCOUNT_PICKER,
254 }; 253 };
255 254
256 friend class GaiaScreenHandler; 255 friend class ReportDnsCacheClearedOnUIThread;
257 friend class LocallyManagedUserCreationScreenHandler; 256 friend class LocallyManagedUserCreationScreenHandler;
258 friend class ReportDnsCacheClearedOnUIThread;
259 257
260 void ShowImpl(); 258 void ShowImpl();
261 259
262 // Updates current UI of the signin screen according to |ui_state| 260 // Updates current UI of the signin screen according to |ui_state|
263 // argument. Optionally it can pass screen initialization data via 261 // argument. Optionally it can pass screen initialization data via
264 // |params| argument. 262 // |params| argument.
265 void UpdateUIState(UIState ui_state, base::DictionaryValue* params); 263 void UpdateUIState(UIState ui_state, base::DictionaryValue* params);
266 264
267 void UpdateStateInternal(ErrorScreenActor::ErrorReason reason, 265 void UpdateStateInternal(ErrorScreenActor::ErrorReason reason,
268 bool force_update); 266 bool force_update);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 const gfx::Image& icon) OVERRIDE; 313 const gfx::Image& icon) OVERRIDE;
316 virtual void HideUserPodCustomIcon(const std::string& username) OVERRIDE; 314 virtual void HideUserPodCustomIcon(const std::string& username) OVERRIDE;
317 virtual void EnableInput() OVERRIDE; 315 virtual void EnableInput() OVERRIDE;
318 virtual void SetAuthType(const std::string& username, 316 virtual void SetAuthType(const std::string& username,
319 ScreenlockBridge::LockHandler::AuthType auth_type, 317 ScreenlockBridge::LockHandler::AuthType auth_type,
320 const std::string& initial_value) OVERRIDE; 318 const std::string& initial_value) OVERRIDE;
321 virtual ScreenlockBridge::LockHandler::AuthType GetAuthType( 319 virtual ScreenlockBridge::LockHandler::AuthType GetAuthType(
322 const std::string& username) const OVERRIDE; 320 const std::string& username) const OVERRIDE;
323 virtual void Unlock(const std::string& user_email) OVERRIDE; 321 virtual void Unlock(const std::string& user_email) OVERRIDE;
324 322
323 // Shows signin screen after dns cache and cookie cleanup operations finish.
324 void ShowSigninScreenIfReady();
325
326 // Tells webui to load authentication extension. |force| is used to force the
327 // extension reloading, if it has already been loaded. |silent_load| is true
328 // for cases when extension should be loaded in the background and it
329 // shouldn't grab the focus. |offline| is true when offline version of the
330 // extension should be used.
331 void LoadAuthExtension(bool force, bool silent_load, bool offline);
332
325 // Updates authentication extension. Called when device settings that affect 333 // Updates authentication extension. Called when device settings that affect
326 // sign-in (allow BWSI and allow whitelist) are changed. 334 // sign-in (allow BWSI and allow whitelist) are changed.
327 void UserSettingsChanged(); 335 void UserSettingsChanged();
328 void UpdateAddButtonStatus(); 336 void UpdateAddButtonStatus();
329 337
330 // Restore input focus to current user pod. 338 // Restore input focus to current user pod.
331 void RefocusCurrentPod(); 339 void RefocusCurrentPod();
332 340
333 // WebUI message handlers. 341 // WebUI message handlers.
342 void HandleCompleteAuthentication(const std::string& email,
343 const std::string& password,
344 const std::string& auth_code);
345 void HandleCompleteLogin(const std::string& typed_email,
346 const std::string& password,
347 bool using_saml);
334 void HandleGetUsers(); 348 void HandleGetUsers();
349 void HandleUsingSAMLAPI();
350 void HandleScrapedPasswordCount(int password_count);
351 void HandleScrapedPasswordVerificationFailed();
335 void HandleAuthenticateUser(const std::string& username, 352 void HandleAuthenticateUser(const std::string& username,
336 const std::string& password); 353 const std::string& password);
337 void HandleAttemptUnlock(const std::string& username); 354 void HandleAttemptUnlock(const std::string& username);
338 void HandleLaunchDemoUser(); 355 void HandleLaunchDemoUser();
339 void HandleLaunchIncognito(); 356 void HandleLaunchIncognito();
340 void HandleLaunchPublicAccount(const std::string& username); 357 void HandleLaunchPublicAccount(const std::string& username);
341 void HandleOfflineLogin(const base::ListValue* args); 358 void HandleOfflineLogin(const base::ListValue* args);
342 void HandleShutdownSystem(); 359 void HandleShutdownSystem();
343 void HandleLoadWallpaper(const std::string& email); 360 void HandleLoadWallpaper(const std::string& email);
344 void HandleRebootSystem(); 361 void HandleRebootSystem();
345 void HandleRemoveUser(const std::string& email); 362 void HandleRemoveUser(const std::string& email);
346 void HandleShowAddUser(const base::ListValue* args); 363 void HandleShowAddUser(const base::ListValue* args);
347 void HandleToggleEnrollmentScreen(); 364 void HandleToggleEnrollmentScreen();
348 void HandleToggleKioskEnableScreen(); 365 void HandleToggleKioskEnableScreen();
349 void HandleToggleResetScreen(); 366 void HandleToggleResetScreen();
350 void HandleToggleKioskAutolaunchScreen(); 367 void HandleToggleKioskAutolaunchScreen();
351 void HandleCreateAccount(); 368 void HandleCreateAccount();
352 void HandleAccountPickerReady(); 369 void HandleAccountPickerReady();
353 void HandleWallpaperReady(); 370 void HandleWallpaperReady();
371 void HandleLoginWebuiReady();
354 void HandleSignOutUser(); 372 void HandleSignOutUser();
355 void HandleOpenProxySettings(); 373 void HandleOpenProxySettings();
356 void HandleLoginVisible(const std::string& source); 374 void HandleLoginVisible(const std::string& source);
357 void HandleCancelPasswordChangedFlow(); 375 void HandleCancelPasswordChangedFlow();
358 void HandleCancelUserAdding(); 376 void HandleCancelUserAdding();
359 void HandleMigrateUserData(const std::string& password); 377 void HandleMigrateUserData(const std::string& password);
360 void HandleResyncUserData(); 378 void HandleResyncUserData();
361 void HandleLoginUIStateChanged(const std::string& source, bool new_value); 379 void HandleLoginUIStateChanged(const std::string& source, bool new_value);
362 void HandleUnlockOnLoginSuccess(); 380 void HandleUnlockOnLoginSuccess();
363 void HandleLoginScreenUpdate(); 381 void HandleLoginScreenUpdate();
364 void HandleShowLoadingTimeoutError(); 382 void HandleShowLoadingTimeoutError();
365 void HandleUpdateOfflineLogin(bool offline_login_active); 383 void HandleUpdateOfflineLogin(bool offline_login_active);
366 void HandleShowLocallyManagedUserCreationScreen(); 384 void HandleShowLocallyManagedUserCreationScreen();
367 void HandleFocusPod(const std::string& user_id); 385 void HandleFocusPod(const std::string& user_id);
368 void HandleLaunchKioskApp(const std::string& app_id, bool diagnostic_mode); 386 void HandleLaunchKioskApp(const std::string& app_id, bool diagnostic_mode);
369 void HandleRetrieveAuthenticatedUserEmail(double attempt_token); 387 void HandleRetrieveAuthenticatedUserEmail(double attempt_token);
370 388
389 // Kick off cookie / local storage cleanup.
390 void StartClearingCookies(const base::Closure& on_clear_callback);
391 void OnCookiesCleared(base::Closure on_clear_callback);
392
393 // Kick off DNS cache flushing.
394 void StartClearingDnsCache();
395 void OnDnsCleared();
396
397 // Decides whether an auth extension should be pre-loaded. If it should,
398 // pre-loads it.
399 void MaybePreloadAuthExtension();
371 400
372 // Returns true iff 401 // Returns true iff
373 // (i) log in is restricted to some user list, 402 // (i) log in is restricted to some user list,
374 // (ii) all users in the restricted list are present. 403 // (ii) all users in the restricted list are present.
375 bool AllWhitelistedUsersPresent(); 404 bool AllWhitelistedUsersPresent();
376 405
377 // Cancels password changed flow - switches back to login screen. 406 // Cancels password changed flow - switches back to login screen.
378 // Called as a callback after cookies are cleared. 407 // Called as a callback after cookies are cleared.
379 void CancelPasswordChangedFlowInternal(); 408 void CancelPasswordChangedFlowInternal();
380 409
(...skipping 10 matching lines...) Expand all
391 // Returns true if current screen is the error screen over signin 420 // Returns true if current screen is the error screen over signin
392 // screen. 421 // screen.
393 bool IsSigninScreenHiddenByError() const; 422 bool IsSigninScreenHiddenByError() const;
394 423
395 // Returns true if guest signin is allowed. 424 // Returns true if guest signin is allowed.
396 bool IsGuestSigninAllowed() const; 425 bool IsGuestSigninAllowed() const;
397 426
398 // Returns true if offline login is allowed. 427 // Returns true if offline login is allowed.
399 bool IsOfflineLoginAllowed() const; 428 bool IsOfflineLoginAllowed() const;
400 429
401 bool ShouldLoadGaia() const; 430 // Attempts login for test.
431 void SubmitLoginFormForTest();
402 432
403 // Update current input method (namely keyboard layout) to LRU by this user. 433 // Update current input method (namely keyboard layout) to LRU by this user.
404 void SetUserInputMethod(const std::string& username); 434 void SetUserInputMethod(const std::string& username);
405 435
406 // Invoked when auto enrollment check progresses to decide whether to 436 // Invoked when auto enrollment check progresses to decide whether to
407 // continue kiosk enable flow. Kiosk enable flow is resumed when 437 // continue kiosk enable flow. Kiosk enable flow is resumed when
408 // |state| indicates that enrollment is not applicable. 438 // |state| indicates that enrollment is not applicable.
409 void ContinueKioskEnableFlow(policy::AutoEnrollmentState state); 439 void ContinueKioskEnableFlow(policy::AutoEnrollmentState state);
410 440
411 // Shows signin. 441 // Shows signin screen for |email|.
412 void OnShowAddUser(); 442 void OnShowAddUser(const std::string& email);
443
444 // Updates the member variable and UMA histogram indicating whether the
445 // principals API was used during SAML login.
446 void SetSAMLPrincipalsAPIUsed(bool api_used);
413 447
414 GaiaScreenHandler::FrameState FrameState() const; 448 GaiaScreenHandler::FrameState FrameState() const;
415 net::Error FrameError() const; 449 net::Error FrameError() const;
416 450
417 // input_method::ImeKeyboard::Observer implementation: 451 // input_method::ImeKeyboard::Observer implementation:
418 virtual void OnCapsLockChanged(bool enabled) OVERRIDE; 452 virtual void OnCapsLockChanged(bool enabled) OVERRIDE;
419 453
420 // Current UI state of the signin screen. 454 // Current UI state of the signin screen.
421 UIState ui_state_; 455 UIState ui_state_;
422 456
423 // A delegate that glues this handler with backend LoginDisplay. 457 // A delegate that glues this handler with backend LoginDisplay.
424 SigninScreenHandlerDelegate* delegate_; 458 SigninScreenHandlerDelegate* delegate_;
425 459
426 // A delegate used to get gfx::NativeWindow. 460 // A delegate used to get gfx::NativeWindow.
427 NativeWindowDelegate* native_window_delegate_; 461 NativeWindowDelegate* native_window_delegate_;
428 462
429 // Whether screen should be shown right after initialization. 463 // Whether screen should be shown right after initialization.
430 bool show_on_init_; 464 bool show_on_init_;
431 465
432 // Keeps whether screen should be shown for OOBE. 466 // Keeps whether screen should be shown for OOBE.
433 bool oobe_ui_; 467 bool oobe_ui_;
434 468
469 // Is focus still stolen from Gaia page?
470 bool focus_stolen_;
471
472 // Has Gaia page silent load been started for the current sign-in attempt?
473 bool gaia_silent_load_;
474
475 // The active network at the moment when Gaia page was preloaded.
476 std::string gaia_silent_load_network_;
477
435 // Is account picker being shown for the first time. 478 // Is account picker being shown for the first time.
436 bool is_account_picker_showing_first_time_; 479 bool is_account_picker_showing_first_time_;
437 480
481 // True if dns cache cleanup is done.
482 bool dns_cleared_;
483
484 // True if DNS cache task is already running.
485 bool dns_clear_task_running_;
486
487 // True if cookie jar cleanup is done.
488 bool cookies_cleared_;
489
438 // Network state informer used to keep signin screen up. 490 // Network state informer used to keep signin screen up.
439 scoped_refptr<NetworkStateInformer> network_state_informer_; 491 scoped_refptr<NetworkStateInformer> network_state_informer_;
440 492
493 // Email to pre-populate with.
494 std::string email_;
495 // Emails of the users, whose passwords have recently been changed.
496 std::set<std::string> password_changed_for_;
497
498 // If the user authenticated via SAML, this indicates whether the principals
499 // API was used.
500 bool using_saml_api_;
501
502 // Test credentials.
503 std::string test_user_;
504 std::string test_pass_;
505 bool test_expects_complete_login_;
506
507 base::WeakPtrFactory<SigninScreenHandler> weak_factory_;
508
441 // Set to true once |LOGIN_WEBUI_VISIBLE| notification is observed. 509 // Set to true once |LOGIN_WEBUI_VISIBLE| notification is observed.
442 bool webui_visible_; 510 bool webui_visible_;
443 bool preferences_changed_delayed_; 511 bool preferences_changed_delayed_;
444 512
445 ErrorScreenActor* error_screen_actor_; 513 ErrorScreenActor* error_screen_actor_;
446 CoreOobeActor* core_oobe_actor_; 514 CoreOobeActor* core_oobe_actor_;
447 515
448 bool is_first_update_state_call_; 516 bool is_first_update_state_call_;
449 bool offline_login_active_; 517 bool offline_login_active_;
450 NetworkStateInformer::State last_network_state_; 518 NetworkStateInformer::State last_network_state_;
(...skipping 15 matching lines...) Expand all
466 534
467 base::Closure kiosk_enable_flow_aborted_callback_for_test_; 535 base::Closure kiosk_enable_flow_aborted_callback_for_test_;
468 536
469 // Non-owning ptr. 537 // Non-owning ptr.
470 // TODO (ygorshenin@): remove this dependency. 538 // TODO (ygorshenin@): remove this dependency.
471 GaiaScreenHandler* gaia_screen_handler_; 539 GaiaScreenHandler* gaia_screen_handler_;
472 540
473 // Helper that retrieves the authenticated user's e-mail address. 541 // Helper that retrieves the authenticated user's e-mail address.
474 scoped_ptr<AuthenticatedUserEmailRetriever> email_retriever_; 542 scoped_ptr<AuthenticatedUserEmailRetriever> email_retriever_;
475 543
476 base::WeakPtrFactory<SigninScreenHandler> weak_factory_;
477
478 DISALLOW_COPY_AND_ASSIGN(SigninScreenHandler); 544 DISALLOW_COPY_AND_ASSIGN(SigninScreenHandler);
479 }; 545 };
480 546
481 } // namespace chromeos 547 } // namespace chromeos
482 548
483 #endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_SIGNIN_SCREEN_HANDLER_H_ 549 #endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_SIGNIN_SCREEN_HANDLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698