Index: chrome/browser/ui/webui/chromeos/login/network_screen_handler.h |
diff --git a/chrome/browser/ui/webui/chromeos/login/network_screen_handler.h b/chrome/browser/ui/webui/chromeos/login/network_screen_handler.h |
index 5e0d95fb24d80a367cd308f2f7f41928faf2eb3e..4b18c1ca4c528d92e9b137cb7be7f7359797fdf7 100644 |
--- a/chrome/browser/ui/webui/chromeos/login/network_screen_handler.h |
+++ b/chrome/browser/ui/webui/chromeos/login/network_screen_handler.h |
@@ -9,6 +9,7 @@ |
#include "base/compiler_specific.h" |
#include "base/memory/scoped_ptr.h" |
+#include "chrome/browser/chromeos/base/locale_util.h" |
#include "chrome/browser/chromeos/login/screens/network_screen_actor.h" |
#include "chrome/browser/chromeos/settings/cros_settings.h" |
#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" |
@@ -20,8 +21,7 @@ namespace chromeos { |
class CoreOobeActor; |
class IdleDetector; |
- |
-struct NetworkScreenHandlerOnLanguageChangedCallbackData; |
+class InputEventsBlocker; |
// WebUI implementation of NetworkScreenActor. It is used to interact with |
// the welcome screen (part of the page) of the OOBE. |
@@ -62,6 +62,7 @@ class NetworkScreenHandler : public NetworkScreenActor, |
virtual void InputMethodChanged(input_method::InputMethodManager* manager, |
bool show_message) override; |
+ private: |
// Reloads localized contents. |
void ReloadLocalizedContent(); |
@@ -69,11 +70,9 @@ class NetworkScreenHandler : public NetworkScreenActor, |
void HandleOnExit(); |
// Async callback after ReloadResourceBundle(locale) completed. |
- static void OnLanguageChangedCallback( |
- scoped_ptr<NetworkScreenHandlerOnLanguageChangedCallbackData> context, |
- const std::string& requested_locale, |
- const std::string& loaded_locale, |
- const bool success); |
+ void OnLanguageChangedCallback( |
+ const InputEventsBlocker* input_events_blocker, |
+ const locale_util::LanguageSwitchResult& result); |
// Callback when the system timezone settings is changed. |
void OnSystemTimezoneChanged(); |
@@ -81,6 +80,15 @@ class NetworkScreenHandler : public NetworkScreenActor, |
// Returns available timezones. Caller gets the ownership. |
static base::ListValue* GetTimezoneList(); |
+ // Starts resolving language list on BlockingPool. |
+ void ScheduleResolveLanguageList( |
+ scoped_ptr<locale_util::LanguageSwitchResult> language_switch_result); |
+ |
+ // Callback for chromeos::ResolveUILanguageList() (from l10n_util). |
+ void OnLanguageListResolved(scoped_ptr<base::ListValue> new_language_list, |
+ std::string new_language_list_locale, |
+ std::string new_selected_language); |
+ |
NetworkScreenActor::Delegate* screen_; |
CoreOobeActor* core_oobe_actor_; |
@@ -101,6 +109,11 @@ class NetworkScreenHandler : public NetworkScreenActor, |
std::string input_method_; |
std::string timezone_; |
+ // Creation of language list happens on Blocking Pool, so we cache resolved |
+ // data. |
+ std::string language_list_locale_; |
+ scoped_ptr<base::ListValue> language_list_; |
+ |
base::WeakPtrFactory<NetworkScreenHandler> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(NetworkScreenHandler); |