Index: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h |
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h |
index 2cc7bd5b0ed9e9a82857a9dd142750df5799e8be..265034058379fcd466d1d2ec5a8c8114eb413cb5 100644 |
--- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h |
+++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h |
@@ -28,6 +28,7 @@ |
#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" |
#include "chrome/browser/ui/webui/chromeos/touch_view_controller_delegate.h" |
#include "chromeos/ime/ime_keyboard.h" |
+#include "chromeos/ime/input_method_manager.h" |
#include "chromeos/network/portal_detector/network_portal_detector.h" |
#include "components/user_manager/user_manager.h" |
#include "content/public/browser/notification_observer.h" |
@@ -213,7 +214,8 @@ class SigninScreenHandler |
public ScreenlockBridge::LockHandler, |
public NetworkStateInformer::NetworkStateInformerObserver, |
public input_method::ImeKeyboard::Observer, |
- public TouchViewControllerDelegate::Observer { |
+ public TouchViewControllerDelegate::Observer, |
+ public OobeUI::Observer { |
public: |
SigninScreenHandler( |
const scoped_refptr<NetworkStateInformer>& network_state_informer, |
@@ -246,6 +248,15 @@ class SigninScreenHandler |
kiosk_enable_flow_aborted_callback_for_test_ = callback; |
} |
+ // OobeUI::Observer implemetation. |
+ virtual void OnCurrentScreenChanged(OobeUI::Screen current_screen, |
+ OobeUI::Screen new_screen) OVERRIDE; |
+ |
+ // Returns least used user login input method. |
+ std::string GetUserLRUInputMethod(const std::string& username) const; |
+ |
+ void SetFocusPODCallbackForTesting(base::Closure callback); |
+ |
private: |
enum UIState { |
UI_STATE_UNKNOWN = 0, |
@@ -422,8 +433,10 @@ class SigninScreenHandler |
bool ShouldLoadGaia() const; |
- // Update current input method (namely keyboard layout) to LRU by this user. |
- void SetUserInputMethod(const std::string& username); |
+ // Update current input method (namely keyboard layout) in the given IME state |
+ // to LRU by this user. |
+ void SetUserInputMethod(const std::string& username, |
+ input_method::InputMethodManager::State* ime_state); |
// Invoked when auto enrollment check progresses to decide whether to |
// continue kiosk enable flow. Kiosk enable flow is resumed when |
@@ -439,6 +452,9 @@ class SigninScreenHandler |
// input_method::ImeKeyboard::Observer implementation: |
virtual void OnCapsLockChanged(bool enabled) OVERRIDE; |
+ // Returns OobeUI object of NULL. |
+ OobeUI* GetOobeUI() const; |
+ |
// Current UI state of the signin screen. |
UIState ui_state_; |
@@ -501,6 +517,15 @@ class SigninScreenHandler |
// Whether consumer management enrollment is in progress. |
bool is_enrolling_consumer_management_; |
+ // Input Method Engine state used at signin screen. |
+ scoped_refptr<input_method::InputMethodManager::State> ime_state_; |
+ |
+ // This callback captures "focusPod finished" event for tests. |
+ base::Closure test_focus_pod_callback_; |
+ |
+ // True if SigninScreenHandler has already been added to OobeUI observers. |
+ bool oobe_ui_observer_added_; |
+ |
base::WeakPtrFactory<SigninScreenHandler> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(SigninScreenHandler); |