summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos
diff options
context:
space:
mode:
authorsatorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-13 03:49:09 +0000
committersatorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-13 03:49:09 +0000
commit65ffb4a6f774879f27f62eca39f82912b01b7d8f (patch)
tree67b04c3e590722198d2e661604f4b335c1e1dc1a /chrome/browser/chromeos
parent980341e048f7d805a0ba14298f06b54fc505d6f0 (diff)
downloadchromium_src-65ffb4a6f774879f27f62eca39f82912b01b7d8f.zip
chromium_src-65ffb4a6f774879f27f62eca39f82912b01b7d8f.tar.gz
chromium_src-65ffb4a6f774879f27f62eca39f82912b01b7d8f.tar.bz2
Show restart warning when UI language is changed.
Instead of using Javascript alert(), we now show better UI for users to notify a restart is required for UI language change to take effect, with restart button. This is based on the mock attached to http://crosbug.com/5545 BUG=chromium-os:5545 TEST=manual Review URL: http://codereview.chromium.org/3121008 Patch from Takayoshi Kochi <kochi@chromium.org>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55987 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos')
-rw-r--r--chrome/browser/chromeos/dom_ui/language_options_handler.cc19
-rw-r--r--chrome/browser/chromeos/dom_ui/language_options_handler.h3
2 files changed, 20 insertions, 2 deletions
diff --git a/chrome/browser/chromeos/dom_ui/language_options_handler.cc b/chrome/browser/chromeos/dom_ui/language_options_handler.cc
index f51fab5..a2045e5 100644
--- a/chrome/browser/chromeos/dom_ui/language_options_handler.cc
+++ b/chrome/browser/chromeos/dom_ui/language_options_handler.cc
@@ -12,11 +12,14 @@
#include "app/l10n_util.h"
#include "base/utf_string_conversions.h"
#include "base/values.h"
+#include "chrome/app/chrome_dll_resource.h"
+#include "chrome/browser/browser.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/cros/cros_library.h"
#include "chrome/browser/chromeos/cros/input_method_library.h"
#include "chrome/browser/chromeos/input_method/input_method_util.h"
#include "chrome/browser/pref_service.h"
+#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/common/pref_names.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
@@ -50,6 +53,8 @@ void LanguageOptionsHandler::GetLocalizedValues(
IDS_OPTIONS_SETTINGS_LANGUAGES_PLEASE_ADD_ANOTHER_LANGUAGE));
localized_strings->SetString(L"remove_button",
l10n_util::GetString(IDS_OPTIONS_SETTINGS_LANGUAGES_REMOVE_BUTTON));
+ localized_strings->SetString(L"restart_button",
+ l10n_util::GetString(IDS_OPTIONS_SETTINGS_LANGUAGES_RESTART_BUTTON));
localized_strings->SetString(L"add_language_instructions",
l10n_util::GetString(
IDS_OPTIONS_SETTINGS_LANGUAGES_ADD_LANGUAGE_INSTRUCTIONS));
@@ -94,8 +99,9 @@ void LanguageOptionsHandler::GetLocalizedValues(
void LanguageOptionsHandler::RegisterMessages() {
DCHECK(dom_ui_);
dom_ui_->RegisterMessageCallback("uiLanguageChange",
- NewCallback(this,
- &LanguageOptionsHandler::UiLanguageChangeCallback));
+ NewCallback(this, &LanguageOptionsHandler::UiLanguageChangeCallback));
+ dom_ui_->RegisterMessageCallback("uiLanguageRestart",
+ NewCallback(this, &LanguageOptionsHandler::RestartCallback));
}
ListValue* LanguageOptionsHandler::GetInputMethodList(
@@ -226,4 +232,13 @@ void LanguageOptionsHandler::UiLanguageChangeCallback(
L"options.LanguageOptions.uiLanguageSaved");
}
+void LanguageOptionsHandler::RestartCallback(const Value* value) {
+ Browser* browser = Browser::GetBrowserForController(
+ &dom_ui_->tab_contents()->controller(), NULL);
+ // TODO(kochi): For ChromiumOS, just exiting means browser restart.
+ // Implement browser restart for Chromium Win/Linux/Mac.
+ if (browser)
+ browser->ExecuteCommand(IDC_EXIT);
+}
+
} // namespace chromeos
diff --git a/chrome/browser/chromeos/dom_ui/language_options_handler.h b/chrome/browser/chromeos/dom_ui/language_options_handler.h
index 5c84321..2862cf5 100644
--- a/chrome/browser/chromeos/dom_ui/language_options_handler.h
+++ b/chrome/browser/chromeos/dom_ui/language_options_handler.h
@@ -57,6 +57,9 @@ class LanguageOptionsHandler : public OptionsPageUIHandler {
// |value| will be the language code as string (ex. "fr").
void UiLanguageChangeCallback(const Value* value);
+ // Called when the restart button is clicked.
+ void RestartCallback(const Value* value);
+
DISALLOW_COPY_AND_ASSIGN(LanguageOptionsHandler);
};