Chromium Code Reviews| Index: chrome/browser/resources/settings/languages_page/languages_page.js |
| diff --git a/chrome/browser/resources/settings/languages_page/languages_page.js b/chrome/browser/resources/settings/languages_page/languages_page.js |
| index 803c0f9f0d7826b0a9bf79e13b34563a5887d1b7..eb79036bb957e463275fc93ea835d24b2ed0c1f9 100644 |
| --- a/chrome/browser/resources/settings/languages_page/languages_page.js |
| +++ b/chrome/browser/resources/settings/languages_page/languages_page.js |
| @@ -138,14 +138,9 @@ Polymer({ |
| if (!languageState.language.supportsUI) |
| return true; |
| - // If the language already is the prospective UI language, it can't be unset |
| - // if it is also the *actual* UI language, as we wouldn't know what other |
| - // language to set as the prospective UI language. |
| - if (languageState.language.code == navigator.language && |
|
michaelpg
2016/12/13 05:33:09
Simplifying this because it leads to bugs and it's
|
| - (!prospectiveUILanguage || |
| - languageState.language.code == prospectiveUILanguage)) { |
| + // Unchecking the currently chosen language doesn't make much sense. |
| + if (languageState.language.code == prospectiveUILanguage) |
| return true; |
| - } |
| // Otherwise, the prospective language can be changed to/from this language. |
| return false; |
| @@ -166,11 +161,12 @@ Polymer({ |
| */ |
| onUILanguageChange_: function(e) { |
| if (e.target.checked) { |
| - this.languageHelper.setUILanguage(this.detailLanguage_.language.code); |
| + this.languageHelper.setProspectiveUILanguage( |
| + this.detailLanguage_.language.code); |
| } else if (this.detailLanguage_.language.code == |
| - this.languageHelper.getProspectiveUILanguage()) { |
| + this.languages.prospectiveUILanguage) { |
| // Reset the chosen UI language to the actual UI language. |
| - this.languageHelper.resetUILanguage(); |
| + this.languageHelper.resetProspectiveUILanguage(); |
| } |
| /** @type {!CrActionMenuElement} */(this.$.menu.get()).close(); |
| }, |
| @@ -356,17 +352,17 @@ Polymer({ |
| */ |
| isProspectiveUILanguage_: function(languageCode, prospectiveUILanguage) { |
| assert(cr.isChromeOS || cr.isWindows); |
| - return languageCode == this.languageHelper.getProspectiveUILanguage(); |
| + return languageCode == prospectiveUILanguage; |
| }, |
| <if expr="chromeos or is_win"> |
| /** |
| + * @param {string} prospectiveUILanguage |
| * @return {string} |
| * @private |
| */ |
| - getProspectiveUILanguageName_: function() { |
| - return this.languageHelper.getLanguage( |
| - this.languageHelper.getProspectiveUILanguage()).displayName; |
| + getProspectiveUILanguageName_: function(prospectiveUILanguage) { |
| + return this.languageHelper.getLanguage(prospectiveUILanguage).displayName; |
| }, |
| </if> |
| @@ -392,15 +388,12 @@ Polymer({ |
| * selected on Chrome OS and Windows. |
| * @param {string} languageCode The language code identifying a language. |
| * @param {string} prospectiveUILanguage The prospective UI language. |
| - * @param {boolean} supportsUI Whether Chrome's UI can be shown in this |
| - * language. |
| * @return {string} The class name for the language item. |
| * @private |
| */ |
| - getLanguageItemClass_: function(languageCode, prospectiveUILanguage, |
| - supportsUI) { |
| + getLanguageItemClass_: function(languageCode, prospectiveUILanguage) { |
| if ((cr.isChromeOS || cr.isWindows) && |
| - this.isProspectiveUILanguage_(languageCode, prospectiveUILanguage)) { |
| + languageCode == prospectiveUILanguage) { |
| return 'selected'; |
| } |
| return ''; |
| @@ -415,7 +408,7 @@ Polymer({ |
| */ |
| isRestartRequired_: function(languageCode, prospectiveUILanguage) { |
| return prospectiveUILanguage == languageCode && |
| - navigator.language != languageCode; |
| + this.languageHelper.requiresRestart(); |
| }, |
| /** |