Chromium Code Reviews| Index: chrome/browser/resources/options/language_options.js |
| diff --git a/chrome/browser/resources/options/language_options.js b/chrome/browser/resources/options/language_options.js |
| index c0826ebaad165f80077501ec4cb1cf266767486e..bd0a5af5a5e0c5695fc938c9946ef231dd1dd78d 100644 |
| --- a/chrome/browser/resources/options/language_options.js |
| +++ b/chrome/browser/resources/options/language_options.js |
| @@ -8,6 +8,8 @@ |
| cr.define('options', function() { |
| /** @const */ var OptionsPage = options.OptionsPage; |
| /** @const */ var LanguageList = options.LanguageList; |
| + /** @const */ var ThirdPartyImeConfirmOverlay = |
| + options.ThirdPartyImeConfirmOverlay; |
| /** |
| * Spell check dictionary download status. |
| @@ -318,6 +320,7 @@ cr.define('options', function() { |
| var input = element.querySelector('input'); |
| input.inputMethodId = inputMethod.id; |
| + input.imeProvider = inputMethod.extensionName; |
| var span = element.querySelector('span'); |
| span.textContent = inputMethod.displayName; |
| @@ -823,6 +826,33 @@ cr.define('options', function() { |
| handleCheckboxClick_: function(e) { |
| var checkbox = e.target; |
| + // Third party IMEs require additional confirmation prior to enabling due |
| + // to privacy risk. |
| + if (!!checkbox.imeProvider && checkbox.checked) { |
|
Dan Beam
2014/06/09 21:37:36
you don't need the !!
Shu Chen
2014/06/10 01:02:18
I think it would be safer to check IME ID instead
kevers
2014/06/10 17:56:44
Done.
|
| + var self = this; |
| + var confirmationCallback = function() { |
| + self.handleCheckboxUpdate_(checkbox); |
| + }; |
|
Dan Beam
2014/06/09 21:37:36
nit: var confirmationCallback = this.handleCheckbo
kevers
2014/06/10 17:56:44
Done.
|
| + var cancellationCallback = function() { |
| + checkbox.checked = false; |
| + } |
|
Dan Beam
2014/06/09 21:37:36
};
kevers
2014/06/10 17:56:44
Done.
|
| + ThirdPartyImeConfirmOverlay.showConfirmationDialog({ |
| + extension: checkbox.imeProvider, |
| + confirm: confirmationCallback, |
| + cancel: cancellationCallback |
| + }); |
| + } else { |
| + this.handleCheckboxUpdate_(checkbox); |
| + } |
| + }, |
| + |
| + /** |
| + * Updates active IMEs based on change in state of a checkbox for an input |
| + * method. |
| + * @param {!Element} checkbox Updated checkbox element. |
| + * @private |
| + */ |
| + handleCheckboxUpdate_: function(checkbox) { |
| if (checkbox.inputMethodId.match(/^_ext_ime_/)) { |
| this.updateEnabledExtensionsFromCheckboxes_(); |
| this.saveEnabledExtensionPref_(); |