1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_GAIA_SCREEN_HANDLER_H_ 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_GAIA_SCREEN_HANDLER_H_ 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include <string> 96e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/basictypes.h" 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/command_line.h" 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/memory/ref_counted.h" 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/chromeos/login/screens/core_oobe_actor.h" 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/ui/webui/chromeos/login/network_state_informer.h" 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "net/base/net_errors.h" 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 176e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)namespace policy { 186e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class ConsumerManagementService; 196e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace chromeos { 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class SigninScreenHandler; 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// A class that's used to specify the way how Gaia should be loaded. 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)struct GaiaContext { 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) GaiaContext(); 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // Forces Gaia to reload. 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) bool force_reload; 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // Whether local verison of Gaia is used. 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) bool is_local; 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // True if password was changed for the current user. 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) bool password_changed; 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // True if user pods can be displyed. 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) bool show_users; 40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // Whether Gaia should be loaded in offline mode. 42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) bool use_offline; 43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // True if user list is non-empty. 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) bool has_users; 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // Email of current user. 48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) std::string email; 495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // Whether consumer management enrollment is in progress. 515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) bool is_enrolling_consumer_management; 52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 53f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// A class that handles WebUI hooks in Gaia screen. 55f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class GaiaScreenHandler : public BaseScreenHandler { 56f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public: 57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) enum FrameState { 58f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) FRAME_STATE_UNKNOWN = 0, 59f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) FRAME_STATE_LOADING, 60f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) FRAME_STATE_LOADED, 61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) FRAME_STATE_ERROR 62f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) }; 63f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 646e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) GaiaScreenHandler( 651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci CoreOobeActor* core_oobe_actor, 666e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const scoped_refptr<NetworkStateInformer>& network_state_informer, 676e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) policy::ConsumerManagementService* consumer_management); 68f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual ~GaiaScreenHandler(); 69f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 70f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void LoadGaia(const GaiaContext& context); 71f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void UpdateGaia(const GaiaContext& context); 725f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 735f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // Sends request to reload Gaia. If |force_reload| is true, request 745f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // will be sent in any case, otherwise it will be sent only when Gaia is 755f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // not loading right now. 765f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) void ReloadGaia(bool force_reload); 77f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 78f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) FrameState frame_state() const { return frame_state_; } 79f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) net::Error frame_error() const { return frame_error_; } 80f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 81f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private: 82f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // TODO (ygorshenin@): remove this dependency. 83f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) friend class SigninScreenHandler; 84f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 85f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // BaseScreenHandler implementation: 86f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void DeclareLocalizedValues(LocalizedValuesBuilder* builder) OVERRIDE; 87f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void Initialize() OVERRIDE; 88f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 89f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // WebUIMessageHandler implementation: 90f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void RegisterMessages() OVERRIDE; 91f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 92f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // WebUI message handlers. 93f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void HandleFrameLoadingCompleted(int status); 9446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void HandleCompleteAuthentication(const std::string& email, 9546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const std::string& password, 9646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const std::string& auth_code); 9746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void HandleCompleteLogin(const std::string& typed_email, 9846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const std::string& password, 9946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) bool using_saml); 10046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 10146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void HandleUsingSAMLAPI(); 10246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void HandleScrapedPasswordCount(int password_count); 10346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void HandleScrapedPasswordVerificationFailed(); 10446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 10546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void HandleGaiaUIReady(); 10646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1076e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // This is called when ConsumerManagementService::SetOwner() returns. 1086e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) void OnSetOwnerDone(const std::string& typed_email, 1096e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const std::string& password, 1106e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) bool using_saml, 1116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) bool success); 1126e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1136e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // Really handles the complete login message. 1146e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) void DoCompleteLogin(const std::string& typed_email, 1156e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const std::string& password, 1166e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) bool using_saml); 1176e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 11846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Fill GAIA user name. 11946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void PopulateEmail(const std::string& user_id); 12046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 12146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Mark user as having password changed: 12246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void PasswordChangedFor(const std::string& user_id); 12346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 12446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Kick off cookie / local storage cleanup. 12546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void StartClearingCookies(const base::Closure& on_clear_callback); 12646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void OnCookiesCleared(const base::Closure& on_clear_callback); 12746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 12846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Kick off DNS cache flushing. 12946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void StartClearingDnsCache(); 13046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void OnDnsCleared(); 13146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 13246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Show sign-in screen for the given credentials. 13346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual void ShowSigninScreenForCreds(const std::string& username, 13446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const std::string& password); 13546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Attempts login for test. 13646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void SubmitLoginFormForTest(); 13746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 13846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Updates the member variable and UMA histogram indicating whether the 13946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // principals API was used during SAML login. 14046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void SetSAMLPrincipalsAPIUsed(bool api_used); 14146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) void ShowGaia(bool is_enrolling_consumer_management); 14346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 14446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Shows signin screen after dns cache and cookie cleanup operations finish. 14546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void ShowGaiaScreenIfReady(); 14646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 14746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Decides whether an auth extension should be pre-loaded. If it should, 14846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // pre-loads it. 14946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void MaybePreloadAuthExtension(); 15046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 15146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Tells webui to load authentication extension. |force| is used to force the 15246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // extension reloading, if it has already been loaded. |silent_load| is true 15346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // for cases when extension should be loaded in the background and it 15446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // shouldn't grab the focus. |offline| is true when offline version of the 15546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // extension should be used. 15646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void LoadAuthExtension(bool force, bool silent_load, bool offline); 157f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 158f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // TODO (ygorshenin@): GaiaScreenHandler should implement 159f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // NetworkStateInformer::Observer. 160f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void UpdateState(ErrorScreenActor::ErrorReason reason); 161f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 162f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // TODO (ygorshenin@): remove this dependency. 163f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void SetSigninScreenHandler(SigninScreenHandler* handler); 164f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 16546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) SigninScreenHandlerDelegate* Delegate(); 16646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 167f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // Current state of Gaia frame. 168f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) FrameState frame_state_; 169f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 170f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // Latest Gaia frame error. 171f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) net::Error frame_error_; 172f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 173f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // Network state informer used to keep signin screen up. 174f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_refptr<NetworkStateInformer> network_state_informer_; 175f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 1766e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // Consumer management service for checking if enrollment is in progress. 1776e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) policy::ConsumerManagementService* consumer_management_; 1786e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci CoreOobeActor* core_oobe_actor_; 1801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 18146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Email to pre-populate with. 18246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::string populated_email_; 18346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 18446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Emails of the users, whose passwords have recently been changed. 18546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::set<std::string> password_changed_for_; 18646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 18746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // True if dns cache cleanup is done. 18846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) bool dns_cleared_; 18946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 19046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // True if DNS cache task is already running. 19146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) bool dns_clear_task_running_; 19246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 19346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // True if cookie jar cleanup is done. 19446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) bool cookies_cleared_; 19546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 19646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Is focus still stolen from Gaia page? 19746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) bool focus_stolen_; 19846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 19946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Has Gaia page silent load been started for the current sign-in attempt? 20046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) bool gaia_silent_load_; 20146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 20246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // The active network at the moment when Gaia page was preloaded. 20346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::string gaia_silent_load_network_; 20446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 20546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // If the user authenticated via SAML, this indicates whether the principals 20646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // API was used. 20746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) bool using_saml_api_; 20846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2095f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // Whether consumer management enrollment is in progress. 2105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) bool is_enrolling_consumer_management_; 2115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 21246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Test credentials. 21346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::string test_user_; 21446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::string test_pass_; 21546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) bool test_expects_complete_login_; 21646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 217f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // Non-owning ptr to SigninScreenHandler instance. Should not be used 218f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // in dtor. 219f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // TODO (ygorshenin@): GaiaScreenHandler shouldn't communicate with 220f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // signin_screen_handler directly. 221f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) SigninScreenHandler* signin_screen_handler_; 222f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 22346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) base::WeakPtrFactory<GaiaScreenHandler> weak_factory_; 22446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 225f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(GaiaScreenHandler); 226f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 227f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 228f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace chromeos 229f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 230f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_GAIA_SCREEN_HANDLER_H_ 231