summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/app/generated_resources.grd12
-rw-r--r--chrome/browser/chromeos/dom_ui/language_options_handler.cc34
-rw-r--r--chrome/browser/chromeos/dom_ui/language_options_handler.h16
-rw-r--r--chrome/browser/chromeos/dom_ui/language_options_handler_unittest.cc6
-rw-r--r--chrome/browser/resources/options/chromeos_language_options.html3
-rw-r--r--chrome/browser/resources/options/chromeos_language_options.js74
-rw-r--r--chrome/tools/chromeactions.txt136
-rwxr-xr-xchrome/tools/extract_actions.py1
8 files changed, 280 insertions, 2 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index b64412e..4176d82 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -9252,6 +9252,18 @@ Keep your key file in a safe place. You will need it to create new versions of y
desc="The label for a language that cannot be used for UI">
<ph name="PRODUCT_NAME">$1<ex>Chrome OS</ex></ph> cannot be displayed in this language
</message>
+ <message name="IDS_OPTIONS_SETTINGS_USE_THIS_FOR_SPELL_CHECKING"
+ desc="The label for a language a button that changes the spell check language of Chrome OS">
+ Use this language for spell checking
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_CANNOT_BE_USED_FOR_SPELL_CHECKING"
+ desc="The label for a language that cannot be used for spell checking">
+ This language cannot be used for spell checking
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_IS_USED_FOR_SPELL_CHECKING"
+ desc="The label for a language that is currently used for spell checking">
+ This languae is used for spell checking
+ </message>
<message name="IDS_OPTIONS_SETTINGS_LANGUAGES_M17N_STANDARD_INPUT_METHOD"
desc="The label for a input method">
Standard input method
diff --git a/chrome/browser/chromeos/dom_ui/language_options_handler.cc b/chrome/browser/chromeos/dom_ui/language_options_handler.cc
index 594f8b1..0ef858227 100644
--- a/chrome/browser/chromeos/dom_ui/language_options_handler.cc
+++ b/chrome/browser/chromeos/dom_ui/language_options_handler.cc
@@ -22,6 +22,7 @@
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/common/pref_names.h"
+#include "chrome/common/spellcheck_common.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
@@ -89,6 +90,15 @@ void LanguageOptionsHandler::GetLocalizedValues(
l10n_util::GetStringFUTF16(
IDS_OPTIONS_SETTINGS_LANGUAGES_THIS_LANGUAGE_IS_CURRENTLY_IN_USE,
l10n_util::GetStringUTF16(IDS_PRODUCT_OS_NAME)));
+ localized_strings->SetString("use_this_for_spell_checking",
+ l10n_util::GetStringUTF16(
+ IDS_OPTIONS_SETTINGS_USE_THIS_FOR_SPELL_CHECKING));
+ localized_strings->SetString("cannot_be_used_for_spell_checking",
+ l10n_util::GetStringUTF16(
+ IDS_OPTIONS_SETTINGS_CANNOT_BE_USED_FOR_SPELL_CHECKING));
+ localized_strings->SetString("is_used_for_spell_checking",
+ l10n_util::GetStringUTF16(
+ IDS_OPTIONS_SETTINGS_IS_USED_FOR_SPELL_CHECKING));
// GetSupportedInputMethods() never return NULL.
scoped_ptr<InputMethodDescriptors> descriptors(
@@ -99,6 +109,8 @@ void LanguageOptionsHandler::GetLocalizedValues(
g_browser_process->GetApplicationLocale());
localized_strings->Set("inputMethodList", GetInputMethodList(*descriptors));
localized_strings->Set("languageList", GetLanguageList(*descriptors));
+ localized_strings->Set("spellCheckLanguageCodeSet",
+ GetSpellCheckLanguageCodeSet());
localized_strings->Set("uiLanguageCodeSet", GetUiLanguageCodeSet());
}
@@ -113,6 +125,9 @@ void LanguageOptionsHandler::RegisterMessages() {
&LanguageOptionsHandler::InputMethodOptionsOpenCallback));
dom_ui_->RegisterMessageCallback("languageOptionsOpen",
NewCallback(this, &LanguageOptionsHandler::LanguageOptionsOpenCallback));
+ dom_ui_->RegisterMessageCallback("spellCheckLanguageChange",
+ NewCallback(this,
+ &LanguageOptionsHandler::SpellCheckLanguageChangeCallback));
dom_ui_->RegisterMessageCallback("uiLanguageChange",
NewCallback(this, &LanguageOptionsHandler::UiLanguageChangeCallback));
dom_ui_->RegisterMessageCallback("uiLanguageRestart",
@@ -225,6 +240,16 @@ DictionaryValue* LanguageOptionsHandler::GetUiLanguageCodeSet() {
return dictionary;
}
+DictionaryValue* LanguageOptionsHandler::GetSpellCheckLanguageCodeSet() {
+ DictionaryValue* dictionary = new DictionaryValue();
+ std::vector<std::string> spell_check_languages;
+ SpellCheckCommon::SpellCheckLanguages(&spell_check_languages);
+ for (size_t i = 0; i < spell_check_languages.size(); ++i) {
+ dictionary->SetBoolean(spell_check_languages[i], true);
+ }
+ return dictionary;
+}
+
void LanguageOptionsHandler::InputMethodDisableCallback(
const ListValue* args) {
const std::string input_method_id = WideToASCII(ExtractStringValue(args));
@@ -269,6 +294,15 @@ void LanguageOptionsHandler::UiLanguageChangeCallback(
L"options.LanguageOptions.uiLanguageSaved");
}
+void LanguageOptionsHandler::SpellCheckLanguageChangeCallback(
+ const ListValue* args) {
+ const std::string language_code = WideToASCII(ExtractStringValue(args));
+ CHECK(!language_code.empty());
+ const std::string action = StringPrintf(
+ "LanguageOptions_SpellCheckLanguageChange_%s", language_code.c_str());
+ UserMetrics::RecordComputedAction(action);
+}
+
void LanguageOptionsHandler::RestartCallback(const ListValue* args) {
UserMetrics::RecordAction(UserMetricsAction("LanguageOptions_Restart"));
diff --git a/chrome/browser/chromeos/dom_ui/language_options_handler.h b/chrome/browser/chromeos/dom_ui/language_options_handler.h
index 54cd9ab..bd1c78a 100644
--- a/chrome/browser/chromeos/dom_ui/language_options_handler.h
+++ b/chrome/browser/chromeos/dom_ui/language_options_handler.h
@@ -48,10 +48,18 @@ class LanguageOptionsHandler : public OptionsPageUIHandler {
// The return value will look like:
// {'en-US': true, 'fi': true, 'fr': true, ...}
//
- // Note that true in languageCodeSet does not mean anything. We just use
- // the dictionary as a set.
+ // Note that true in values does not mean anything. We just use the
+ // dictionary as a set.
static DictionaryValue* GetUiLanguageCodeSet();
+ // Gets the set of language codes that can be used for spellchecking.
+ // The return value will look like:
+ // {'en-US': true, 'fi': true, 'fr': true, ...}
+ //
+ // Note that true in values does not mean anything. We just use the
+ // dictionary as a set.
+ static DictionaryValue* GetSpellCheckLanguageCodeSet();
+
private:
// Called when the input method is disabled.
// |args| will contain the input method ID as string (ex. "mozc").
@@ -72,6 +80,10 @@ class LanguageOptionsHandler : public OptionsPageUIHandler {
// |args| will contain the language code as string (ex. "fr").
void UiLanguageChangeCallback(const ListValue* args);
+ // Called when the spell check language is changed.
+ // |args| will contain the language code as string (ex. "fr").
+ void SpellCheckLanguageChangeCallback(const ListValue* args);
+
// Called when the restart button is clicked.
void RestartCallback(const ListValue* args);
diff --git a/chrome/browser/chromeos/dom_ui/language_options_handler_unittest.cc b/chrome/browser/chromeos/dom_ui/language_options_handler_unittest.cc
index 44df39a..4c940ef 100644
--- a/chrome/browser/chromeos/dom_ui/language_options_handler_unittest.cc
+++ b/chrome/browser/chromeos/dom_ui/language_options_handler_unittest.cc
@@ -162,4 +162,10 @@ TEST(LanguageOptionsHandlerTest, GetUiLanguageCodeSet) {
// EXPECT_FALSE(dictionary->HasKey("no"));
}
+TEST(LanguageOptionsHandlerTest, GetSpellCheckLanguageCodeSet) {
+ scoped_ptr<DictionaryValue> dictionary(
+ LanguageOptionsHandler::GetSpellCheckLanguageCodeSet());
+ EXPECT_TRUE(dictionary->HasKey("en-US"));
+}
+
} // namespace chromeos
diff --git a/chrome/browser/resources/options/chromeos_language_options.html b/chrome/browser/resources/options/chromeos_language_options.html
index 844b05d..1e5dd6f 100644
--- a/chrome/browser/resources/options/chromeos_language_options.html
+++ b/chrome/browser/resources/options/chromeos_language_options.html
@@ -26,6 +26,9 @@
<div class="language-options-contents">
<button id="language-options-ui-language-button"></button>
</div>
+ <div class="language-options-contents">
+ <button id="language-options-spell-check-language-button"></button>
+ </div>
<div id="language-options-ui-notification-bar"
class="language-options-notification">
<div i18n-content="restart_required"></div>
diff --git a/chrome/browser/resources/options/chromeos_language_options.js b/chrome/browser/resources/options/chromeos_language_options.js
index 2bff38d..1eeebc0 100644
--- a/chrome/browser/resources/options/chromeos_language_options.js
+++ b/chrome/browser/resources/options/chromeos_language_options.js
@@ -81,7 +81,12 @@ cr.define('options', function() {
// The preference is a CSV string that describes preload engines
// (i.e. active input methods).
preloadEnginesPref: 'settings.language.preload_engines',
+ // The list of preload engines, like ['mozc', 'pinyin'].
preloadEngines_: [],
+ // The preference is a string that describes the spell check
+ // dictionary language, like "en-US".
+ spellCheckDictionaryPref: 'spellcheck.dictionary',
+ spellCheckDictionary_: "",
// The map of language code to input method IDs, like:
// {'ja': ['mozc', 'mozc-jp'], 'zh-CN': ['pinyin'], ...}
languageCodeToInputMethodIdsMap_: {},
@@ -124,6 +129,8 @@ cr.define('options', function() {
// Listen to pref change once the input method list is initialized.
Preferences.getInstance().addEventListener(this.preloadEnginesPref,
this.handlePreloadEnginesPrefChange_.bind(this));
+ Preferences.getInstance().addEventListener(this.spellCheckDictionaryPref,
+ this.handleSpellCheckDictionaryPrefChange_.bind(this));
},
/**
@@ -172,6 +179,7 @@ cr.define('options', function() {
var languageCode = languageOptionsList.getLanguageCodes()[index];
this.updateSelectedLanguageName_(languageCode);
this.updateUiLanguageButton_(languageCode);
+ this.updateSpellCheckLanguageButton_(languageCode);
this.updateInputMethodList_(languageCode);
this.updateLanguageListInAddLanguageOverlay_();
},
@@ -316,6 +324,47 @@ cr.define('options', function() {
},
/**
+ * Updates the spell check language button.
+ * @param {string} languageCode Language code (ex. "fr").
+ * @private
+ */
+ updateSpellCheckLanguageButton_: function(languageCode) {
+ var spellCheckLanguageButton = $(
+ 'language-options-spell-check-language-button');
+ // Check if the language code matches the current spell check language.
+ if (languageCode == this.spellCheckDictionary_) {
+ // If it matches, the button just says that the spell check language is
+ // currently in use.
+ spellCheckLanguageButton.textContent =
+ localStrings.getString('is_used_for_spell_checking');
+ // Make it look like a text label.
+ spellCheckLanguageButton.className = 'text-button';
+ // Remove the event listner.
+ spellCheckLanguageButton.onclick = undefined;
+ } else if (languageCode in templateData.spellCheckLanguageCodeSet) {
+ // If the language is supported as spell check language, users can
+ // click on the button to change the spell check language.
+ spellCheckLanguageButton.textContent =
+ localStrings.getString('use_this_for_spell_checking');
+ spellCheckLanguageButton.className = '';
+ spellCheckLanguageButton.languageCode = languageCode;
+ // Add an event listner to the click event.
+ spellCheckLanguageButton.addEventListener('click',
+ this.handleSpellCheckLanguageButtonClick_.bind(this));
+ } else {
+ // If the language is not supported as spell check language, the
+ // button just says that this language cannot be used for spell
+ // checking.
+ spellCheckLanguageButton.textContent =
+ localStrings.getString('cannot_be_used_for_spell_checking');
+ spellCheckLanguageButton.className = 'text-button';
+ spellCheckLanguageButton.onclick = undefined;
+ }
+ spellCheckLanguageButton.style.display = 'block';
+ $('language-options-ui-notification-bar').style.display = 'none';
+ },
+
+ /**
* Updates the input method list.
* @param {string} languageCode Language code (ex. "fr").
* @private
@@ -448,6 +497,31 @@ cr.define('options', function() {
},
/**
+ * Handles spellCheckDictionaryPref change.
+ * @param {Event} e Change event.
+ * @private
+ */
+ handleSpellCheckDictionaryPrefChange_: function(e) {
+ var languageCode = e.value.value
+ this.spellCheckDictionary_ = languageCode;
+ },
+
+ /**
+ * Handles spellCheckLanguageButton click.
+ * @param {Event} e Click event.
+ * @private
+ */
+ handleSpellCheckLanguageButtonClick_: function(e) {
+ var languageCode = e.target.languageCode;
+ // Save the preference.
+ Preferences.setStringPref(this.spellCheckDictionaryPref,
+ languageCode);
+ chrome.send('spellCheckLanguageChange', [languageCode]);
+ this.spellCheckDictionary_ = languageCode;
+ this.updateSpellCheckLanguageButton_(languageCode)
+ },
+
+ /**
* Removes preload engines associated with the given language code.
* However, this function does not remove engines (input methods) that
* are used for other active languages. For instance, if "xkb:us::eng"
diff --git a/chrome/tools/chromeactions.txt b/chrome/tools/chromeactions.txt
index b66c207..e7d570a 100644
--- a/chrome/tools/chromeactions.txt
+++ b/chrome/tools/chromeactions.txt
@@ -438,6 +438,139 @@
0xf6b8e8d4de66cf77 LanguageOptions_EnableInputMethod_xkb:us:dvorak:eng
0xfa78305d269c1ec1 LanguageOptions_Open
0xda947fb4440a66e7 LanguageOptions_Restart
+0x3bdcb57ed74b6f2c LanguageOptions_SpellCheckLanguageChange_af
+0x0268501c247fa3e1 LanguageOptions_SpellCheckLanguageChange_am
+0x9d68c5a82572b3a5 LanguageOptions_SpellCheckLanguageChange_ar
+0x216ae3faf9f4fc61 LanguageOptions_SpellCheckLanguageChange_az
+0x85bddda0d071875b LanguageOptions_SpellCheckLanguageChange_be
+0x552a4f4066bb456b LanguageOptions_SpellCheckLanguageChange_bg
+0xea6b28b89f3b1bc2 LanguageOptions_SpellCheckLanguageChange_bh
+0x173c0736c9838394 LanguageOptions_SpellCheckLanguageChange_bn
+0xa357a0df0b190220 LanguageOptions_SpellCheckLanguageChange_br
+0x474752275567a519 LanguageOptions_SpellCheckLanguageChange_bs
+0x77b12159bb08e0c0 LanguageOptions_SpellCheckLanguageChange_ca
+0x6872456b4ea20026 LanguageOptions_SpellCheckLanguageChange_co
+0x258da94c1135762c LanguageOptions_SpellCheckLanguageChange_cs
+0x29a8f1a61033a69a LanguageOptions_SpellCheckLanguageChange_cy
+0xb30aafb7259dcd76 LanguageOptions_SpellCheckLanguageChange_da
+0xd4d51eee8ca53562 LanguageOptions_SpellCheckLanguageChange_de
+0x8d90ebda20909ebe LanguageOptions_SpellCheckLanguageChange_de-AT
+0x2311311ecb5272c2 LanguageOptions_SpellCheckLanguageChange_de-CH
+0xdc02d8c4e8b01766 LanguageOptions_SpellCheckLanguageChange_de-DE
+0x7ee2af2c5a437e1a LanguageOptions_SpellCheckLanguageChange_el
+0x4fc6d56cdd72700e LanguageOptions_SpellCheckLanguageChange_en
+0x7a9875b0b8efb1ad LanguageOptions_SpellCheckLanguageChange_en-AU
+0x210830b65e90eedf LanguageOptions_SpellCheckLanguageChange_en-CA
+0x9c5ecf7ee4cd7fe6 LanguageOptions_SpellCheckLanguageChange_en-GB
+0xa1ca46cc1bacf01e LanguageOptions_SpellCheckLanguageChange_en-NZ
+0xc2ef2ccd8a872da8 LanguageOptions_SpellCheckLanguageChange_en-US
+0xfa49edbe6e1a8099 LanguageOptions_SpellCheckLanguageChange_en-ZA
+0xb89148d2ec4d78eb LanguageOptions_SpellCheckLanguageChange_eo
+0x7a8a9928c6951178 LanguageOptions_SpellCheckLanguageChange_es
+0x335c54f4600c0b06 LanguageOptions_SpellCheckLanguageChange_es-419
+0x2be5d12ada80fe8c LanguageOptions_SpellCheckLanguageChange_et
+0x85fb3829228fcc2e LanguageOptions_SpellCheckLanguageChange_eu
+0x888c6e9da75bd6ea LanguageOptions_SpellCheckLanguageChange_fa
+0x6a71fe1235b65ea8 LanguageOptions_SpellCheckLanguageChange_fi
+0x786510108f6bd621 LanguageOptions_SpellCheckLanguageChange_fil
+0xb65b87a46bc6848a LanguageOptions_SpellCheckLanguageChange_fo
+0x350594ed486733ab LanguageOptions_SpellCheckLanguageChange_fr
+0x92b548bfe8dc3ae9 LanguageOptions_SpellCheckLanguageChange_fr-CA
+0x22d8ce8d402861df LanguageOptions_SpellCheckLanguageChange_fr-CH
+0x04b12f0c336d715c LanguageOptions_SpellCheckLanguageChange_fr-FR
+0xedba3ba5ccd84adc LanguageOptions_SpellCheckLanguageChange_fy
+0xfc18bb1660a03b60 LanguageOptions_SpellCheckLanguageChange_ga
+0x1b9c8352f74b0c82 LanguageOptions_SpellCheckLanguageChange_gd
+0xfdfa4d8cd811f664 LanguageOptions_SpellCheckLanguageChange_gl
+0xac52fce34c780009 LanguageOptions_SpellCheckLanguageChange_gn
+0xd78744f6c3b943d5 LanguageOptions_SpellCheckLanguageChange_gu
+0xd4bb24d5585722d5 LanguageOptions_SpellCheckLanguageChange_ha
+0xa1df103387fe44eb LanguageOptions_SpellCheckLanguageChange_haw
+0xe6a740028864e54c LanguageOptions_SpellCheckLanguageChange_he
+0x4a5ac45c11294524 LanguageOptions_SpellCheckLanguageChange_hi
+0x5634d2d630b62db7 LanguageOptions_SpellCheckLanguageChange_hr
+0x0d9b2da08e908398 LanguageOptions_SpellCheckLanguageChange_hu
+0x6235fe36d587a174 LanguageOptions_SpellCheckLanguageChange_hy
+0x96a69530dcf9c952 LanguageOptions_SpellCheckLanguageChange_ia
+0x33858a0f90601b99 LanguageOptions_SpellCheckLanguageChange_id
+0x421fd3a986c9268a LanguageOptions_SpellCheckLanguageChange_is
+0x6963156dd2e5a8da LanguageOptions_SpellCheckLanguageChange_it
+0x0c579f6bc1d7eb3d LanguageOptions_SpellCheckLanguageChange_it-CH
+0x9415bc67e35d695b LanguageOptions_SpellCheckLanguageChange_it-IT
+0xc309312f7d87e667 LanguageOptions_SpellCheckLanguageChange_ja
+0xa16e44ff1be39a3e LanguageOptions_SpellCheckLanguageChange_jw
+0x69a6884a3d26b3da LanguageOptions_SpellCheckLanguageChange_ka
+0xda7c858e99e65ef4 LanguageOptions_SpellCheckLanguageChange_kk
+0x2ef0148c5104510b LanguageOptions_SpellCheckLanguageChange_km
+0x0c285764bac9c412 LanguageOptions_SpellCheckLanguageChange_kn
+0xdf1b960c7c2cc1e7 LanguageOptions_SpellCheckLanguageChange_ko
+0x5d128aa7040d29c6 LanguageOptions_SpellCheckLanguageChange_ku
+0x535257816775f9f5 LanguageOptions_SpellCheckLanguageChange_ky
+0x9c4079a6ebd99d4f LanguageOptions_SpellCheckLanguageChange_la
+0xbcdb116c72381903 LanguageOptions_SpellCheckLanguageChange_ln
+0x188a55a79836e3ab LanguageOptions_SpellCheckLanguageChange_lo
+0x35c70c9a4d851dc6 LanguageOptions_SpellCheckLanguageChange_lt
+0x8566b76a82e7fdeb LanguageOptions_SpellCheckLanguageChange_lv
+0xb21dc3c6409fb03b LanguageOptions_SpellCheckLanguageChange_mk
+0xbc1d9b51b30e674e LanguageOptions_SpellCheckLanguageChange_ml
+0xe184488215d31cff LanguageOptions_SpellCheckLanguageChange_mn
+0xb4048acd46620f9d LanguageOptions_SpellCheckLanguageChange_mo
+0x494852187a45238e LanguageOptions_SpellCheckLanguageChange_mr
+0x3252be13f227791e LanguageOptions_SpellCheckLanguageChange_ms
+0x47b98aa2c04db05a LanguageOptions_SpellCheckLanguageChange_mt
+0xd1019f3988676333 LanguageOptions_SpellCheckLanguageChange_nb
+0xc7d80d5be9fd265a LanguageOptions_SpellCheckLanguageChange_ne
+0x0fe1fa4c9113cdca LanguageOptions_SpellCheckLanguageChange_nl
+0xbf2dc22115880d3d LanguageOptions_SpellCheckLanguageChange_nn
+0xcab46544f005c97a LanguageOptions_SpellCheckLanguageChange_no
+0x031c51747e109ed0 LanguageOptions_SpellCheckLanguageChange_oc
+0x18148cc2641e2e75 LanguageOptions_SpellCheckLanguageChange_om
+0x5af0c86bd4fbc6d4 LanguageOptions_SpellCheckLanguageChange_or
+0xe9142e813c57d901 LanguageOptions_SpellCheckLanguageChange_pa
+0x56f8dea08fc60dd0 LanguageOptions_SpellCheckLanguageChange_pl
+0xcc46a9b43892cd17 LanguageOptions_SpellCheckLanguageChange_ps
+0xa8e521739e3a8111 LanguageOptions_SpellCheckLanguageChange_pt
+0x0965fa6496b7bc86 LanguageOptions_SpellCheckLanguageChange_pt-BR
+0xa245fca6322289f1 LanguageOptions_SpellCheckLanguageChange_pt-PT
+0x0c0249f8a5ddd2fd LanguageOptions_SpellCheckLanguageChange_qu
+0x1e4414f0c08e409b LanguageOptions_SpellCheckLanguageChange_rm
+0x9de3adae56cd4645 LanguageOptions_SpellCheckLanguageChange_ro
+0xdf75477e7e9105c9 LanguageOptions_SpellCheckLanguageChange_ru
+0xa5227b45669bf1d9 LanguageOptions_SpellCheckLanguageChange_sd
+0x99ac10d69235bc19 LanguageOptions_SpellCheckLanguageChange_sh
+0xb65301fe78a5f948 LanguageOptions_SpellCheckLanguageChange_si
+0x4043d3a9b8a0b7d3 LanguageOptions_SpellCheckLanguageChange_sk
+0xd48fd58efca4a848 LanguageOptions_SpellCheckLanguageChange_sl
+0x4811fa57db8aba7b LanguageOptions_SpellCheckLanguageChange_sn
+0xb460c6a021ce30ce LanguageOptions_SpellCheckLanguageChange_so
+0xcf8fbb2f35d437f9 LanguageOptions_SpellCheckLanguageChange_sq
+0x4266aeea5a172fed LanguageOptions_SpellCheckLanguageChange_sr
+0xb70d00fe5b60399f LanguageOptions_SpellCheckLanguageChange_st
+0x4f307c5e96126e39 LanguageOptions_SpellCheckLanguageChange_su
+0x793f0539702106b3 LanguageOptions_SpellCheckLanguageChange_sv
+0xd0683f1a88f2dcd9 LanguageOptions_SpellCheckLanguageChange_sw
+0x4adb832cdfa82e95 LanguageOptions_SpellCheckLanguageChange_ta
+0xe5e6f8a2c34dbf3f LanguageOptions_SpellCheckLanguageChange_te
+0xb56ca80c23e21e82 LanguageOptions_SpellCheckLanguageChange_tg
+0xc31434dd30b37c79 LanguageOptions_SpellCheckLanguageChange_th
+0xbf3ce64eb42276ce LanguageOptions_SpellCheckLanguageChange_ti
+0x9a7852d3d5a451dd LanguageOptions_SpellCheckLanguageChange_tk
+0x54a10166348130da LanguageOptions_SpellCheckLanguageChange_to
+0xceb028c8d98b6f69 LanguageOptions_SpellCheckLanguageChange_tr
+0x6110f46e5d1d5ce3 LanguageOptions_SpellCheckLanguageChange_tt
+0x9ed4a1802694e371 LanguageOptions_SpellCheckLanguageChange_tw
+0xf2aa74178fae8737 LanguageOptions_SpellCheckLanguageChange_ug
+0xeba4b1bfb148fe5c LanguageOptions_SpellCheckLanguageChange_uk
+0xdc2fbf10c4e3cc7e LanguageOptions_SpellCheckLanguageChange_ur
+0x7de2dd2191f8f3b5 LanguageOptions_SpellCheckLanguageChange_uz
+0x20f26902bf2b0f7e LanguageOptions_SpellCheckLanguageChange_vi
+0x69a672e997291046 LanguageOptions_SpellCheckLanguageChange_xh
+0xd95a13401430464b LanguageOptions_SpellCheckLanguageChange_yi
+0xdfa41d1e586edede LanguageOptions_SpellCheckLanguageChange_yo
+0xe464bee2f7b47f05 LanguageOptions_SpellCheckLanguageChange_zh
+0x02feeb3c3fbb0e6d LanguageOptions_SpellCheckLanguageChange_zh-CN
+0x388861c5b05fcfd7 LanguageOptions_SpellCheckLanguageChange_zh-TW
+0xa7832f7951587154 LanguageOptions_SpellCheckLanguageChange_zu
0x28f95708216c5f3f LanguageOptions_UiLanguageChange_af
0x64bf99d3a3ae3c09 LanguageOptions_UiLanguageChange_am
0x37e45415ff188c83 LanguageOptions_UiLanguageChange_ar
@@ -655,8 +788,10 @@
0xe2fd858f8395432f Options_CustomFrame_Disable
0x531823c36ca21da2 Options_CustomFrame_Enable
0x2d3b125fe15e828e Options_DictionaryLanguage
+0xc895ecf32a4970be Options_DisableCloudPrintProxy
0x3c91497bc48f7456 Options_DnsPrefetchCheckbox_Disable
0xb1c929ead405f1a9 Options_DnsPrefetchCheckbox_Enable
+0x24f63c90f4b05e70 Options_EnableCloudPrintProxy
0x7224f61ec49ec7ce Options_FormAutofill_Disable
0xe88933ca2c819b4e Options_FormAutofill_Enable
0xb186750fe61b8254 Options_GearsSettings
@@ -671,6 +806,7 @@
0xe1d9dbcef8116c71 Options_JavaCheckbox_Enable
0x704c162610c6ffd5 Options_LinkDoctorCheckbox_Disable
0x64ea4cda15571db8 Options_LinkDoctorCheckbox_Enable
+0xc8073584c5521315 Options_ManageCloudPrinters
0xd97025bbf470c3ba Options_ManageSSLCertificates
0xfeb23e6946b41cdc Options_ManageSearchEngines
0x84502179f3e2ae8c Options_ManagerCerts
diff --git a/chrome/tools/extract_actions.py b/chrome/tools/extract_actions.py
index 3543db7..3cb846f 100755
--- a/chrome/tools/extract_actions.py
+++ b/chrome/tools/extract_actions.py
@@ -134,6 +134,7 @@ def AddComputedActions(actions):
actions.add('InputMethodOptions_Open_%s' % input_method_id)
for language_code in LANGUAGE_CODES:
actions.add('LanguageOptions_UiLanguageChange_%s' % language_code)
+ actions.add('LanguageOptions_SpellCheckLanguageChange_%s' % language_code)
def AddWebKitEditorActions(actions):
"""Add editor actions from editor_client_impl.cc.