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

Unified Diff: chrome/browser/ui/webui/chromeos/login/network_screen_handler.h

Issue 686863002: Revert "Revert of Revert of Revert of ChromeOS NetworkScreenHandler should not call CheckAndResolve… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
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);
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/l10n_util.cc ('k') | chrome/browser/ui/webui/chromeos/login/network_screen_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698