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

Unified Diff: chrome/browser/resources/settings/languages_page/languages_page.js

Issue 2822863002: MD Settings: Languages; limit platform specific code to the respective platform. (Closed)
Patch Set: Types Created 3 years, 8 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/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 a04ef19571090a2dd812a3d32bdf72f73462a4ea..5176a8054754326f16fa490713a78e93692ac3c0 100644
--- a/chrome/browser/resources/settings/languages_page/languages_page.js
+++ b/chrome/browser/resources/settings/languages_page/languages_page.js
@@ -42,12 +42,14 @@ Polymer({
/** @type {!LanguageHelper} */
languageHelper: Object,
+// <if expr="not is_macosx">
/** @private */
spellCheckSecondaryText_: {
type: String,
value: '',
computed: 'getSpellCheckSecondaryText_(languages.enabled.*)',
},
+// </if>
/**
* The language to display the details for.
@@ -80,24 +82,6 @@ Polymer({
},
/**
- * Handler for enabling or disabling spell check.
- * @param {!{target: Element, model: !{item: !LanguageState}}} e
- */
- onSpellCheckChange_: function(e) {
- var item = e.model.item;
- if (!item.language.supportsSpellcheck)
- return;
-
- this.languageHelper.toggleSpellCheck(item.language.code,
- !item.spellCheckEnabled);
- },
-
- /** @private */
- onBackTap_: function() {
- this.$.pages.back();
- },
-
- /**
* Stamps and opens the Add Languages dialog, registering a listener to
* disable the dialog's dom-if again on close.
* @param {!Event} e
@@ -160,6 +144,87 @@ Polymer({
return this.languages.enabled.length <= 1;
},
+// <if expr="chromeos">
+ /**
+ * Applies Chrome OS session tweaks to the menu.
+ * @param {!CrActionMenuElement} menu
+ * @private
+ */
+ initializeMenu_: function(menu) {
+ // In a CrOS multi-user session, the primary user controls the UI language.
+ // TODO(michaelpg): The language selection should not be hidden, but should
+ // show a policy indicator. crbug.com/648498
+ if (this.isSecondaryUser_())
+ menu.querySelector('#uiLanguageItem').hidden = true;
+
+ // The UI language choice doesn't persist for guests.
+ if (uiAccountTweaks.UIAccountTweaks.loggedInAsGuest() ||
+ uiAccountTweaks.UIAccountTweaks.loggedInAsPublicAccount()) {
+ menu.querySelector('#uiLanguageItem').hidden = true;
+ }
+ },
+
+ /**
+ * Opens the Manage Input Methods page.
+ * @private
+ */
+ onManageInputMethodsTap_: function() {
+ settings.navigateTo(settings.Route.INPUT_METHODS);
+ },
+
+ /**
+ * Handler for tap and <Enter> events on an input method on the main page,
+ * which sets it as the current input method.
+ * @param {!{model: !{item: !chrome.languageSettingsPrivate.InputMethod},
+ * target: !{tagName: string},
+ * type: string,
+ * key: (string|undefined)}} e
+ */
+ onInputMethodTap_: function(e) {
+ // Taps on the paper-icon-button are handled in onInputMethodOptionsTap_.
+ if (e.target.tagName == 'PAPER-ICON-BUTTON')
+ return;
+
+ // Ignore key presses other than <Enter>.
+ if (e.type == 'keypress' && e.key != 'Enter')
+ return;
+
+ // Set the input method.
+ this.languageHelper.setCurrentInputMethod(e.model.item.id);
+ },
+
+ /**
+ * Opens the input method extension's options page in a new tab (or focuses
+ * an existing instance of the IME's options).
+ * @param {!{model: !{item: chrome.languageSettingsPrivate.InputMethod}}} e
+ * @private
+ */
+ onInputMethodOptionsTap_: function(e) {
+ this.languageHelper.openInputMethodOptions(e.model.item.id);
+ },
+// </if>
+
+// <if expr="chromeos or is_win">
+ /**
+ * @return {boolean} True for a secondary user in a multi-profile session.
+ * @private
+ */
+ isSecondaryUser_: function() {
+ return cr.isChromeOS && loadTimeData.getBoolean('isSecondaryUser');
+ },
+
+ /**
+ * @param {string} languageCode The language code identifying a language.
+ * @param {string} prospectiveUILanguage The prospective UI language.
+ * @return {boolean} True if the prospective UI language is set to
+ * |languageCode| but requires a restart to take effect.
+ * @private
+ */
+ isRestartRequired_: function(languageCode, prospectiveUILanguage) {
+ return prospectiveUILanguage == languageCode &&
+ this.languageHelper.requiresRestart();
+ },
+
/**
* @param {!LanguageState} languageState
* @param {string} prospectiveUILanguage The chosen UI language.
@@ -186,14 +251,6 @@ Polymer({
},
/**
- * @return {boolean} True for a secondary user in a multi-profile session.
- * @private
- */
- isSecondaryUser_: function() {
- return cr.isChromeOS && loadTimeData.getBoolean('isSecondaryUser');
- },
-
- /**
* Handler for changes to the UI language checkbox.
* @param {!{target: !PaperCheckboxElement}} e
* @private
@@ -207,6 +264,7 @@ Polymer({
this.closeMenuSoon_();
},
+// </if>
/**
* @param {!chrome.languageSettingsPrivate.Language} language
@@ -286,49 +344,41 @@ Polymer({
this.languageHelper.disableLanguage(this.detailLanguage_.language.code);
},
+// <if expr="chromeos or is_win">
/**
- * Opens the Manage Input Methods page.
+ * Checks whether the prospective UI language (the pref that indicates what
+ * language to use in Chrome) matches the current language. This pref is used
+ * only on Chrome OS and Windows; we don't control the UI language elsewhere.
+ * @param {string} languageCode The language code identifying a language.
+ * @param {string} prospectiveUILanguage The prospective UI language.
+ * @return {boolean} True if the given language matches the prospective UI
+ * pref (which may be different from the actual UI language).
* @private
*/
- onManageInputMethodsTap_: function() {
- assert(cr.isChromeOS);
- settings.navigateTo(settings.Route.INPUT_METHODS);
+ isProspectiveUILanguage_: function(languageCode, prospectiveUILanguage) {
+ assert(cr.isChromeOS || cr.isWindows);
michaelpg 2017/04/18 05:03:35 remove assert
dpapad 2017/04/18 18:31:20 Done.
+ return languageCode == prospectiveUILanguage;
},
- /**
- * Handler for tap and <Enter> events on an input method on the main page,
- * which sets it as the current input method.
- * @param {!{model: !{item: !chrome.languageSettingsPrivate.InputMethod},
- * target: !{tagName: string},
- * type: string,
- * key: (string|undefined)}} e
- */
- onInputMethodTap_: function(e) {
- assert(cr.isChromeOS);
-
- // Taps on the paper-icon-button are handled in onInputMethodOptionsTap_.
- if (e.target.tagName == 'PAPER-ICON-BUTTON')
- return;
-
- // Ignore key presses other than <Enter>.
- if (e.type == 'keypress' && e.key != 'Enter')
- return;
-
- // Set the input method.
- this.languageHelper.setCurrentInputMethod(e.model.item.id);
+ /**
+ * @param {string} prospectiveUILanguage
+ * @return {string}
+ * @private
+ */
+ getProspectiveUILanguageName_: function(prospectiveUILanguage) {
+ return this.languageHelper.getLanguage(prospectiveUILanguage).displayName;
},
+// </if>
/**
- * Opens the input method extension's options page in a new tab (or focuses
- * an existing instance of the IME's options).
- * @param {!{model: !{item: chrome.languageSettingsPrivate.InputMethod}}} e
+ * @return {string}
* @private
*/
- onInputMethodOptionsTap_: function(e) {
- assert(cr.isChromeOS);
- this.languageHelper.openInputMethodOptions(e.model.item.id);
+ getLanguageListTwoLine_: function() {
+ return cr.isChromeOS || cr.isWindows ? 'two-line' : '';
},
+// <if expr="not is_macosx">
/**
* Returns the secondary text for the spell check subsection based on the
* enabled spell check languages, listing at most 2 languages.
@@ -372,42 +422,20 @@ Polymer({
* @private
*/
onEditDictionaryTap_: function() {
- assert(!cr.isMac);
settings.navigateTo(settings.Route.EDIT_DICTIONARY);
},
/**
- * Checks whether the prospective UI language (the pref that indicates what
- * language to use in Chrome) matches the current language. This pref is used
- * only on Chrome OS and Windows; we don't control the UI language elsewhere.
- * @param {string} languageCode The language code identifying a language.
- * @param {string} prospectiveUILanguage The prospective UI language.
- * @return {boolean} True if the given language matches the prospective UI
- * pref (which may be different from the actual UI language).
- * @private
+ * Handler for enabling or disabling spell check.
+ * @param {!{target: Element, model: !{item: !LanguageState}}} e
*/
- isProspectiveUILanguage_: function(languageCode, prospectiveUILanguage) {
- assert(cr.isChromeOS || cr.isWindows);
- return languageCode == prospectiveUILanguage;
- },
-
-// <if expr="chromeos or is_win">
- /**
- * @param {string} prospectiveUILanguage
- * @return {string}
- * @private
- */
- getProspectiveUILanguageName_: function(prospectiveUILanguage) {
- return this.languageHelper.getLanguage(prospectiveUILanguage).displayName;
- },
-// </if>
+ onSpellCheckChange_: function(e) {
+ var item = e.model.item;
+ if (!item.language.supportsSpellcheck)
+ return;
- /**
- * @return {string}
- * @private
- */
- getLanguageListTwoLine_: function() {
- return cr.isChromeOS || cr.isWindows ? 'two-line' : '';
+ this.languageHelper.toggleSpellCheck(item.language.code,
+ !item.spellCheckEnabled);
},
/**
@@ -417,6 +445,7 @@ Polymer({
getSpellCheckListTwoLine_: function() {
return this.spellCheckSecondaryText_.length ? 'two-line' : '';
},
+// </if>
/**
* Returns either the "selected" class, if the language matches the
@@ -435,18 +464,7 @@ Polymer({
return '';
},
- /**
- * @param {string} languageCode The language code identifying a language.
- * @param {string} prospectiveUILanguage The prospective UI language.
- * @return {boolean} True if the prospective UI language is set to
- * |languageCode| but requires a restart to take effect.
- * @private
- */
- isRestartRequired_: function(languageCode, prospectiveUILanguage) {
- return prospectiveUILanguage == languageCode &&
- this.languageHelper.requiresRestart();
- },
-
+// <if expr="chromeos">
/**
* @param {string} id The input method ID.
* @param {string} currentId The ID of the currently enabled input method.
@@ -477,6 +495,7 @@ Polymer({
});
return inputMethod ? inputMethod.displayName : '';
},
+// </if>
/**
* @param {!Event} e
@@ -494,33 +513,15 @@ Polymer({
this.$.menu.getIfExists());
if (!menu) {
menu = /** @type {!CrActionMenuElement} */(this.$.menu.get());
+// <if expr="chromeos">
this.initializeMenu_(menu);
michaelpg 2017/04/18 05:03:35 if it shakes out this way, rename initializeMenu_
dpapad 2017/04/18 18:31:20 Done.
+// </if>
}
menu.showAt(/** @type {!Element} */ (e.target));
},
/**
- * Applies Chrome OS session tweaks to the menu.
- * @param {!CrActionMenuElement} menu
- * @private
- */
- initializeMenu_: function(menu) {
- // In a CrOS multi-user session, the primary user controls the UI language.
- // TODO(michaelpg): The language selection should not be hidden, but should
- // show a policy indicator. crbug.com/648498
- if (this.isSecondaryUser_())
- menu.querySelector('#uiLanguageItem').hidden = true;
-
- // The UI language choice doesn't persist for guests.
- if (cr.isChromeOS &&
- (uiAccountTweaks.UIAccountTweaks.loggedInAsGuest() ||
- uiAccountTweaks.UIAccountTweaks.loggedInAsPublicAccount())) {
- menu.querySelector('#uiLanguageItem').hidden = true;
- }
- },
-
- /**
* Closes the shared action menu after a short delay, so when a checkbox is
* tapped it can be seen to change state before disappearing.
* @private
@@ -533,6 +534,7 @@ Polymer({
}, settings.kMenuCloseDelay);
},
+// <if expr="chromeos or is_win">
/**
* Handler for the restart button.
* @private
@@ -541,10 +543,11 @@ Polymer({
// <if expr="chromeos">
settings.LifetimeBrowserProxyImpl.getInstance().signOutAndRestart();
// </if>
-// <if expr="not chromeos">
+// <if expr="is_win">
settings.LifetimeBrowserProxyImpl.getInstance().restart();
// </if>
},
+// </if>
/**
* Toggles the expand button within the element being listened to.

Powered by Google App Engine
This is Rietveld 408576698