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

Side by Side Diff: chrome/test/data/webui/settings/fake_language_settings_private.js

Issue 2261903002: Fix race condition in MD Settings Languages page causing inconsistent settings (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update histograms Created 4 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview Fake implementation of chrome.languageSettingsPrivate 6 * @fileoverview Fake implementation of chrome.languageSettingsPrivate
7 * for testing. 7 * for testing.
8 */ 8 */
9 cr.define('settings', function() { 9 cr.define('settings', function() {
10 /** 10 /**
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 * @param {function(!Array<!chrome.languageSettingsPrivate.Language>)} 113 * @param {function(!Array<!chrome.languageSettingsPrivate.Language>)}
114 * callback 114 * callback
115 */ 115 */
116 getLanguageList: function(callback) { 116 getLanguageList: function(callback) {
117 setTimeout(function() { 117 setTimeout(function() {
118 callback(JSON.parse(JSON.stringify(this.languages))); 118 callback(JSON.parse(JSON.stringify(this.languages)));
119 }.bind(this)); 119 }.bind(this));
120 }, 120 },
121 121
122 /** 122 /**
123 * Sets the accepted languages, used to decide which languages to translate, 123 * Enables a language, adding it to the Accept-Language list (used to decide
124 * generate the Accept-Language header, etc. 124 * which languages to translate, generate the Accept-Language header, etc.).
125 * @param {!Array<string>} languageCodes 125 * @param {string} languageCode
126 */ 126 */
127 setLanguageList: function(languageCodes) { 127 enableLanguage: function(languageCode) {
128 var languages = languageCodes.join(','); 128 var languageCodes = this.settingsPrefs_.prefs.intl.accept_languages.value;
129 this.settingsPrefs_.set('prefs.intl.accept_languages.value', languages); 129 var languages = languageCodes.split(',');
130 if (languages.indexOf(languageCode) != -1)
131 return;
132 languages.push(languageCode);
133 languageCodes = languages.join(',');
134 this.settingsPrefs_.set(
135 'prefs.intl.accept_languages.value', languageCodes);
130 if (cr.isChromeOS) { 136 if (cr.isChromeOS) {
131 this.settingsPrefs_.set( 137 this.settingsPrefs_.set(
132 'prefs.settings.language.preferred_languages.value', languages); 138 'prefs.settings.language.preferred_languages.value', languageCodes);
133 } 139 }
134 }, 140 },
135 141
142 /**
143 * Disables a language, removing it from the Accept-Language list.
144 * @param {string} languageCode
145 */
146 disableLanguage: function(languageCode) {
147 var languageCodes = this.settingsPrefs_.prefs.intl.accept_languages.value;
148 var languages = languageCodes.split(',');
149 var index = languages.indexOf(languageCode);
150 if (index == -1)
151 return;
152 languages.splice(index, 1);
153 languageCodes = languages.join(',');
154 this.settingsPrefs_.set(
155 'prefs.intl.accept_languages.value', languageCodes);
156 if (cr.isChromeOS) {
157 this.settingsPrefs_.set(
158 'prefs.settings.language.preferred_languages.value', languageCodes);
159 }
160 },
161
136 /** 162 /**
137 * Gets the current status of the chosen spell check dictionaries. 163 * Gets the current status of the chosen spell check dictionaries.
138 * @param {function(!Array< 164 * @param {function(!Array<
139 * !chrome.languageSettingsPrivate.SpellcheckDictionaryStatus>):void} 165 * !chrome.languageSettingsPrivate.SpellcheckDictionaryStatus>):void}
140 * callback 166 * callback
141 */ 167 */
142 getSpellcheckDictionaryStatuses: 168 getSpellcheckDictionaryStatuses:
143 wrapAssertNotReached('getSpellcheckDictionaryStatuses'), 169 wrapAssertNotReached('getSpellcheckDictionaryStatuses'),
144 170
145 /** 171 /**
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 268
243 /** 269 /**
244 * Called when an input method is removed. 270 * Called when an input method is removed.
245 * @type {!ChromeEvent} 271 * @type {!ChromeEvent}
246 */ 272 */
247 onInputMethodRemoved: new FakeChromeEvent(), 273 onInputMethodRemoved: new FakeChromeEvent(),
248 }; 274 };
249 275
250 return {FakeLanguageSettingsPrivate: FakeLanguageSettingsPrivate}; 276 return {FakeLanguageSettingsPrivate: FakeLanguageSettingsPrivate};
251 }); 277 });
OLDNEW
« no previous file with comments | « chrome/common/extensions/api/language_settings_private.idl ('k') | extensions/browser/extension_function_histogram_value.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698