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

Side by Side Diff: chrome/browser/resources/options/browser_options.js

Issue 2939273002: DO NOT SUBMIT: what chrome/browser/resources/ could eventually look like with clang-format (Closed)
Patch Set: Created 3 years, 6 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 cr.exportPath('options'); 5 cr.exportPath('options');
6 6
7 /** 7 /**
8 * @typedef {{actionLinkText: (string|undefined), 8 * @typedef {{actionLinkText: (string|undefined),
9 * accountInfo: (string|undefined), 9 * accountInfo: (string|undefined),
10 * childUser: (boolean|undefined), 10 * childUser: (boolean|undefined),
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 SEND_ALL_LOCATION_INFO: 4, 53 SEND_ALL_LOCATION_INFO: 4,
54 }; 54 };
55 55
56 cr.define('options', function() { 56 cr.define('options', function() {
57 var OptionsPage = options.OptionsPage; 57 var OptionsPage = options.OptionsPage;
58 var Page = cr.ui.pageManager.Page; 58 var Page = cr.ui.pageManager.Page;
59 var PageManager = cr.ui.pageManager.PageManager; 59 var PageManager = cr.ui.pageManager.PageManager;
60 var ArrayDataModel = cr.ui.ArrayDataModel; 60 var ArrayDataModel = cr.ui.ArrayDataModel;
61 var RepeatingButton = cr.ui.RepeatingButton; 61 var RepeatingButton = cr.ui.RepeatingButton;
62 var HotwordSearchSettingIndicator = options.HotwordSearchSettingIndicator; 62 var HotwordSearchSettingIndicator = options.HotwordSearchSettingIndicator;
63 var NetworkPredictionOptions = { 63 var NetworkPredictionOptions =
64 ALWAYS: 0, 64 {ALWAYS: 0, WIFI_ONLY: 1, NEVER: 2, DEFAULT: 1};
65 WIFI_ONLY: 1,
66 NEVER: 2,
67 DEFAULT: 1
68 };
69 65
70 /** 66 /**
71 * Encapsulated handling of browser options page. 67 * Encapsulated handling of browser options page.
72 * @constructor 68 * @constructor
73 * @extends {cr.ui.pageManager.Page} 69 * @extends {cr.ui.pageManager.Page}
74 */ 70 */
75 function BrowserOptions() { 71 function BrowserOptions() {
76 Page.call(this, 'settings', loadTimeData.getString('settingsTitle'), 72 Page.call(
77 'settings'); 73 this, 'settings', loadTimeData.getString('settingsTitle'), 'settings');
78 } 74 }
79 75
80 cr.addSingletonGetter(BrowserOptions); 76 cr.addSingletonGetter(BrowserOptions);
81 77
82 /** 78 /**
83 * @param {HTMLElement} section The section to show or hide. 79 * @param {HTMLElement} section The section to show or hide.
84 * @return {boolean} Whether the section should be shown. 80 * @return {boolean} Whether the section should be shown.
85 * @private 81 * @private
86 */ 82 */
87 BrowserOptions.shouldShowSection_ = function(section) { 83 BrowserOptions.shouldShowSection_ = function(section) {
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 // page in a blocked state, where tab switching is not possible. 162 // page in a blocked state, where tab switching is not possible.
167 uber.invokeMethodOnParent('stopInterceptingEvents'); 163 uber.invokeMethodOnParent('stopInterceptingEvents');
168 164
169 window.addEventListener('message', this.handleWindowMessage_.bind(this)); 165 window.addEventListener('message', this.handleWindowMessage_.bind(this));
170 166
171 if (loadTimeData.getBoolean('allowAdvancedSettings')) { 167 if (loadTimeData.getBoolean('allowAdvancedSettings')) {
172 $('advanced-settings-expander').onclick = function(e) { 168 $('advanced-settings-expander').onclick = function(e) {
173 var showAdvanced = 169 var showAdvanced =
174 BrowserOptions.shouldShowSection_($('advanced-settings')); 170 BrowserOptions.shouldShowSection_($('advanced-settings'));
175 if (showAdvanced) { 171 if (showAdvanced) {
176 chrome.send('coreOptionsUserMetricsAction', 172 chrome.send(
177 ['Options_ShowAdvancedSettings']); 173 'coreOptionsUserMetricsAction',
174 ['Options_ShowAdvancedSettings']);
178 } 175 }
179 self.toggleSectionWithAnimation_( 176 self.toggleSectionWithAnimation_(
180 $('advanced-settings'), 177 $('advanced-settings'), $('advanced-settings-container'));
181 $('advanced-settings-container'));
182 178
183 // If the click was triggered using the keyboard and it showed the 179 // If the click was triggered using the keyboard and it showed the
184 // section (rather than hiding it), focus the first element in the 180 // section (rather than hiding it), focus the first element in the
185 // container. 181 // container.
186 if (e.detail == 0 && showAdvanced) { 182 if (e.detail == 0 && showAdvanced) {
187 var focusElement = $('advanced-settings-container').querySelector( 183 var focusElement =
188 'button, input, list, select, a[href]'); 184 $('advanced-settings-container')
185 .querySelector('button, input, list, select, a[href]');
189 if (focusElement) 186 if (focusElement)
190 focusElement.focus(); 187 focusElement.focus();
191 } 188 }
192 }; 189 };
193 } else { 190 } else {
194 $('advanced-settings-footer').hidden = true; 191 $('advanced-settings-footer').hidden = true;
195 $('advanced-settings').hidden = true; 192 $('advanced-settings').hidden = true;
196 } 193 }
197 194
198 $('advanced-settings').addEventListener('transitionend', 195 $('advanced-settings')
199 this.updateAdvancedSettingsExpander_.bind(this)); 196 .addEventListener(
197 'transitionend', this.updateAdvancedSettingsExpander_.bind(this));
200 198
201 if (loadTimeData.valueExists('aboutOverlayTabTitle')) { 199 if (loadTimeData.valueExists('aboutOverlayTabTitle')) {
202 $('about-button').hidden = false; 200 $('about-button').hidden = false;
203 $('about-button').addEventListener('click', function() { 201 $('about-button').addEventListener('click', function() {
204 PageManager.showPageByName('help'); 202 PageManager.showPageByName('help');
205 chrome.send('coreOptionsUserMetricsAction', 203 chrome.send('coreOptionsUserMetricsAction', ['Options_About']);
206 ['Options_About']);
207 }); 204 });
208 } 205 }
209 206
210 if (cr.isChromeOS) { 207 if (cr.isChromeOS) {
211 UIAccountTweaks.applyGuestSessionVisibility(document); 208 UIAccountTweaks.applyGuestSessionVisibility(document);
212 UIAccountTweaks.applyPublicSessionVisibility(document); 209 UIAccountTweaks.applyPublicSessionVisibility(document);
213 if (loadTimeData.getBoolean('secondaryUser')) 210 if (loadTimeData.getBoolean('secondaryUser'))
214 $('secondary-user-banner').hidden = false; 211 $('secondary-user-banner').hidden = false;
215 } 212 }
216 213
217 // Sync (Sign in) section. 214 // Sync (Sign in) section.
218 this.updateSyncState_(/** @type {options.SyncStatus} */( 215 this.updateSyncState_(/** @type {options.SyncStatus} */ (
219 loadTimeData.getValue('syncData'))); 216 loadTimeData.getValue('syncData')));
220 if (!$('sync-overview').hidden) { 217 if (!$('sync-overview').hidden) {
221 chrome.send('metricsHandler:recordAction', 218 chrome.send(
222 ['Signin_Impression_FromSettings']); 219 'metricsHandler:recordAction', ['Signin_Impression_FromSettings']);
223 } 220 }
224 221
225 $('start-stop-sync').onclick = function(event) { 222 $('start-stop-sync').onclick = function(event) {
226 if (self.signedIn_) { 223 if (self.signedIn_) {
227 if (self.signoutAllowed_) 224 if (self.signoutAllowed_)
228 SyncSetupOverlay.showStopSyncingUI(); 225 SyncSetupOverlay.showStopSyncingUI();
229 else 226 else
230 chrome.send('showDisconnectManagedProfileDialog'); 227 chrome.send('showDisconnectManagedProfileDialog');
231 } else if (cr.isChromeOS) { 228 } else if (cr.isChromeOS) {
232 SyncSetupOverlay.showSetupUI(); 229 SyncSetupOverlay.showSetupUI();
(...skipping 12 matching lines...) Expand all
245 // in a multi-profile session. 242 // in a multi-profile session.
246 if (loadTimeData.getBoolean('secondaryUser')) { 243 if (loadTimeData.getBoolean('secondaryUser')) {
247 var networkIndicator = document.querySelector( 244 var networkIndicator = document.querySelector(
248 '#network-section-header > .controlled-setting-indicator'); 245 '#network-section-header > .controlled-setting-indicator');
249 networkIndicator.setAttribute('controlled-by', 'shared'); 246 networkIndicator.setAttribute('controlled-by', 'shared');
250 networkIndicator.location = cr.ui.ArrowLocation.TOP_START; 247 networkIndicator.location = cr.ui.ArrowLocation.TOP_START;
251 } 248 }
252 } 249 }
253 250
254 // On Startup section. 251 // On Startup section.
255 Preferences.getInstance().addEventListener('session.restore_on_startup', 252 Preferences.getInstance().addEventListener(
253 'session.restore_on_startup',
256 this.onRestoreOnStartupChanged_.bind(this)); 254 this.onRestoreOnStartupChanged_.bind(this));
257 Preferences.getInstance().addEventListener( 255 Preferences.getInstance().addEventListener(
258 'session.startup_urls', 256 'session.startup_urls', function(event) {
259 function(event) {
260 $('startup-set-pages').disabled = event.value.disabled; 257 $('startup-set-pages').disabled = event.value.disabled;
261 }); 258 });
262 259
263 $('startup-set-pages').onclick = function() { 260 $('startup-set-pages').onclick = function() {
264 PageManager.showPageByName('startup'); 261 PageManager.showPageByName('startup');
265 }; 262 };
266 263
267 // Appearance section. 264 // Appearance section.
268 Preferences.getInstance().addEventListener('browser.show_home_button', 265 Preferences.getInstance().addEventListener(
269 this.onShowHomeButtonChanged_.bind(this)); 266 'browser.show_home_button', this.onShowHomeButtonChanged_.bind(this));
270 267
271 Preferences.getInstance().addEventListener('homepage', 268 Preferences.getInstance().addEventListener(
272 this.onHomePageChanged_.bind(this)); 269 'homepage', this.onHomePageChanged_.bind(this));
273 Preferences.getInstance().addEventListener('homepage_is_newtabpage', 270 Preferences.getInstance().addEventListener(
274 this.onHomePageIsNtpChanged_.bind(this)); 271 'homepage_is_newtabpage', this.onHomePageIsNtpChanged_.bind(this));
275 272
276 $('change-home-page').onclick = function(event) { 273 $('change-home-page').onclick = function(event) {
277 PageManager.showPageByName('homePageOverlay'); 274 PageManager.showPageByName('homePageOverlay');
278 chrome.send('coreOptionsUserMetricsAction', 275 chrome.send(
279 ['Options_Homepage_ShowSettings']); 276 'coreOptionsUserMetricsAction', ['Options_Homepage_ShowSettings']);
280 }; 277 };
281 278
282 HotwordSearchSettingIndicator.decorate( 279 HotwordSearchSettingIndicator.decorate(
283 $('hotword-search-setting-indicator')); 280 $('hotword-search-setting-indicator'));
284 HotwordSearchSettingIndicator.decorate( 281 HotwordSearchSettingIndicator.decorate(
285 $('hotword-no-dsp-search-setting-indicator')); 282 $('hotword-no-dsp-search-setting-indicator'));
286 var hotwordIndicator = $('hotword-always-on-search-setting-indicator'); 283 var hotwordIndicator = $('hotword-always-on-search-setting-indicator');
287 HotwordSearchSettingIndicator.decorate(hotwordIndicator); 284 HotwordSearchSettingIndicator.decorate(hotwordIndicator);
288 hotwordIndicator.disabledOnErrorSection = 285 hotwordIndicator.disabledOnErrorSection =
289 $('hotword-always-on-search-checkbox'); 286 $('hotword-always-on-search-checkbox');
290 chrome.send('requestHotwordAvailable'); 287 chrome.send('requestHotwordAvailable');
291 288
292 chrome.send('requestGoogleNowAvailable'); 289 chrome.send('requestGoogleNowAvailable');
293 290
294 if ($('set-wallpaper')) { 291 if ($('set-wallpaper')) {
295 $('set-wallpaper').onclick = function(event) { 292 $('set-wallpaper').onclick = function(event) {
296 chrome.send('openWallpaperManager'); 293 chrome.send('openWallpaperManager');
297 chrome.send('coreOptionsUserMetricsAction', 294 chrome.send(
298 ['Options_OpenWallpaperManager']); 295 'coreOptionsUserMetricsAction', ['Options_OpenWallpaperManager']);
299 }; 296 };
300 } 297 }
301 298
302 // Control the hotword-always-on pref with the Hotword Audio 299 // Control the hotword-always-on pref with the Hotword Audio
303 // Verification app. 300 // Verification app.
304 $('hotword-always-on-search-checkbox').customChangeHandler = 301 $('hotword-always-on-search-checkbox').customChangeHandler = function(
305 function(event) { 302 event) {
306 if (!$('hotword-always-on-search-checkbox').checked) 303 if (!$('hotword-always-on-search-checkbox').checked)
307 return false; 304 return false;
308 305
309 $('hotword-always-on-search-checkbox').checked = false; 306 $('hotword-always-on-search-checkbox').checked = false;
310 chrome.send('launchHotwordAudioVerificationApp', [false]); 307 chrome.send('launchHotwordAudioVerificationApp', [false]);
311 return true; 308 return true;
312 }; 309 };
313 310
314 // Open the Hotword Audio Verification app to retrain a voice model. 311 // Open the Hotword Audio Verification app to retrain a voice model.
315 $('hotword-retrain-link').onclick = function(event) { 312 $('hotword-retrain-link').onclick = function(event) {
316 chrome.send('launchHotwordAudioVerificationApp', [true]); 313 chrome.send('launchHotwordAudioVerificationApp', [true]);
317 }; 314 };
318 Preferences.getInstance().addEventListener( 315 Preferences.getInstance().addEventListener(
319 'hotword.always_on_search_enabled', 316 'hotword.always_on_search_enabled',
320 this.onHotwordAlwaysOnChanged_.bind(this)); 317 this.onHotwordAlwaysOnChanged_.bind(this));
321 318
322 $('themes-gallery').onclick = function(event) { 319 $('themes-gallery').onclick = function(event) {
323 window.open(loadTimeData.getString('themesGalleryURL')); 320 window.open(loadTimeData.getString('themesGalleryURL'));
324 chrome.send('coreOptionsUserMetricsAction', 321 chrome.send('coreOptionsUserMetricsAction', ['Options_ThemesGallery']);
325 ['Options_ThemesGallery']);
326 }; 322 };
327 $('themes-reset').onclick = function(event) { 323 $('themes-reset').onclick = function(event) {
328 chrome.send('themesReset'); 324 chrome.send('themesReset');
329 }; 325 };
330 326
331 if (loadTimeData.getBoolean('profileIsSupervised')) { 327 if (loadTimeData.getBoolean('profileIsSupervised')) {
332 if ($('themes-native-button')) { 328 if ($('themes-native-button')) {
333 $('themes-native-button').disabled = true; 329 $('themes-native-button').disabled = true;
334 $('themes-native-button').hidden = true; 330 $('themes-native-button').hidden = true;
335 } 331 }
336 // Supervised users have just one default theme, even on Linux. So use 332 // Supervised users have just one default theme, even on Linux. So use
337 // the same button for Linux as for the other platforms. 333 // the same button for Linux as for the other platforms.
338 $('themes-reset').textContent = loadTimeData.getString('themesReset'); 334 $('themes-reset').textContent = loadTimeData.getString('themesReset');
339 } 335 }
340 336
341 // Device section (ChromeOS only). 337 // Device section (ChromeOS only).
342 if (cr.isChromeOS) { 338 if (cr.isChromeOS) {
343 // Probe for stylus hardware state. C++ will invoke 339 // Probe for stylus hardware state. C++ will invoke
344 // BrowserOptions.setStylusInputStatus_ when the data is available. 340 // BrowserOptions.setStylusInputStatus_ when the data is available.
345 chrome.send('requestStylusHardwareState'); 341 chrome.send('requestStylusHardwareState');
346 342
347 if (loadTimeData.getBoolean('showPowerStatus')) { 343 if (loadTimeData.getBoolean('showPowerStatus')) {
348 $('power-settings-link').onclick = function(evt) { 344 $('power-settings-link').onclick = function(evt) {
349 PageManager.showPageByName('power-overlay'); 345 PageManager.showPageByName('power-overlay');
350 chrome.send('coreOptionsUserMetricsAction', 346 chrome.send(
351 ['Options_ShowPowerSettings']); 347 'coreOptionsUserMetricsAction', ['Options_ShowPowerSettings']);
352 }; 348 };
353 $('power-row').hidden = false; 349 $('power-row').hidden = false;
354 } 350 }
355 $('keyboard-settings-button').onclick = function(evt) { 351 $('keyboard-settings-button').onclick = function(evt) {
356 PageManager.showPageByName('keyboard-overlay'); 352 PageManager.showPageByName('keyboard-overlay');
357 chrome.send('coreOptionsUserMetricsAction', 353 chrome.send(
358 ['Options_ShowKeyboardSettings']); 354 'coreOptionsUserMetricsAction', ['Options_ShowKeyboardSettings']);
359 }; 355 };
360 $('pointer-settings-button').onclick = function(evt) { 356 $('pointer-settings-button').onclick = function(evt) {
361 PageManager.showPageByName('pointer-overlay'); 357 PageManager.showPageByName('pointer-overlay');
362 chrome.send('coreOptionsUserMetricsAction', 358 chrome.send(
363 ['Options_ShowTouchpadSettings']); 359 'coreOptionsUserMetricsAction', ['Options_ShowTouchpadSettings']);
364 }; 360 };
365 $('storage-manager-button').onclick = function(evt) { 361 $('storage-manager-button').onclick = function(evt) {
366 PageManager.showPageByName('storage'); 362 PageManager.showPageByName('storage');
367 chrome.send('coreOptionsUserMetricsAction', 363 chrome.send(
368 ['Options_ShowStorageManager']); 364 'coreOptionsUserMetricsAction', ['Options_ShowStorageManager']);
369 }; 365 };
370 } 366 }
371 367
372 // Search section. 368 // Search section.
373 $('manage-default-search-engines').onclick = function(event) { 369 $('manage-default-search-engines').onclick = function(event) {
374 PageManager.showPageByName('searchEngines'); 370 PageManager.showPageByName('searchEngines');
375 chrome.send('coreOptionsUserMetricsAction', 371 chrome.send(
376 ['Options_ManageSearchEngines']); 372 'coreOptionsUserMetricsAction', ['Options_ManageSearchEngines']);
377 }; 373 };
378 $('default-search-engine').addEventListener('change', 374 $('default-search-engine')
379 this.setDefaultSearchEngine_); 375 .addEventListener('change', this.setDefaultSearchEngine_);
380 376
381 // Users section. 377 // Users section.
382 if (loadTimeData.valueExists('profilesInfo')) { 378 if (loadTimeData.valueExists('profilesInfo')) {
383 $('profiles-section').hidden = false; 379 $('profiles-section').hidden = false;
384 this.maybeShowUserSection_(); 380 this.maybeShowUserSection_();
385 381
386 var profilesList = $('profiles-list'); 382 var profilesList = $('profiles-list');
387 options.browser_options.ProfileList.decorate(profilesList); 383 options.browser_options.ProfileList.decorate(profilesList);
388 profilesList.autoExpands = true; 384 profilesList.autoExpands = true;
389 385
390 // The profiles info data in |loadTimeData| might be stale. 386 // The profiles info data in |loadTimeData| might be stale.
391 this.setProfilesInfo_(/** @type {!Array<!options.Profile>} */( 387 this.setProfilesInfo_(/** @type {!Array<!options.Profile>} */ (
392 loadTimeData.getValue('profilesInfo'))); 388 loadTimeData.getValue('profilesInfo')));
393 chrome.send('requestProfilesInfo'); 389 chrome.send('requestProfilesInfo');
394 390
395 profilesList.addEventListener('change', 391 profilesList.addEventListener(
396 this.setProfileViewButtonsStatus_); 392 'change', this.setProfileViewButtonsStatus_);
397 $('profiles-create').onclick = function(event) { 393 $('profiles-create').onclick = function(event) {
398 chrome.send('metricsHandler:recordAction', 394 chrome.send(
399 ['Options_ShowCreateProfileDlg']); 395 'metricsHandler:recordAction', ['Options_ShowCreateProfileDlg']);
400 ManageProfileOverlay.showCreateDialog(); 396 ManageProfileOverlay.showCreateDialog();
401 }; 397 };
402 $('profiles-manage').onclick = function(event) { 398 $('profiles-manage').onclick = function(event) {
403 chrome.send('metricsHandler:recordAction', 399 chrome.send(
404 ['Options_ShowEditProfileDlg']); 400 'metricsHandler:recordAction', ['Options_ShowEditProfileDlg']);
405 ManageProfileOverlay.showManageDialog(); 401 ManageProfileOverlay.showManageDialog();
406 }; 402 };
407 $('profiles-delete').onclick = function(event) { 403 $('profiles-delete').onclick = function(event) {
408 var selectedProfile = self.getSelectedProfileItem_(); 404 var selectedProfile = self.getSelectedProfileItem_();
409 if (selectedProfile) { 405 if (selectedProfile) {
410 chrome.send('metricsHandler:recordAction', 406 chrome.send(
411 ['Options_ShowDeleteProfileDlg']); 407 'metricsHandler:recordAction',
408 ['Options_ShowDeleteProfileDlg']);
412 ManageProfileOverlay.showDeleteDialog(selectedProfile); 409 ManageProfileOverlay.showDeleteDialog(selectedProfile);
413 } 410 }
414 }; 411 };
415 if (loadTimeData.getBoolean('profileIsSupervised')) { 412 if (loadTimeData.getBoolean('profileIsSupervised')) {
416 $('profiles-create').disabled = true; 413 $('profiles-create').disabled = true;
417 } 414 }
418 if (!loadTimeData.getBoolean('allowProfileDeletion')) { 415 if (!loadTimeData.getBoolean('allowProfileDeletion')) {
419 $('profiles-delete').disabled = true; 416 $('profiles-delete').disabled = true;
420 $('profiles-list').canDeleteItems = false; 417 $('profiles-list').canDeleteItems = false;
421 } 418 }
422 } 419 }
423 420
424 if (cr.isChromeOS) { 421 if (cr.isChromeOS) {
425 // Username (canonical email) of the currently logged in user or 422 // Username (canonical email) of the currently logged in user or
426 // |kGuestUser| if a guest session is active. 423 // |kGuestUser| if a guest session is active.
427 this.username_ = loadTimeData.getString('username'); 424 this.username_ = loadTimeData.getString('username');
428 425
429 this.updateAccountPicture_(); 426 this.updateAccountPicture_();
430 427
431 $('account-picture').onclick = this.showImagerPickerOverlay_; 428 $('account-picture').onclick = this.showImagerPickerOverlay_;
432 $('change-picture-caption').onclick = this.showImagerPickerOverlay_; 429 $('change-picture-caption').onclick = this.showImagerPickerOverlay_;
433 430
434 $('manage-accounts-button').onclick = function(event) { 431 $('manage-accounts-button').onclick = function(event) {
435 PageManager.showPageByName('accounts'); 432 PageManager.showPageByName('accounts');
436 chrome.send('coreOptionsUserMetricsAction', 433 chrome.send(
437 ['Options_ManageAccounts']); 434 'coreOptionsUserMetricsAction', ['Options_ManageAccounts']);
438 }; 435 };
439 436
440 if (loadTimeData.getBoolean('showQuickUnlockSettings')) { 437 if (loadTimeData.getBoolean('showQuickUnlockSettings')) {
441 $('manage-screenlock').onclick = function(event) { 438 $('manage-screenlock').onclick = function(event) {
442 PageManager.showPageByName('quickUnlockConfigureOverlay'); 439 PageManager.showPageByName('quickUnlockConfigureOverlay');
443 settings.recordLockScreenProgress( 440 settings.recordLockScreenProgress(
444 LockScreenProgress.START_SCREEN_LOCK); 441 LockScreenProgress.START_SCREEN_LOCK);
445 }; 442 };
446 $('manage-screenlock').hidden = false; 443 $('manage-screenlock').hidden = false;
447 } 444 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 } 479 }
483 $('set-as-default-browser').onclick = function(event) { 480 $('set-as-default-browser').onclick = function(event) {
484 chrome.send('becomeDefaultBrowser'); 481 chrome.send('becomeDefaultBrowser');
485 }; 482 };
486 } 483 }
487 484
488 // Privacy section. 485 // Privacy section.
489 $('privacyContentSettingsButton').onclick = function(event) { 486 $('privacyContentSettingsButton').onclick = function(event) {
490 PageManager.showPageByName('content'); 487 PageManager.showPageByName('content');
491 OptionsPage.showTab($('cookies-nav-tab')); 488 OptionsPage.showTab($('cookies-nav-tab'));
492 chrome.send('coreOptionsUserMetricsAction', 489 chrome.send(
493 ['Options_ContentSettings']); 490 'coreOptionsUserMetricsAction', ['Options_ContentSettings']);
494 }; 491 };
495 $('privacyClearDataButton').onclick = function(event) { 492 $('privacyClearDataButton').onclick = function(event) {
496 PageManager.showPageByName('clearBrowserData'); 493 PageManager.showPageByName('clearBrowserData');
497 chrome.send('coreOptionsUserMetricsAction', ['Options_ClearData']); 494 chrome.send('coreOptionsUserMetricsAction', ['Options_ClearData']);
498 }; 495 };
499 496
500 if ($('metrics-reporting-enabled')) { 497 if ($('metrics-reporting-enabled')) {
501 $('metrics-reporting-enabled').checked = 498 $('metrics-reporting-enabled').checked =
502 loadTimeData.getBoolean('metricsReportingEnabledAtStart'); 499 loadTimeData.getBoolean('metricsReportingEnabledAtStart');
503 500
504 // A browser restart is never needed to toggle metrics reporting, 501 // A browser restart is never needed to toggle metrics reporting,
505 // and is only needed to toggle crash reporting when using Breakpad. 502 // and is only needed to toggle crash reporting when using Breakpad.
506 // Crashpad, used on Mac, does not require a browser restart. 503 // Crashpad, used on Mac, does not require a browser restart.
507 var togglingMetricsRequiresRestart = !cr.isMac && !cr.isChromeOS; 504 var togglingMetricsRequiresRestart = !cr.isMac && !cr.isChromeOS;
508 $('metrics-reporting-enabled').onclick = function(event) { 505 $('metrics-reporting-enabled').onclick = function(event) {
509 chrome.send('metricsReportingCheckboxChanged', 506 chrome.send(
507 'metricsReportingCheckboxChanged',
510 [Boolean(event.currentTarget.checked)]); 508 [Boolean(event.currentTarget.checked)]);
511 if (cr.isChromeOS) { 509 if (cr.isChromeOS) {
512 // 'metricsReportingEnabled' element is only present on Chrome 510 // 'metricsReportingEnabled' element is only present on Chrome
513 // branded builds, and the 'metricsReportingCheckboxAction' message 511 // branded builds, and the 'metricsReportingCheckboxAction' message
514 // is only handled on ChromeOS. 512 // is only handled on ChromeOS.
515 chrome.send('metricsReportingCheckboxAction', 513 chrome.send(
514 'metricsReportingCheckboxAction',
516 [String(event.currentTarget.checked)]); 515 [String(event.currentTarget.checked)]);
517 } 516 }
518 517
519 if (togglingMetricsRequiresRestart) { 518 if (togglingMetricsRequiresRestart) {
520 $('metrics-reporting-reset-restart').hidden = 519 $('metrics-reporting-reset-restart').hidden =
521 loadTimeData.getBoolean('metricsReportingEnabledAtStart') == 520 loadTimeData.getBoolean('metricsReportingEnabledAtStart') ==
522 $('metrics-reporting-enabled').checked; 521 $('metrics-reporting-enabled').checked;
523 } 522 }
524 523
525 }; 524 };
526 525
527 // Initialize restart button if needed. 526 // Initialize restart button if needed.
528 if (togglingMetricsRequiresRestart) { 527 if (togglingMetricsRequiresRestart) {
529 // The localized string has the | symbol on each side of the text that 528 // The localized string has the | symbol on each side of the text that
530 // needs to be made into a button to restart Chrome. We parse the text 529 // needs to be made into a button to restart Chrome. We parse the text
531 // and build the button from that. 530 // and build the button from that.
532 var restartTextFragments = 531 var restartTextFragments =
533 loadTimeData.getString('metricsReportingResetRestart').split('|'); 532 loadTimeData.getString('metricsReportingResetRestart').split('|');
534 // Assume structure is something like "starting text |link text| 533 // Assume structure is something like "starting text |link text|
535 // ending text" where both starting text and ending text may or may 534 // ending text" where both starting text and ending text may or may
536 // not be present, but the split should always be in three pieces. 535 // not be present, but the split should always be in three pieces.
537 var restartElements = 536 var restartElements =
538 $('metrics-reporting-reset-restart').querySelectorAll('*'); 537 $('metrics-reporting-reset-restart').querySelectorAll('*');
539 for (var i = 0; i < restartTextFragments.length; i++) { 538 for (var i = 0; i < restartTextFragments.length; i++) {
540 restartElements[i].textContent = restartTextFragments[i]; 539 restartElements[i].textContent = restartTextFragments[i];
541 } 540 }
542 restartElements[1].onclick = function(event) { 541 restartElements[1].onclick = function(event) {
543 chrome.send('restartBrowser'); 542 chrome.send('restartBrowser');
544 }; 543 };
545 } 544 }
546 } 545 }
547 $('networkPredictionOptions').onchange = function(event) { 546 $('networkPredictionOptions').onchange = function(event) {
548 var value = (event.target.checked ? 547 var value =
549 NetworkPredictionOptions.WIFI_ONLY : 548 (event.target.checked ? NetworkPredictionOptions.WIFI_ONLY :
550 NetworkPredictionOptions.NEVER); 549 NetworkPredictionOptions.NEVER);
551 var metric = event.target.metric; 550 var metric = event.target.metric;
552 Preferences.setIntegerPref( 551 Preferences.setIntegerPref(
553 'net.network_prediction_options', 552 'net.network_prediction_options', value, true, metric);
554 value,
555 true,
556 metric);
557 }; 553 };
558 if (loadTimeData.valueExists('showWakeOnWifi') && 554 if (loadTimeData.valueExists('showWakeOnWifi') &&
559 loadTimeData.getBoolean('showWakeOnWifi')) { 555 loadTimeData.getBoolean('showWakeOnWifi')) {
560 $('wake-on-wifi').hidden = false; 556 $('wake-on-wifi').hidden = false;
561 } 557 }
562 558
563 // Bluetooth (CrOS only). 559 // Bluetooth (CrOS only).
564 if (cr.isChromeOS) { 560 if (cr.isChromeOS) {
565 // Request the intial bluetooth adapter state. 561 // Request the intial bluetooth adapter state.
566 var adapterStateChanged = 562 var adapterStateChanged =
(...skipping 16 matching lines...) Expand all
583 options.system.bluetooth.BluetoothDeviceList.decorate( 579 options.system.bluetooth.BluetoothDeviceList.decorate(
584 $('bluetooth-paired-devices-list')); 580 $('bluetooth-paired-devices-list'));
585 581
586 $('bluetooth-add-device').onclick = 582 $('bluetooth-add-device').onclick =
587 this.handleAddBluetoothDevice_.bind(this); 583 this.handleAddBluetoothDevice_.bind(this);
588 584
589 $('enable-bluetooth').onchange = function(event) { 585 $('enable-bluetooth').onchange = function(event) {
590 var state = $('enable-bluetooth').checked; 586 var state = $('enable-bluetooth').checked;
591 chrome.bluetoothPrivate.setAdapterState({powered: state}, function() { 587 chrome.bluetoothPrivate.setAdapterState({powered: state}, function() {
592 if (chrome.runtime.lastError) { 588 if (chrome.runtime.lastError) {
593 console.error('Error enabling bluetooth:', 589 console.error(
594 chrome.runtime.lastError.message); 590 'Error enabling bluetooth:',
591 chrome.runtime.lastError.message);
595 } 592 }
596 }); 593 });
597 }; 594 };
598 595
599 $('bluetooth-reconnect-device').onclick = function(event) { 596 $('bluetooth-reconnect-device').onclick = function(event) {
600 chrome.send('coreOptionsUserMetricsAction', 597 chrome.send(
601 ['Options_BluetoothConnectPairedDevice']); 598 'coreOptionsUserMetricsAction',
599 ['Options_BluetoothConnectPairedDevice']);
602 var device = $('bluetooth-paired-devices-list').selectedItem; 600 var device = $('bluetooth-paired-devices-list').selectedItem;
603 BluetoothPairing.connect(device); 601 BluetoothPairing.connect(device);
604 }; 602 };
605 603
606 $('bluetooth-paired-devices-list').addEventListener('change', 604 $('bluetooth-paired-devices-list')
607 function() { 605 .addEventListener('change', function() {
608 var item = $('bluetooth-paired-devices-list').selectedItem; 606 var item = $('bluetooth-paired-devices-list').selectedItem;
609 var disabled = !item || item.connected || !item.connectable; 607 var disabled = !item || item.connected || !item.connectable;
610 $('bluetooth-reconnect-device').disabled = disabled; 608 $('bluetooth-reconnect-device').disabled = disabled;
611 }); 609 });
612 } 610 }
613 611
614 // Passwords and Forms section. 612 // Passwords and Forms section.
615 $('autofill-settings').onclick = function(event) { 613 $('autofill-settings').onclick = function(event) {
616 PageManager.showPageByName('autofill'); 614 PageManager.showPageByName('autofill');
617 chrome.send('coreOptionsUserMetricsAction', 615 chrome.send(
618 ['Options_ShowAutofillSettings']); 616 'coreOptionsUserMetricsAction', ['Options_ShowAutofillSettings']);
619 }; 617 };
620 $('manage-passwords').onclick = function(event) { 618 $('manage-passwords').onclick = function(event) {
621 PageManager.showPageByName('passwords'); 619 PageManager.showPageByName('passwords');
622 OptionsPage.showTab($('passwords-nav-tab')); 620 OptionsPage.showTab($('passwords-nav-tab'));
623 chrome.send('coreOptionsUserMetricsAction', 621 chrome.send(
624 ['Options_ShowPasswordManager']); 622 'coreOptionsUserMetricsAction', ['Options_ShowPasswordManager']);
625 }; 623 };
626 if (cr.isChromeOS && UIAccountTweaks.loggedInAsGuest()) { 624 if (cr.isChromeOS && UIAccountTweaks.loggedInAsGuest()) {
627 // Disable and turn off Autofill in guest mode. 625 // Disable and turn off Autofill in guest mode.
628 var autofillEnabled = $('autofill-enabled'); 626 var autofillEnabled = $('autofill-enabled');
629 autofillEnabled.disabled = true; 627 autofillEnabled.disabled = true;
630 autofillEnabled.checked = false; 628 autofillEnabled.checked = false;
631 cr.dispatchSimpleEvent(autofillEnabled, 'change'); 629 cr.dispatchSimpleEvent(autofillEnabled, 'change');
632 $('autofill-settings').disabled = true; 630 $('autofill-settings').disabled = true;
633 631
634 // Disable and turn off Password Manager in guest mode. 632 // Disable and turn off Password Manager in guest mode.
(...skipping 25 matching lines...) Expand all
660 $('easy-unlock-turn-off-button').onclick = function(event) { 658 $('easy-unlock-turn-off-button').onclick = function(event) {
661 PageManager.showPageByName('easyUnlockTurnOffOverlay'); 659 PageManager.showPageByName('easyUnlockTurnOffOverlay');
662 }; 660 };
663 } 661 }
664 $('easy-unlock-enable-proximity-detection').hidden = 662 $('easy-unlock-enable-proximity-detection').hidden =
665 !loadTimeData.getBoolean('easyUnlockProximityDetectionAllowed'); 663 !loadTimeData.getBoolean('easyUnlockProximityDetectionAllowed');
666 664
667 // Web Content section. 665 // Web Content section.
668 $('fontSettingsCustomizeFontsButton').onclick = function(event) { 666 $('fontSettingsCustomizeFontsButton').onclick = function(event) {
669 PageManager.showPageByName('fonts'); 667 PageManager.showPageByName('fonts');
670 chrome.send('coreOptionsUserMetricsAction', 668 chrome.send(
671 ['Options_ShowFontSettings']); 669 'coreOptionsUserMetricsAction', ['Options_ShowFontSettings']);
672 }; 670 };
673 $('defaultFontSize').onchange = function(event) { 671 $('defaultFontSize').onchange = function(event) {
674 var value = event.target.options[event.target.selectedIndex].value; 672 var value = event.target.options[event.target.selectedIndex].value;
675 Preferences.setIntegerPref( 673 Preferences.setIntegerPref(
676 'webkit.webprefs.default_fixed_font_size', 674 'webkit.webprefs.default_fixed_font_size',
677 value - OptionsPage.SIZE_DIFFERENCE_FIXED_STANDARD, true); 675 value - OptionsPage.SIZE_DIFFERENCE_FIXED_STANDARD, true);
678 chrome.send('defaultFontSizeAction', [String(value)]); 676 chrome.send('defaultFontSizeAction', [String(value)]);
679 }; 677 };
680 $('defaultZoomFactor').onchange = function(event) { 678 $('defaultZoomFactor').onchange = function(event) {
681 chrome.send('defaultZoomFactorAction', 679 chrome.send(
680 'defaultZoomFactorAction',
682 [String(event.target.options[event.target.selectedIndex].value)]); 681 [String(event.target.options[event.target.selectedIndex].value)]);
683 }; 682 };
684 $('safeBrowsingExtendedReportingCheckbox').onchange = function(event) { 683 $('safeBrowsingExtendedReportingCheckbox').onchange = function(event) {
685 chrome.send('safeBrowsingExtendedReportingAction', 684 chrome.send(
686 [event.target.checked]); 685 'safeBrowsingExtendedReportingAction', [event.target.checked]);
687 }; 686 };
688 687
689 // Languages section. 688 // Languages section.
690 var showLanguageOptions = function(event) { 689 var showLanguageOptions = function(event) {
691 PageManager.showPageByName('languages'); 690 PageManager.showPageByName('languages');
692 chrome.send('coreOptionsUserMetricsAction', 691 chrome.send(
692 'coreOptionsUserMetricsAction',
693 ['Options_LanuageAndSpellCheckSettings']); 693 ['Options_LanuageAndSpellCheckSettings']);
694 }; 694 };
695 $('language-button').onclick = showLanguageOptions; 695 $('language-button').onclick = showLanguageOptions;
696 $('manage-languages').onclick = showLanguageOptions; 696 $('manage-languages').onclick = showLanguageOptions;
697 697
698 // Downloads section. 698 // Downloads section.
699 Preferences.getInstance().addEventListener('download.default_directory', 699 Preferences.getInstance().addEventListener(
700 'download.default_directory',
700 this.onDefaultDownloadDirectoryChanged_.bind(this)); 701 this.onDefaultDownloadDirectoryChanged_.bind(this));
701 $('downloadLocationChangeButton').onclick = function(event) { 702 $('downloadLocationChangeButton').onclick = function(event) {
702 chrome.send('selectDownloadLocation'); 703 chrome.send('selectDownloadLocation');
703 }; 704 };
704 if (cr.isChromeOS) { 705 if (cr.isChromeOS) {
705 $('disable-drive-row').hidden = 706 $('disable-drive-row').hidden =
706 UIAccountTweaks.loggedInAsSupervisedUser(); 707 UIAccountTweaks.loggedInAsSupervisedUser();
707 } 708 }
708 $('autoOpenFileTypesResetToDefault').onclick = function(event) { 709 $('autoOpenFileTypesResetToDefault').onclick = function(event) {
709 chrome.send('autoOpenFileTypesAction'); 710 chrome.send('autoOpenFileTypesAction');
710 }; 711 };
711 712
712 // HTTPS/SSL section. 713 // HTTPS/SSL section.
713 if (cr.isWindows || cr.isMac) { 714 if (cr.isWindows || cr.isMac) {
714 $('certificatesManageButton').onclick = function(event) { 715 $('certificatesManageButton').onclick = function(event) {
715 chrome.send('showManageSSLCertificates'); 716 chrome.send('showManageSSLCertificates');
716 }; 717 };
717 } else { 718 } else {
718 $('certificatesManageButton').onclick = function(event) { 719 $('certificatesManageButton').onclick = function(event) {
719 PageManager.showPageByName('certificates'); 720 PageManager.showPageByName('certificates');
720 chrome.send('coreOptionsUserMetricsAction', 721 chrome.send(
721 ['Options_ManageSSLCertificates']); 722 'coreOptionsUserMetricsAction',
723 ['Options_ManageSSLCertificates']);
722 }; 724 };
723 } 725 }
724 726
725 // CUPS Print section (CrOS only). 727 // CUPS Print section (CrOS only).
726 if (cr.isChromeOS) { 728 if (cr.isChromeOS) {
727 if (!loadTimeData.getBoolean('cupsPrintDisabled')) { 729 if (!loadTimeData.getBoolean('cupsPrintDisabled')) {
728 $('cups-printers-section').hidden = false; 730 $('cups-printers-section').hidden = false;
729 $('cupsPrintersManageButton').onclick = function() { 731 $('cupsPrintersManageButton').onclick = function() {
730 chrome.send('showCupsPrintDevicesPage'); 732 chrome.send('showCupsPrintDevicesPage');
731 }; 733 };
732 } 734 }
733 } 735 }
734 736
735 if (loadTimeData.getBoolean('cloudPrintShowMDnsOptions')) { 737 if (loadTimeData.getBoolean('cloudPrintShowMDnsOptions')) {
736 $('cloudprint-options-mdns').hidden = false; 738 $('cloudprint-options-mdns').hidden = false;
737 $('cloudPrintDevicesPageButton').onclick = function() { 739 $('cloudPrintDevicesPageButton').onclick = function() {
738 chrome.send('showCloudPrintDevicesPage'); 740 chrome.send('showCloudPrintDevicesPage');
739 }; 741 };
740 } 742 }
741 743
742 // Accessibility section (CrOS only). 744 // Accessibility section (CrOS only).
743 if (cr.isChromeOS) { 745 if (cr.isChromeOS) {
744 var updateAccessibilitySettingsSection = function() { 746 var updateAccessibilitySettingsSection = function() {
745 $('accessibility-settings').hidden = 747 $('accessibility-settings').hidden =
746 !($('accessibility-spoken-feedback-check').checked); 748 !($('accessibility-spoken-feedback-check').checked);
747 }; 749 };
748 Preferences.getInstance().addEventListener( 750 Preferences.getInstance().addEventListener(
749 'settings.accessibility', 751 'settings.accessibility', updateAccessibilitySettingsSection);
750 updateAccessibilitySettingsSection);
751 $('accessibility-learn-more').onclick = function(unused_event) { 752 $('accessibility-learn-more').onclick = function(unused_event) {
752 chrome.send('coreOptionsUserMetricsAction', 753 chrome.send(
753 ['Options_AccessibilityLearnMore']); 754 'coreOptionsUserMetricsAction',
755 ['Options_AccessibilityLearnMore']);
754 }; 756 };
755 $('accessibility-settings-button').onclick = function(unused_event) { 757 $('accessibility-settings-button').onclick = function(unused_event) {
756 window.open(loadTimeData.getString('accessibilitySettingsURL')); 758 window.open(loadTimeData.getString('accessibilitySettingsURL'));
757 }; 759 };
758 $('talkback-settings-button').onclick = function(unused_event) { 760 $('talkback-settings-button').onclick = function(unused_event) {
759 chrome.send('showAccessibilityTalkBackSettings'); 761 chrome.send('showAccessibilityTalkBackSettings');
760 }; 762 };
761 $('accessibility-spoken-feedback-check').onchange = 763 $('accessibility-spoken-feedback-check').onchange =
762 updateAccessibilitySettingsSection; 764 updateAccessibilitySettingsSection;
763 updateAccessibilitySettingsSection(); 765 updateAccessibilitySettingsSection();
(...skipping 14 matching lines...) Expand all
778 $('accessibility-autoclick-check').getAttribute('pref'), 780 $('accessibility-autoclick-check').getAttribute('pref'),
779 updateDelayDropdown); 781 updateDelayDropdown);
780 $('experimental-accessibility-features').hidden = 782 $('experimental-accessibility-features').hidden =
781 !loadTimeData.getBoolean('enableExperimentalAccessibilityFeatures'); 783 !loadTimeData.getBoolean('enableExperimentalAccessibilityFeatures');
782 } 784 }
783 785
784 // Display management section (CrOS only). 786 // Display management section (CrOS only).
785 if (cr.isChromeOS) { 787 if (cr.isChromeOS) {
786 $('display-options').onclick = function(event) { 788 $('display-options').onclick = function(event) {
787 PageManager.showPageByName('display'); 789 PageManager.showPageByName('display');
788 chrome.send('coreOptionsUserMetricsAction', 790 chrome.send('coreOptionsUserMetricsAction', ['Options_Display']);
789 ['Options_Display']);
790 }; 791 };
791 } 792 }
792 793
793 // Factory reset section (CrOS only). 794 // Factory reset section (CrOS only).
794 if (cr.isChromeOS) { 795 if (cr.isChromeOS) {
795 $('factory-reset-restart').onclick = function(event) { 796 $('factory-reset-restart').onclick = function(event) {
796 PageManager.showPageByName('factoryResetData'); 797 PageManager.showPageByName('factoryResetData');
797 chrome.send('onPowerwashDialogShow'); 798 chrome.send('onPowerwashDialogShow');
798 }; 799 };
799 } 800 }
(...skipping 12 matching lines...) Expand all
812 chrome.send('restartBrowser'); 813 chrome.send('restartBrowser');
813 }; 814 };
814 updateGpuRestartButton(); 815 updateGpuRestartButton();
815 } 816 }
816 817
817 // Reset profile settings section. 818 // Reset profile settings section.
818 $('reset-profile-settings').onclick = function(event) { 819 $('reset-profile-settings').onclick = function(event) {
819 // We use the hash to indicate the source of the reset request. The hash 820 // We use the hash to indicate the source of the reset request. The hash
820 // is removed by the reset profile settings overlay once it has been 821 // is removed by the reset profile settings overlay once it has been
821 // consumed. 822 // consumed.
822 PageManager.showPageByName('resetProfileSettings', true, 823 PageManager.showPageByName(
823 {hash: '#userclick'}); 824 'resetProfileSettings', true, {hash: '#userclick'});
824 }; 825 };
825 826
826 // Extension controlled UI. 827 // Extension controlled UI.
827 this.addExtensionControlledBox_('search-section-content', 828 this.addExtensionControlledBox_(
828 'search-engine-controlled', 829 'search-section-content', 'search-engine-controlled', true);
829 true); 830 this.addExtensionControlledBox_(
830 this.addExtensionControlledBox_('extension-controlled-container', 831 'extension-controlled-container', 'homepage-controlled', true);
831 'homepage-controlled', 832 this.addExtensionControlledBox_(
832 true); 833 'startup-section-content', 'startpage-controlled', false);
833 this.addExtensionControlledBox_('startup-section-content', 834 this.addExtensionControlledBox_(
834 'startpage-controlled', 835 'newtab-section-content', 'newtab-controlled', false);
835 false); 836 this.addExtensionControlledBox_(
836 this.addExtensionControlledBox_('newtab-section-content', 837 'proxy-section-content', 'proxy-controlled', true);
837 'newtab-controlled',
838 false);
839 this.addExtensionControlledBox_('proxy-section-content',
840 'proxy-controlled',
841 true);
842 838
843 document.body.addEventListener('click', function(e) { 839 document.body.addEventListener('click', function(e) {
844 var target = assertInstanceof(e.target, Node); 840 var target = assertInstanceof(e.target, Node);
845 var button = findAncestor(target, function(el) { 841 var button = findAncestor(target, function(el) {
846 return el.tagName == 'BUTTON' && 842 return el.tagName == 'BUTTON' &&
847 el.dataset.extensionId !== undefined && 843 el.dataset.extensionId !== undefined &&
848 el.dataset.extensionId.length; 844 el.dataset.extensionId.length;
849 }); 845 });
850 if (button) 846 if (button)
851 chrome.send('disableExtension', [button.dataset.extensionId]); 847 chrome.send('disableExtension', [button.dataset.extensionId]);
852 }); 848 });
853 849
854 // Setup ARC section. 850 // Setup ARC section.
855 if (cr.isChromeOS) { 851 if (cr.isChromeOS) {
856 $('android-apps-settings-label').innerHTML = 852 $('android-apps-settings-label').innerHTML =
857 loadTimeData.getString('androidAppsSettingsLabel'); 853 loadTimeData.getString('androidAppsSettingsLabel');
858 Preferences.getInstance().addEventListener('arc.enabled', function(e) { 854 Preferences.getInstance().addEventListener('arc.enabled', function(e) {
859 // Only change settings visibility on committed settings changes. 855 // Only change settings visibility on committed settings changes.
860 if (e.value.uncommitted) 856 if (e.value.uncommitted)
861 return; 857 return;
862 858
863 var isArcEnabled = !e.value.value; 859 var isArcEnabled = !e.value.value;
864 $('android-apps-settings').hidden = isArcEnabled; 860 $('android-apps-settings').hidden = isArcEnabled;
865 $('talkback-settings-button').hidden = isArcEnabled; 861 $('talkback-settings-button').hidden = isArcEnabled;
866 $('stylus-find-more-link').hidden = isArcEnabled; 862 $('stylus-find-more-link').hidden = isArcEnabled;
867 }); 863 });
868 864
869 $('android-apps-settings-link').addEventListener('click', function(e) { 865 $('android-apps-settings-link').addEventListener('click', function(e) {
870 // MouseEvent.detail indicates the current click count (or tap 866 // MouseEvent.detail indicates the current click count (or tap
871 // count, in the case of touch events) in the 'click' event. 867 // count, in the case of touch events) in the 'click' event.
872 var activatedFromKeyboard = e.detail == 0; 868 var activatedFromKeyboard = e.detail == 0;
873 chrome.send('showAndroidAppsSettings', [activatedFromKeyboard]); 869 chrome.send('showAndroidAppsSettings', [activatedFromKeyboard]);
874 }); 870 });
875 } 871 }
876 }, 872 },
877 873
878 /** @override */ 874 /** @override */
879 didShowPage: function() { 875 didShowPage: function() {
880 $('search-field').focus(); 876 $('search-field').focus();
881 }, 877 },
882 878
883 /** 879 /**
884 * Called after all C++ UI handlers have called InitializePage to notify 880 * Called after all C++ UI handlers have called InitializePage to notify
885 * that initialization is complete. 881 * that initialization is complete.
886 * @private 882 * @private
887 */ 883 */
888 notifyInitializationComplete_: function() { 884 notifyInitializationComplete_: function() {
889 this.initializationComplete_ = true; 885 this.initializationComplete_ = true;
890 cr.dispatchSimpleEvent(document, 'initializationComplete'); 886 cr.dispatchSimpleEvent(document, 'initializationComplete');
891 }, 887 },
892 888
893 /** 889 /**
894 * Event listener for the 'session.restore_on_startup' pref. 890 * Event listener for the 'session.restore_on_startup' pref.
895 * @param {Event} event The preference change event. 891 * @param {Event} event The preference change event.
896 * @private 892 * @private
897 */ 893 */
(...skipping 16 matching lines...) Expand all
914 StartupOverlay.getInstance().updateControlStates(); 910 StartupOverlay.getInstance().updateControlStates();
915 } 911 }
916 }, 912 },
917 913
918 /** 914 /**
919 * Handler for messages sent from the main uber page. 915 * Handler for messages sent from the main uber page.
920 * @param {Event} e The 'message' event from the uber page. 916 * @param {Event} e The 'message' event from the uber page.
921 * @private 917 * @private
922 */ 918 */
923 handleWindowMessage_: function(e) { 919 handleWindowMessage_: function(e) {
924 if ((/** @type {{method: string}} */(e.data)).method == 'frameSelected') 920 if ((/** @type {{method: string}} */ (e.data)).method == 'frameSelected')
925 $('search-field').focus(); 921 $('search-field').focus();
926 }, 922 },
927 923
928 /** 924 /**
929 * Animatedly changes height |from| a px number |to| a px number. 925 * Animatedly changes height |from| a px number |to| a px number.
930 * @param {HTMLElement} section The section to animate. 926 * @param {HTMLElement} section The section to animate.
931 * @param {HTMLElement} container The container of |section|. 927 * @param {HTMLElement} container The container of |section|.
932 * @param {boolean} showing Whether to go from 0 -> container height or 928 * @param {boolean} showing Whether to go from 0 -> container height or
933 * container height -> 0. 929 * container height -> 0.
934 * @private 930 * @private
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1016 * advanced settings if required. The transition is not animated. This 1012 * advanced settings if required. The transition is not animated. This
1017 * method is used to ensure that a section associated with an overlay 1013 * method is used to ensure that a section associated with an overlay
1018 * is visible when the overlay is closed. 1014 * is visible when the overlay is closed.
1019 * @param {!Element} section The section to make visible. 1015 * @param {!Element} section The section to make visible.
1020 * @private 1016 * @private
1021 */ 1017 */
1022 scrollToSection_: function(section) { 1018 scrollToSection_: function(section) {
1023 var advancedSettings = $('advanced-settings'); 1019 var advancedSettings = $('advanced-settings');
1024 var container = $('advanced-settings-container'); 1020 var container = $('advanced-settings-container');
1025 var expander = $('advanced-settings-expander'); 1021 var expander = $('advanced-settings-expander');
1026 if (!expander.hidden && 1022 if (!expander.hidden && advancedSettings.hidden &&
1027 advancedSettings.hidden &&
1028 section.parentNode == container) { 1023 section.parentNode == container) {
1029 this.showSection_($('advanced-settings'), 1024 this.showSection_(
1030 $('advanced-settings-container'), 1025 $('advanced-settings'), $('advanced-settings-container'),
1031 /* animate */ false); 1026 /* animate */ false);
1032 this.updateAdvancedSettingsExpander_(); 1027 this.updateAdvancedSettingsExpander_();
1033 } 1028 }
1034 1029
1035 if (!this.initializationComplete_) { 1030 if (!this.initializationComplete_) {
1036 var self = this; 1031 var self = this;
1037 var callback = function() { 1032 var callback = function() {
1038 document.removeEventListener('initializationComplete', callback); 1033 document.removeEventListener('initializationComplete', callback);
1039 self.scrollToSection_(section); 1034 self.scrollToSection_(section);
1040 }; 1035 };
1041 document.addEventListener('initializationComplete', callback); 1036 document.addEventListener('initializationComplete', callback);
1042 return; 1037 return;
1043 } 1038 }
1044 1039
1045 var pageContainer = $('page-container'); 1040 var pageContainer = $('page-container');
1046 // pageContainer.offsetTop is relative to the screen. 1041 // pageContainer.offsetTop is relative to the screen.
1047 var pageTop = pageContainer.offsetTop; 1042 var pageTop = pageContainer.offsetTop;
1048 var sectionBottom = section.offsetTop + section.offsetHeight; 1043 var sectionBottom = section.offsetTop + section.offsetHeight;
1049 // section.offsetTop is relative to the 'page-container'. 1044 // section.offsetTop is relative to the 'page-container'.
(...skipping 14 matching lines...) Expand all
1064 * Adds a |transitionend| listener to the given section so that 1059 * Adds a |transitionend| listener to the given section so that
1065 * it can be animated. The listener will only be added to a given section 1060 * it can be animated. The listener will only be added to a given section
1066 * once, so this can be called as multiple times. 1061 * once, so this can be called as multiple times.
1067 * @param {HTMLElement} section The section to be animated. 1062 * @param {HTMLElement} section The section to be animated.
1068 * @private 1063 * @private
1069 */ 1064 */
1070 addTransitionEndListener_: function(section) { 1065 addTransitionEndListener_: function(section) {
1071 if (section.hasTransitionEndListener_) 1066 if (section.hasTransitionEndListener_)
1072 return; 1067 return;
1073 1068
1074 section.addEventListener('transitionend', 1069 section.addEventListener(
1075 this.onTransitionEnd_.bind(this)); 1070 'transitionend', this.onTransitionEnd_.bind(this));
1076 section.hasTransitionEndListener_ = true; 1071 section.hasTransitionEndListener_ = true;
1077 }, 1072 },
1078 1073
1079 /** 1074 /**
1080 * Called after an animation transition has ended. 1075 * Called after an animation transition has ended.
1081 * @param {Event} event The transitionend event. NOTE: May be 1076 * @param {Event} event The transitionend event. NOTE: May be
1082 * synthetic. 1077 * synthetic.
1083 * @private 1078 * @private
1084 */ 1079 */
1085 onTransitionEnd_: function(event) { 1080 onTransitionEnd_: function(event) {
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1158 // already hidden. 1153 // already hidden.
1159 if (this.signedIn_ && !syncData.signedIn && !syncData.setupInProgress) 1154 if (this.signedIn_ && !syncData.signedIn && !syncData.setupInProgress)
1160 SyncSetupOverlay.closeOverlay(); 1155 SyncSetupOverlay.closeOverlay();
1161 1156
1162 this.signedIn_ = !!syncData.signedIn; 1157 this.signedIn_ = !!syncData.signedIn;
1163 1158
1164 // Display the "advanced settings" button if we're signed in and sync is 1159 // Display the "advanced settings" button if we're signed in and sync is
1165 // not managed/disabled. If the user is signed in, but sync is disabled, 1160 // not managed/disabled. If the user is signed in, but sync is disabled,
1166 // this button is used to re-enable sync. 1161 // this button is used to re-enable sync.
1167 var customizeSyncButton = $('customize-sync'); 1162 var customizeSyncButton = $('customize-sync');
1168 customizeSyncButton.hidden = !this.signedIn_ || 1163 customizeSyncButton.hidden =
1169 syncData.managed || 1164 !this.signedIn_ || syncData.managed || !syncData.syncSystemEnabled;
1170 !syncData.syncSystemEnabled;
1171 1165
1172 // Only modify the customize button's text if the new text is different. 1166 // Only modify the customize button's text if the new text is different.
1173 // Otherwise, it can affect search-highlighting in the settings page. 1167 // Otherwise, it can affect search-highlighting in the settings page.
1174 // See http://crbug.com/268265. 1168 // See http://crbug.com/268265.
1175 var customizeSyncButtonNewText = syncData.setupCompleted ? 1169 var customizeSyncButtonNewText = syncData.setupCompleted ?
1176 loadTimeData.getString('customizeSync') : 1170 loadTimeData.getString('customizeSync') :
1177 loadTimeData.getString('syncButtonTextStart'); 1171 loadTimeData.getString('syncButtonTextStart');
1178 if (customizeSyncButton.textContent != customizeSyncButtonNewText) 1172 if (customizeSyncButton.textContent != customizeSyncButtonNewText)
1179 customizeSyncButton.textContent = customizeSyncButtonNewText; 1173 customizeSyncButton.textContent = customizeSyncButtonNewText;
1180 1174
1181 // Disable the "sign in" button if we're currently signing in, or if we're 1175 // Disable the "sign in" button if we're currently signing in, or if we're
1182 // already signed in and signout is not allowed. 1176 // already signed in and signout is not allowed.
1183 var signInButton = $('start-stop-sync'); 1177 var signInButton = $('start-stop-sync');
1184 signInButton.disabled = syncData.setupInProgress; 1178 signInButton.disabled = syncData.setupInProgress;
1185 this.signoutAllowed_ = !!syncData.signoutAllowed; 1179 this.signoutAllowed_ = !!syncData.signoutAllowed;
1186 if (!syncData.signoutAllowed) 1180 if (!syncData.signoutAllowed)
1187 $('start-stop-sync-indicator').setAttribute('controlled-by', 'policy'); 1181 $('start-stop-sync-indicator').setAttribute('controlled-by', 'policy');
1188 else 1182 else
1189 $('start-stop-sync-indicator').removeAttribute('controlled-by'); 1183 $('start-stop-sync-indicator').removeAttribute('controlled-by');
1190 1184
1191 // Hide the "sign in" button on Chrome OS, and show it on desktop Chrome 1185 // Hide the "sign in" button on Chrome OS, and show it on desktop Chrome
1192 // (except for supervised users, which can't change their signed-in 1186 // (except for supervised users, which can't change their signed-in
1193 // status). 1187 // status).
1194 signInButton.hidden = cr.isChromeOS || syncData.supervisedUser; 1188 signInButton.hidden = cr.isChromeOS || syncData.supervisedUser;
1195 1189
1196 signInButton.textContent = 1190 signInButton.textContent = this.signedIn_ ?
1197 this.signedIn_ ? 1191 loadTimeData.getString('syncButtonTextStop') :
1198 loadTimeData.getString('syncButtonTextStop') : 1192 syncData.setupInProgress ?
1199 syncData.setupInProgress ? 1193 loadTimeData.getString('syncButtonTextInProgress') :
1200 loadTimeData.getString('syncButtonTextInProgress') : 1194 loadTimeData.getString('syncButtonTextSignIn');
1201 loadTimeData.getString('syncButtonTextSignIn');
1202 $('start-stop-sync-indicator').hidden = signInButton.hidden; 1195 $('start-stop-sync-indicator').hidden = signInButton.hidden;
1203 1196
1204 $('account-info').textContent = syncData.accountInfo; 1197 $('account-info').textContent = syncData.accountInfo;
1205 $('account-info').hidden = !this.signedIn_; 1198 $('account-info').hidden = !this.signedIn_;
1206 1199
1207 // TODO(estade): can this just be textContent? 1200 // TODO(estade): can this just be textContent?
1208 $('sync-status-text').innerHTML = syncData.statusText; 1201 $('sync-status-text').innerHTML = syncData.statusText;
1209 var statusSet = syncData.statusText.length != 0; 1202 var statusSet = syncData.statusText.length != 0;
1210 $('sync-overview').hidden = 1203 $('sync-overview').hidden = statusSet ||
1211 statusSet ||
1212 (cr.isChromeOS && UIAccountTweaks.loggedInAsPublicAccount()); 1204 (cr.isChromeOS && UIAccountTweaks.loggedInAsPublicAccount());
1213 $('sync-status').hidden = !statusSet; 1205 $('sync-status').hidden = !statusSet;
1214 1206
1215 $('sync-action-link').textContent = syncData.actionLinkText; 1207 $('sync-action-link').textContent = syncData.actionLinkText;
1216 // Don't show the action link if it is empty or undefined. 1208 // Don't show the action link if it is empty or undefined.
1217 $('sync-action-link').hidden = syncData.actionLinkText.length == 0; 1209 $('sync-action-link').hidden = syncData.actionLinkText.length == 0;
1218 $('sync-action-link').disabled = syncData.managed || 1210 $('sync-action-link').disabled =
1219 !syncData.syncSystemEnabled; 1211 syncData.managed || !syncData.syncSystemEnabled;
1220 1212
1221 $('sync-action-link').onclick = function(event) { 1213 $('sync-action-link').onclick = function(event) {
1222 switch (syncData.statusAction) { 1214 switch (syncData.statusAction) {
1223 case 'reauthenticate': 1215 case 'reauthenticate':
1224 SyncSetupOverlay.startSignIn(false /* creatingSupervisedUser */); 1216 SyncSetupOverlay.startSignIn(false /* creatingSupervisedUser */);
1225 break; 1217 break;
1226 case 'signOutAndSignIn': 1218 case 'signOutAndSignIn':
1227 // <if expr="chromeos"> 1219 // <if expr="chromeos">
1228 // On Chrome OS, sign out the user and sign in again to get fresh 1220 // On Chrome OS, sign out the user and sign in again to get fresh
1229 // credentials on auth errors. 1221 // credentials on auth errors.
1230 SyncSetupOverlay.doSignOutOnAuthError(); 1222 SyncSetupOverlay.doSignOutOnAuthError();
1231 // </if> 1223 // </if>
1232 // <if expr="not chromeos"> 1224 // <if expr="not chromeos">
1233 if (syncData.signoutAllowed) { 1225 if (syncData.signoutAllowed) {
1234 // Silently sign the user out without deleting their profile and 1226 // Silently sign the user out without deleting their profile and
1235 // prompt them to sign back in. 1227 // prompt them to sign back in.
1236 chrome.send('SyncSetupStopSyncing', [false /* deleteProfile */]); 1228 chrome.send('SyncSetupStopSyncing', [false /* deleteProfile */]);
1237 SyncSetupOverlay.startSignIn(false /* creatingSupervisedUser */); 1229 SyncSetupOverlay.startSignIn(false /* creatingSupervisedUser */);
1238 } else { 1230 } else {
1239 chrome.send('showDisconnectManagedProfileDialog'); 1231 chrome.send('showDisconnectManagedProfileDialog');
1240 } 1232 }
1241 // </if> 1233 // </if>
1242 break; 1234 break;
1243 case 'upgradeClient': 1235 case 'upgradeClient':
1244 PageManager.showPageByName('help'); 1236 PageManager.showPageByName('help');
1245 break; 1237 break;
1246 default: 1238 default:
1247 SyncSetupOverlay.showSetupUI(); 1239 SyncSetupOverlay.showSetupUI();
1248 } 1240 }
1249 }; 1241 };
1250 1242
1251 if (syncData.hasError) 1243 if (syncData.hasError)
1252 $('sync-status').classList.add('sync-error'); 1244 $('sync-status').classList.add('sync-error');
1253 else 1245 else
1254 $('sync-status').classList.remove('sync-error'); 1246 $('sync-status').classList.remove('sync-error');
1255 1247
1256 // Disable the "customize / set up sync" button if sync has an 1248 // Disable the "customize / set up sync" button if sync has an
1257 // unrecoverable error. Also disable the button if sync has not been set 1249 // unrecoverable error. Also disable the button if sync has not been set
1258 // up and the user is being presented with a link to re-auth. 1250 // up and the user is being presented with a link to re-auth.
1259 // See crbug.com/289791. 1251 // See crbug.com/289791.
1260 customizeSyncButton.disabled = 1252 customizeSyncButton.disabled = syncData.hasUnrecoverableError ||
1261 syncData.hasUnrecoverableError ||
1262 (!syncData.setupCompleted && !$('sync-action-link').hidden); 1253 (!syncData.setupCompleted && !$('sync-action-link').hidden);
1263 }, 1254 },
1264 1255
1265 /** 1256 /**
1266 * Update the UI depending on whether Easy Unlock is enabled for the current 1257 * Update the UI depending on whether Easy Unlock is enabled for the current
1267 * profile. 1258 * profile.
1268 * @param {boolean} isEnabled True if the feature is enabled for the current 1259 * @param {boolean} isEnabled True if the feature is enabled for the current
1269 * profile. 1260 * profile.
1270 */ 1261 */
1271 updateEasyUnlock_: function(isEnabled) { 1262 updateEasyUnlock_: function(isEnabled) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1316 } 1307 }
1317 }, 1308 },
1318 1309
1319 /** 1310 /**
1320 * Activates the Hotword section from the System settings page. 1311 * Activates the Hotword section from the System settings page.
1321 * @param {string} sectionId The id of the section to display. 1312 * @param {string} sectionId The id of the section to display.
1322 * @param {string} indicatorId The id of the indicator to display. 1313 * @param {string} indicatorId The id of the indicator to display.
1323 * @param {string=} opt_error The error message to display. 1314 * @param {string=} opt_error The error message to display.
1324 * @private 1315 * @private
1325 */ 1316 */
1326 showHotwordCheckboxAndIndicator_: function(sectionId, indicatorId, 1317 showHotwordCheckboxAndIndicator_: function(
1327 opt_error) { 1318 sectionId, indicatorId, opt_error) {
1328 $(sectionId).hidden = false; 1319 $(sectionId).hidden = false;
1329 $(indicatorId).setError(opt_error); 1320 $(indicatorId).setError(opt_error);
1330 if (opt_error) 1321 if (opt_error)
1331 $(indicatorId).updateBasedOnError(); 1322 $(indicatorId).updateBasedOnError();
1332 }, 1323 },
1333 1324
1334 /** 1325 /**
1335 * Activates the Hotword section from the System settings page. 1326 * Activates the Hotword section from the System settings page.
1336 * @param {string=} opt_error The error message to display. 1327 * @param {string=} opt_error The error message to display.
1337 * @private 1328 * @private
1338 */ 1329 */
1339 showHotwordSection_: function(opt_error) { 1330 showHotwordSection_: function(opt_error) {
1340 this.showHotwordCheckboxAndIndicator_( 1331 this.showHotwordCheckboxAndIndicator_(
1341 'hotword-search', 1332 'hotword-search', 'hotword-search-setting-indicator', opt_error);
1342 'hotword-search-setting-indicator',
1343 opt_error);
1344 }, 1333 },
1345 1334
1346 /** 1335 /**
1347 * Activates the Always-On Hotword sections from the 1336 * Activates the Always-On Hotword sections from the
1348 * System settings page. 1337 * System settings page.
1349 * @param {string=} opt_error The error message to display. 1338 * @param {string=} opt_error The error message to display.
1350 * @private 1339 * @private
1351 */ 1340 */
1352 showHotwordAlwaysOnSection_: function(opt_error) { 1341 showHotwordAlwaysOnSection_: function(opt_error) {
1353 this.showHotwordCheckboxAndIndicator_( 1342 this.showHotwordCheckboxAndIndicator_(
1354 'hotword-always-on-search', 1343 'hotword-always-on-search',
1355 'hotword-always-on-search-setting-indicator', 1344 'hotword-always-on-search-setting-indicator', opt_error);
1356 opt_error);
1357 }, 1345 },
1358 1346
1359 /** 1347 /**
1360 * Activates the Hotword section on devices with no DSP 1348 * Activates the Hotword section on devices with no DSP
1361 * from the System settings page. 1349 * from the System settings page.
1362 * @param {string=} opt_error The error message to display. 1350 * @param {string=} opt_error The error message to display.
1363 * @private 1351 * @private
1364 */ 1352 */
1365 showHotwordNoDspSection_: function(opt_error) { 1353 showHotwordNoDspSection_: function(opt_error) {
1366 this.showHotwordCheckboxAndIndicator_( 1354 this.showHotwordCheckboxAndIndicator_(
1367 'hotword-no-dsp-search', 1355 'hotword-no-dsp-search', 'hotword-no-dsp-search-setting-indicator',
1368 'hotword-no-dsp-search-setting-indicator',
1369 opt_error); 1356 opt_error);
1370 }, 1357 },
1371 1358
1372 /** 1359 /**
1373 * Controls the visibility of all the hotword sections. 1360 * Controls the visibility of all the hotword sections.
1374 * @param {boolean} visible Whether to show hotword sections. 1361 * @param {boolean} visible Whether to show hotword sections.
1375 * @private 1362 * @private
1376 */ 1363 */
1377 setAllHotwordSectionsVisible_: function(visible) { 1364 setAllHotwordSectionsVisible_: function(visible) {
1378 $('hotword-search').hidden = !visible; 1365 $('hotword-search').hidden = !visible;
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
1465 // for remote files, /home/chronos/user/Downloads or 1452 // for remote files, /home/chronos/user/Downloads or
1466 // /home/chronos/u-<hash>/Downloads with "Downloads" for local paths, 1453 // /home/chronos/u-<hash>/Downloads with "Downloads" for local paths,
1467 // and '/' with ' \u203a ' (angled quote sign) everywhere. The modified 1454 // and '/' with ' \u203a ' (angled quote sign) everywhere. The modified
1468 // path is used only for display purpose. 1455 // path is used only for display purpose.
1469 var path = $('downloadLocationPath').value; 1456 var path = $('downloadLocationPath').value;
1470 path = path.replace(/^\/special\/drive[^\/]*\/root/, 'Google Drive'); 1457 path = path.replace(/^\/special\/drive[^\/]*\/root/, 'Google Drive');
1471 path = path.replace(/^\/home\/chronos\/(user|u-[^\/]*)\//, ''); 1458 path = path.replace(/^\/home\/chronos\/(user|u-[^\/]*)\//, '');
1472 path = path.replace(/\//g, ' \u203a '); 1459 path = path.replace(/\//g, ' \u203a ');
1473 $('downloadLocationPath').value = path; 1460 $('downloadLocationPath').value = path;
1474 } 1461 }
1475 $('download-location-label').classList.toggle('disabled', 1462 $('download-location-label')
1476 event.value.disabled); 1463 .classList.toggle('disabled', event.value.disabled);
1477 $('downloadLocationChangeButton').disabled = event.value.disabled; 1464 $('downloadLocationChangeButton').disabled = event.value.disabled;
1478 }, 1465 },
1479 1466
1480 /** 1467 /**
1481 * Update the Default Browsers section based on the current state. 1468 * Update the Default Browsers section based on the current state.
1482 * @param {string} statusString Description of the current default state. 1469 * @param {string} statusString Description of the current default state.
1483 * @param {boolean} isDefault Whether or not the browser is currently 1470 * @param {boolean} isDefault Whether or not the browser is currently
1484 * default. 1471 * default.
1485 * @param {boolean} canBeDefault Whether or not the browser can be default. 1472 * @param {boolean} canBeDefault Whether or not the browser can be default.
1486 * @private 1473 * @private
1487 */ 1474 */
1488 updateDefaultBrowserState_: function(statusString, isDefault, 1475 updateDefaultBrowserState_: function(
1489 canBeDefault) { 1476 statusString, isDefault, canBeDefault) {
1490 if (!cr.isChromeOS) { 1477 if (!cr.isChromeOS) {
1491 var label = $('default-browser-state'); 1478 var label = $('default-browser-state');
1492 label.textContent = statusString; 1479 label.textContent = statusString;
1493 1480
1494 $('set-as-default-browser').hidden = !canBeDefault || isDefault; 1481 $('set-as-default-browser').hidden = !canBeDefault || isDefault;
1495 } 1482 }
1496 }, 1483 },
1497 1484
1498 /** 1485 /**
1499 * Clears the search engine popup. 1486 * Clears the search engine popup.
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1565 * Helper function to set the status of profile view buttons to disabled or 1552 * Helper function to set the status of profile view buttons to disabled or
1566 * enabled, depending on the number of profiles and selection status of the 1553 * enabled, depending on the number of profiles and selection status of the
1567 * profiles list. 1554 * profiles list.
1568 * @private 1555 * @private
1569 */ 1556 */
1570 setProfileViewButtonsStatus_: function() { 1557 setProfileViewButtonsStatus_: function() {
1571 var profilesList = $('profiles-list'); 1558 var profilesList = $('profiles-list');
1572 var selectedProfile = profilesList.selectedItem; 1559 var selectedProfile = profilesList.selectedItem;
1573 var hasSelection = selectedProfile != null; 1560 var hasSelection = selectedProfile != null;
1574 var hasSingleProfile = profilesList.dataModel.length == 1; 1561 var hasSingleProfile = profilesList.dataModel.length == 1;
1575 $('profiles-manage').disabled = !hasSelection || 1562 $('profiles-manage').disabled =
1576 !selectedProfile.isCurrentProfile; 1563 !hasSelection || !selectedProfile.isCurrentProfile;
1577 if (hasSelection && !selectedProfile.isCurrentProfile) 1564 if (hasSelection && !selectedProfile.isCurrentProfile)
1578 $('profiles-manage').title = loadTimeData.getString('currentUserOnly'); 1565 $('profiles-manage').title = loadTimeData.getString('currentUserOnly');
1579 else 1566 else
1580 $('profiles-manage').title = ''; 1567 $('profiles-manage').title = '';
1581 $('profiles-delete').disabled = !profilesList.canDeleteItems || 1568 $('profiles-delete').disabled =
1582 !hasSelection; 1569 !profilesList.canDeleteItems || !hasSelection;
1583 var importData = $('import-data'); 1570 var importData = $('import-data');
1584 if (importData) { 1571 if (importData) {
1585 importData.disabled = $('import-data').disabled = hasSelection && 1572 importData.disabled = $('import-data').disabled =
1586 !selectedProfile.isCurrentProfile; 1573 hasSelection && !selectedProfile.isCurrentProfile;
1587 } 1574 }
1588 }, 1575 },
1589 1576
1590 /** 1577 /**
1591 * Display the correct dialog layout, depending on how many profiles are 1578 * Display the correct dialog layout, depending on how many profiles are
1592 * available. 1579 * available.
1593 * @param {number} numProfiles The number of profiles to display. 1580 * @param {number} numProfiles The number of profiles to display.
1594 * @private 1581 * @private
1595 */ 1582 */
1596 setProfileViewSingle_: function(numProfiles) { 1583 setProfileViewSingle_: function(numProfiles) {
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1650 /** 1637 /**
1651 * Reports an error to the "create" overlay during profile creation. 1638 * Reports an error to the "create" overlay during profile creation.
1652 * @param {string} error The error message to display. 1639 * @param {string} error The error message to display.
1653 * @private 1640 * @private
1654 */ 1641 */
1655 showCreateProfileError_: function(error) { 1642 showCreateProfileError_: function(error) {
1656 CreateProfileOverlay.onError(error); 1643 CreateProfileOverlay.onError(error);
1657 }, 1644 },
1658 1645
1659 /** 1646 /**
1660 * Sends a warning message to the "create" overlay during profile creation. 1647 * Sends a warning message to the "create" overlay during profile creation.
1661 * @param {string} warning The warning message to display. 1648 * @param {string} warning The warning message to display.
1662 * @private 1649 * @private
1663 */ 1650 */
1664 showCreateProfileWarning_: function(warning) { 1651 showCreateProfileWarning_: function(warning) {
1665 CreateProfileOverlay.onWarning(warning); 1652 CreateProfileOverlay.onWarning(warning);
1666 }, 1653 },
1667 1654
1668 /** 1655 /**
1669 * Reports successful profile creation to the "create" overlay. 1656 * Reports successful profile creation to the "create" overlay.
1670 * @param {options.Profile} profileInfo An object of the form: 1657 * @param {options.Profile} profileInfo An object of the form:
1671 * profileInfo = { 1658 * profileInfo = {
1672 * name: "Profile Name", 1659 * name: "Profile Name",
1673 * filePath: "/path/to/profile/data/on/disk" 1660 * filePath: "/path/to/profile/data/on/disk"
1674 * isSupervised: (true|false), 1661 * isSupervised: (true|false),
1675 * }; 1662 * };
1676 * @private 1663 * @private
1677 */ 1664 */
1678 showCreateProfileSuccess_: function(profileInfo) { 1665 showCreateProfileSuccess_: function(profileInfo) {
1679 CreateProfileOverlay.onSuccess(profileInfo); 1666 CreateProfileOverlay.onSuccess(profileInfo);
1680 }, 1667 },
1681 1668
1682 /** 1669 /**
1683 * Returns the currently active profile for this browser window. 1670 * Returns the currently active profile for this browser window.
1684 * @return {options.Profile} A profile info object. 1671 * @return {options.Profile} A profile info object.
1685 * @private 1672 * @private
1686 */ 1673 */
1687 getCurrentProfile_: function() { 1674 getCurrentProfile_: function() {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1728 picture.disabled = true; 1715 picture.disabled = true;
1729 ChangePictureOptions.closeOverlay(); 1716 ChangePictureOptions.closeOverlay();
1730 } else { 1717 } else {
1731 picture.disabled = false; 1718 picture.disabled = false;
1732 } 1719 }
1733 1720
1734 // Create a synthetic pref change event decorated as 1721 // Create a synthetic pref change event decorated as
1735 // CoreOptionsHandler::CreateValueForPref() does. 1722 // CoreOptionsHandler::CreateValueForPref() does.
1736 var event = new Event('account-picture'); 1723 var event = new Event('account-picture');
1737 if (managed) 1724 if (managed)
1738 event.value = { controlledBy: 'policy' }; 1725 event.value = {controlledBy: 'policy'};
1739 else 1726 else
1740 event.value = {}; 1727 event.value = {};
1741 $('account-picture-indicator').handlePrefChange(event); 1728 $('account-picture-indicator').handlePrefChange(event);
1742 }, 1729 },
1743 1730
1744 /** 1731 /**
1745 * (Re)loads IMG element with current user account picture. 1732 * (Re)loads IMG element with current user account picture.
1746 * @private 1733 * @private
1747 */ 1734 */
1748 updateAccountPicture_: function() { 1735 updateAccountPicture_: function() {
1749 var picture = $('account-picture'); 1736 var picture = $('account-picture');
1750 if (picture) { 1737 if (picture) {
1751 picture.src = 'chrome://userimage/' + this.username_ + '?id=' + 1738 picture.src =
1752 Date.now(); 1739 'chrome://userimage/' + this.username_ + '?id=' + Date.now();
1753 } 1740 }
1754 }, 1741 },
1755 1742
1756 /** 1743 /**
1757 * @param {boolean} managed 1744 * @param {boolean} managed
1758 */ 1745 */
1759 setWallpaperManaged_: function(managed) { 1746 setWallpaperManaged_: function(managed) {
1760 if (managed) 1747 if (managed)
1761 $('set-wallpaper').disabled = true; 1748 $('set-wallpaper').disabled = true;
1762 else 1749 else
1763 this.enableElementIfPossible_(getRequiredElement('set-wallpaper')); 1750 this.enableElementIfPossible_(getRequiredElement('set-wallpaper'));
1764 1751
1765 // Create a synthetic pref change event decorated as 1752 // Create a synthetic pref change event decorated as
1766 // CoreOptionsHandler::CreateValueForPref() does. 1753 // CoreOptionsHandler::CreateValueForPref() does.
1767 var event = new Event('wallpaper'); 1754 var event = new Event('wallpaper');
1768 event.value = managed ? { controlledBy: 'policy' } : {}; 1755 event.value = managed ? {controlledBy: 'policy'} : {};
1769 $('wallpaper-indicator').handlePrefChange(event); 1756 $('wallpaper-indicator').handlePrefChange(event);
1770 }, 1757 },
1771 1758
1772 /** 1759 /**
1773 * This enables or disables dependent settings in timezone section. 1760 * This enables or disables dependent settings in timezone section.
1774 * @private 1761 * @private
1775 */ 1762 */
1776 updateTimezoneSectionState_: function() { 1763 updateTimezoneSectionState_: function() {
1777 var self = this; 1764 var self = this;
1778 $('resolve-timezone-by-geolocation') 1765 $('resolve-timezone-by-geolocation').onclick = function(event) {
1779 .onclick = function(event) {
1780 self.resolveTimezoneByGeolocation_ = event.currentTarget.checked; 1766 self.resolveTimezoneByGeolocation_ = event.currentTarget.checked;
1781 }; 1767 };
1782 if (this.systemTimezoneIsManaged_) { 1768 if (this.systemTimezoneIsManaged_) {
1783 $('resolve-timezone-by-geolocation').disabled = true; 1769 $('resolve-timezone-by-geolocation').disabled = true;
1784 $('resolve-timezone-by-geolocation').checked = false; 1770 $('resolve-timezone-by-geolocation').checked = false;
1785 } else if (this.systemTimezoneAutomaticDetectionIsManaged_) { 1771 } else if (this.systemTimezoneAutomaticDetectionIsManaged_) {
1786 if (this.systemTimezoneAutomaticDetectionValue_ == 1772 if (this.systemTimezoneAutomaticDetectionValue_ ==
1787 options.AutomaticTimezoneDetectionType.USERS_DECIDE) { 1773 options.AutomaticTimezoneDetectionType.USERS_DECIDE) {
1788 $('resolve-timezone-by-geolocation').disabled = false; 1774 $('resolve-timezone-by-geolocation').disabled = false;
1789 $('resolve-timezone-by-geolocation') 1775 $('resolve-timezone-by-geolocation').checked =
1790 .checked = this.resolveTimezoneByGeolocation_; 1776 this.resolveTimezoneByGeolocation_;
1791 $('timezone-value-select') 1777 $('timezone-value-select').disabled =
1792 .disabled = this.resolveTimezoneByGeolocation_; 1778 this.resolveTimezoneByGeolocation_;
1793 } else { 1779 } else {
1794 $('resolve-timezone-by-geolocation').disabled = true; 1780 $('resolve-timezone-by-geolocation').disabled = true;
1795 $('resolve-timezone-by-geolocation') 1781 $('resolve-timezone-by-geolocation').checked =
1796 .checked =
1797 (this.systemTimezoneAutomaticDetectionValue_ != 1782 (this.systemTimezoneAutomaticDetectionValue_ !=
1798 options.AutomaticTimezoneDetectionType.DISABLED); 1783 options.AutomaticTimezoneDetectionType.DISABLED);
1799 $('timezone-value-select').disabled = true; 1784 $('timezone-value-select').disabled = true;
1800 } 1785 }
1801 } else { 1786 } else {
1802 this.enableElementIfPossible_( 1787 this.enableElementIfPossible_(
1803 getRequiredElement('resolve-timezone-by-geolocation')); 1788 getRequiredElement('resolve-timezone-by-geolocation'));
1804 $('timezone-value-select').disabled = 1789 $('timezone-value-select').disabled =
1805 this.resolveTimezoneByGeolocation_; 1790 this.resolveTimezoneByGeolocation_;
1806 $('resolve-timezone-by-geolocation') 1791 $('resolve-timezone-by-geolocation').checked =
1807 .checked = this.resolveTimezoneByGeolocation_; 1792 this.resolveTimezoneByGeolocation_;
1808 } 1793 }
1809 }, 1794 },
1810 1795
1811 /** 1796 /**
1812 * Called when stylus hardware detection probing is complete. 1797 * Called when stylus hardware detection probing is complete.
1813 * @param {boolean} hasStylus 1798 * @param {boolean} hasStylus
1814 * @private 1799 * @private
1815 */ 1800 */
1816 setStylusInputStatus_: function(hasStylus) { 1801 setStylusInputStatus_: function(hasStylus) {
1817 if (!hasStylus) 1802 if (!hasStylus)
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1857 onResolveTimezoneByGeolocationChanged_: function(value) { 1842 onResolveTimezoneByGeolocationChanged_: function(value) {
1858 this.resolveTimezoneByGeolocation_ = value.value.value; 1843 this.resolveTimezoneByGeolocation_ = value.value.value;
1859 this.updateTimezoneSectionState_(); 1844 this.updateTimezoneSectionState_();
1860 }, 1845 },
1861 1846
1862 /** 1847 /**
1863 * Handle the 'add device' button click. 1848 * Handle the 'add device' button click.
1864 * @private 1849 * @private
1865 */ 1850 */
1866 handleAddBluetoothDevice_: function() { 1851 handleAddBluetoothDevice_: function() {
1867 chrome.send('coreOptionsUserMetricsAction', 1852 chrome.send(
1868 ['Options_BluetoothShowAddDevice']); 1853 'coreOptionsUserMetricsAction', ['Options_BluetoothShowAddDevice']);
1869 PageManager.showPageByName('bluetooth', false); 1854 PageManager.showPageByName('bluetooth', false);
1870 }, 1855 },
1871 1856
1872 /** 1857 /**
1873 * Enables or disables the Manage SSL Certificates button. 1858 * Enables or disables the Manage SSL Certificates button.
1874 * @private 1859 * @private
1875 */ 1860 */
1876 enableCertificateButton_: function(enabled) { 1861 enableCertificateButton_: function(enabled) {
1877 $('certificatesManageButton').disabled = !enabled; 1862 $('certificatesManageButton').disabled = !enabled;
1878 }, 1863 },
(...skipping 19 matching lines...) Expand all
1898 * @private 1883 * @private
1899 */ 1884 */
1900 enableFactoryResetSection_: function() { 1885 enableFactoryResetSection_: function() {
1901 $('factory-reset-section').hidden = false; 1886 $('factory-reset-section').hidden = false;
1902 }, 1887 },
1903 1888
1904 /** 1889 /**
1905 * Set the checked state of the metrics reporting checkbox. 1890 * Set the checked state of the metrics reporting checkbox.
1906 * @private 1891 * @private
1907 */ 1892 */
1908 setMetricsReportingCheckboxState_: function(checked, 1893 setMetricsReportingCheckboxState_: function(
1909 policyManaged, 1894 checked, policyManaged, ownerManaged) {
1910 ownerManaged) {
1911 $('metrics-reporting-enabled').checked = checked; 1895 $('metrics-reporting-enabled').checked = checked;
1912 $('metrics-reporting-enabled').disabled = policyManaged || ownerManaged; 1896 $('metrics-reporting-enabled').disabled = policyManaged || ownerManaged;
1913 1897
1914 // If checkbox gets disabled then add an attribute for displaying the 1898 // If checkbox gets disabled then add an attribute for displaying the
1915 // special icon. Otherwise remove the indicator attribute. 1899 // special icon. Otherwise remove the indicator attribute.
1916 if (policyManaged) { 1900 if (policyManaged) {
1917 $('metrics-reporting-disabled-icon').setAttribute('controlled-by', 1901 $('metrics-reporting-disabled-icon')
1918 'policy'); 1902 .setAttribute('controlled-by', 'policy');
1919 } else if (ownerManaged) { 1903 } else if (ownerManaged) {
1920 $('metrics-reporting-disabled-icon').setAttribute('controlled-by', 1904 $('metrics-reporting-disabled-icon')
1921 'owner'); 1905 .setAttribute('controlled-by', 'owner');
1922 } else { 1906 } else {
1923 $('metrics-reporting-disabled-icon').removeAttribute('controlled-by'); 1907 $('metrics-reporting-disabled-icon').removeAttribute('controlled-by');
1924 } 1908 }
1925 1909
1926 }, 1910 },
1927 1911
1928 /** 1912 /**
1929 * @private 1913 * @private
1930 */ 1914 */
1931 setMetricsReportingSettingVisibility_: function(visible) { 1915 setMetricsReportingSettingVisibility_: function(visible) {
1932 if (visible) 1916 if (visible)
1933 $('metrics-reporting-setting').style.display = 'block'; 1917 $('metrics-reporting-setting').style.display = 'block';
1934 else 1918 else
1935 $('metrics-reporting-setting').style.display = 'none'; 1919 $('metrics-reporting-setting').style.display = 'none';
1936 }, 1920 },
1937 1921
1938 /** 1922 /**
1939 * Set the checked state of the Safe Browsing Extended Reporting Enabled 1923 * Set the checked state of the Safe Browsing Extended Reporting Enabled
1940 * checkbox. 1924 * checkbox.
1941 * @private 1925 * @private
1942 */ 1926 */
1943 setExtendedReportingEnabledCheckboxState_: function(checked) { 1927 setExtendedReportingEnabledCheckboxState_: function(checked) {
1944 $('safeBrowsingExtendedReportingCheckbox').checked = checked; 1928 $('safeBrowsingExtendedReportingCheckbox').checked = checked;
1945 }, 1929 },
1946 1930
1947 /** 1931 /**
1948 * Set network prediction checkbox value. 1932 * Set network prediction checkbox value.
1949 * 1933 *
1950 * @param {{value: number, disabled: boolean}} pref Information about 1934 * @param {{value: number, disabled: boolean}} pref Information about
1951 * network prediction options. |pref.value| is the value of network 1935 * network prediction options. |pref.value| is the value of network
1952 * prediction options. |pref.disabled| shows if the pref is not user 1936 * prediction options. |pref.disabled| shows if the pref is not user
1953 * modifiable. 1937 * modifiable.
1954 * @private 1938 * @private
1955 */ 1939 */
1956 setNetworkPredictionValue_: function(pref) { 1940 setNetworkPredictionValue_: function(pref) {
1957 var checkbox = $('networkPredictionOptions'); 1941 var checkbox = $('networkPredictionOptions');
1958 checkbox.disabled = pref.disabled || 1942 checkbox.disabled =
1959 loadTimeData.getBoolean('profileIsGuest'); 1943 pref.disabled || loadTimeData.getBoolean('profileIsGuest');
1960 checkbox.checked = (pref.value != NetworkPredictionOptions.NEVER); 1944 checkbox.checked = (pref.value != NetworkPredictionOptions.NEVER);
1961 }, 1945 },
1962 1946
1963 /** 1947 /**
1964 * Set the font size selected item. This item actually reflects two 1948 * Set the font size selected item. This item actually reflects two
1965 * preferences: the default font size and the default fixed font size. 1949 * preferences: the default font size and the default fixed font size.
1966 * 1950 *
1967 * @param {{value: number, disabled: boolean, controlledBy: string}} pref 1951 * @param {{value: number, disabled: boolean, controlledBy: string}} pref
1968 * Information about the font size preferences. |pref.value| is the 1952 * Information about the font size preferences. |pref.value| is the
1969 * value of the default font size pref. |pref.disabled| is true if 1953 * value of the default font size pref. |pref.disabled| is true if
1970 * either pref not user modifiable. |pref.controlledBy| is the source of 1954 * either pref not user modifiable. |pref.controlledBy| is the source of
1971 * the pref value(s) if either pref is currently not controlled by the 1955 * the pref value(s) if either pref is currently not controlled by the
1972 * user. 1956 * user.
1973 * @private 1957 * @private
1974 */ 1958 */
1975 setFontSize_: function(pref) { 1959 setFontSize_: function(pref) {
1976 var selectCtl = /** @type {HTMLSelectElement} */($('defaultFontSize')); 1960 var selectCtl = /** @type {HTMLSelectElement} */ ($('defaultFontSize'));
1977 selectCtl.disabled = pref.disabled; 1961 selectCtl.disabled = pref.disabled;
1978 // Create a synthetic pref change event decorated as 1962 // Create a synthetic pref change event decorated as
1979 // CoreOptionsHandler::CreateValueForPref() does. 1963 // CoreOptionsHandler::CreateValueForPref() does.
1980 var event = new Event('synthetic-font-size'); 1964 var event = new Event('synthetic-font-size');
1981 event.value = { 1965 event.value = {
1982 value: pref.value, 1966 value: pref.value,
1983 controlledBy: pref.controlledBy, 1967 controlledBy: pref.controlledBy,
1984 disabled: pref.disabled 1968 disabled: pref.disabled
1985 }; 1969 };
1986 $('font-size-indicator').handlePrefChange(event); 1970 $('font-size-indicator').handlePrefChange(event);
1987 1971
1988 for (var i = 0; i < selectCtl.options.length; i++) { 1972 for (var i = 0; i < selectCtl.options.length; i++) {
1989 if (selectCtl.options[i].value == pref.value) { 1973 if (selectCtl.options[i].value == pref.value) {
1990 selectCtl.selectedIndex = i; 1974 selectCtl.selectedIndex = i;
1991 if ($('Custom')) 1975 if ($('Custom'))
1992 selectCtl.remove($('Custom').index); 1976 selectCtl.remove($('Custom').index);
1993 return; 1977 return;
1994 } 1978 }
1995 } 1979 }
1996 1980
1997 // Add/Select Custom Option in the font size label list. 1981 // Add/Select Custom Option in the font size label list.
1998 if (!$('Custom')) { 1982 if (!$('Custom')) {
1999 var option = new Option(loadTimeData.getString('fontSizeLabelCustom'), 1983 var option = new Option(
2000 -1, false, true); 1984 loadTimeData.getString('fontSizeLabelCustom'), -1, false, true);
2001 option.setAttribute('id', 'Custom'); 1985 option.setAttribute('id', 'Custom');
2002 selectCtl.add(option); 1986 selectCtl.add(option);
2003 } 1987 }
2004 $('Custom').selected = true; 1988 $('Custom').selected = true;
2005 }, 1989 },
2006 1990
2007 /** 1991 /**
2008 * Populate the page zoom selector with values received from the caller. 1992 * Populate the page zoom selector with values received from the caller.
2009 * @param {Array} items An array of items to populate the selector. 1993 * @param {Array} items An array of items to populate the selector.
2010 * each object is an array with three elements as follows: 1994 * each object is an array with three elements as follows:
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
2056 * Set the enabled state for the proxy settings button and its associated 2040 * Set the enabled state for the proxy settings button and its associated
2057 * message when extension controlled. 2041 * message when extension controlled.
2058 * @param {boolean} disabled Whether the button should be disabled. 2042 * @param {boolean} disabled Whether the button should be disabled.
2059 * @param {boolean} extensionControlled Whether the proxy is extension 2043 * @param {boolean} extensionControlled Whether the proxy is extension
2060 * controlled. 2044 * controlled.
2061 * @private 2045 * @private
2062 */ 2046 */
2063 setupProxySettingsButton_: function(disabled, extensionControlled) { 2047 setupProxySettingsButton_: function(disabled, extensionControlled) {
2064 if (!cr.isChromeOS) { 2048 if (!cr.isChromeOS) {
2065 $('proxiesConfigureButton').disabled = disabled; 2049 $('proxiesConfigureButton').disabled = disabled;
2066 $('proxiesLabel').textContent = 2050 $('proxiesLabel').textContent = loadTimeData.getString(
2067 loadTimeData.getString(extensionControlled ? 2051 extensionControlled ? 'proxiesLabelExtension' :
2068 'proxiesLabelExtension' : 'proxiesLabelSystem'); 2052 'proxiesLabelSystem');
2069 } 2053 }
2070 }, 2054 },
2071 2055
2072 /** 2056 /**
2073 * Set the initial state of the spoken feedback checkbox. 2057 * Set the initial state of the spoken feedback checkbox.
2074 * @private 2058 * @private
2075 */ 2059 */
2076 setSpokenFeedbackCheckboxState_: function(checked) { 2060 setSpokenFeedbackCheckboxState_: function(checked) {
2077 $('accessibility-spoken-feedback-check').checked = checked; 2061 $('accessibility-spoken-feedback-check').checked = checked;
2078 }, 2062 },
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
2156 * various settings of Chrome. 2140 * various settings of Chrome.
2157 * @param {{searchEngine: options.ExtensionData, 2141 * @param {{searchEngine: options.ExtensionData,
2158 * homePage: options.ExtensionData, 2142 * homePage: options.ExtensionData,
2159 * startUpPage: options.ExtensionData, 2143 * startUpPage: options.ExtensionData,
2160 * newTabPage: options.ExtensionData, 2144 * newTabPage: options.ExtensionData,
2161 * proxy: options.ExtensionData}} details A dictionary of ID+name 2145 * proxy: options.ExtensionData}} details A dictionary of ID+name
2162 * pairs for each of the settings controlled by an extension. 2146 * pairs for each of the settings controlled by an extension.
2163 * @private 2147 * @private
2164 */ 2148 */
2165 toggleExtensionIndicators_: function(details) { 2149 toggleExtensionIndicators_: function(details) {
2166 this.toggleExtensionControlledBox_('search-section-content', 2150 this.toggleExtensionControlledBox_(
2167 'search-engine-controlled', 2151 'search-section-content', 'search-engine-controlled',
2168 details.searchEngine.id, 2152 details.searchEngine.id, details.searchEngine.name);
2169 details.searchEngine.name); 2153 this.toggleExtensionControlledBox_(
2170 this.toggleExtensionControlledBox_('extension-controlled-container', 2154 'extension-controlled-container', 'homepage-controlled',
2171 'homepage-controlled', 2155 details.homePage.id, details.homePage.name);
2172 details.homePage.id, 2156 this.toggleExtensionControlledBox_(
2173 details.homePage.name); 2157 'startup-section-content', 'startpage-controlled',
2174 this.toggleExtensionControlledBox_('startup-section-content', 2158 details.startUpPage.id, details.startUpPage.name);
2175 'startpage-controlled', 2159 this.toggleExtensionControlledBox_(
2176 details.startUpPage.id, 2160 'newtab-section-content', 'newtab-controlled', details.newTabPage.id,
2177 details.startUpPage.name); 2161 details.newTabPage.name);
2178 this.toggleExtensionControlledBox_('newtab-section-content', 2162 this.toggleExtensionControlledBox_(
2179 'newtab-controlled', 2163 'proxy-section-content', 'proxy-controlled', details.proxy.id,
2180 details.newTabPage.id, 2164 details.proxy.name);
2181 details.newTabPage.name);
2182 this.toggleExtensionControlledBox_('proxy-section-content',
2183 'proxy-controlled',
2184 details.proxy.id,
2185 details.proxy.name);
2186 2165
2187 // The proxy section contains just the warning box and nothing else, so 2166 // The proxy section contains just the warning box and nothing else, so
2188 // if we're hiding the proxy warning box, we should also hide its header 2167 // if we're hiding the proxy warning box, we should also hide its header
2189 // section. 2168 // section.
2190 $('proxy-section').hidden = details.proxy.id.length == 0; 2169 $('proxy-section').hidden = details.proxy.id.length == 0;
2191 }, 2170 },
2192 2171
2193 2172
2194 /** 2173 /**
2195 * Show/hide touchpad-related settings. 2174 * Show/hide touchpad-related settings.
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
2351 showImagerPickerOverlay_: function() { 2330 showImagerPickerOverlay_: function() {
2352 PageManager.showPageByName('changePicture'); 2331 PageManager.showPageByName('changePicture');
2353 }, 2332 },
2354 2333
2355 /** 2334 /**
2356 * Shows (or not) the "User" section of the settings page based on whether 2335 * Shows (or not) the "User" section of the settings page based on whether
2357 * any of the sub-sections are present (or not). 2336 * any of the sub-sections are present (or not).
2358 * @private 2337 * @private
2359 */ 2338 */
2360 maybeShowUserSection_: function() { 2339 maybeShowUserSection_: function() {
2361 $('sync-users-section').hidden = 2340 $('sync-users-section').hidden = $('profiles-section').hidden &&
2362 $('profiles-section').hidden &&
2363 $('sync-section').hidden && 2341 $('sync-section').hidden &&
2364 $('profiles-supervised-dashboard-tip').hidden; 2342 $('profiles-supervised-dashboard-tip').hidden;
2365 }, 2343 },
2366 2344
2367 /** 2345 /**
2368 * Updates the date and time section with time sync information. 2346 * Updates the date and time section with time sync information.
2369 * @param {boolean} canSetTime Whether the system time can be set. 2347 * @param {boolean} canSetTime Whether the system time can be set.
2370 * @private 2348 * @private
2371 */ 2349 */
2372 setCanSetTime_: function(canSetTime) { 2350 setCanSetTime_: function(canSetTime) {
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
2478 BrowserOptions.setAndroidAppsSettingsVisibility = function(isVisible) { 2456 BrowserOptions.setAndroidAppsSettingsVisibility = function(isVisible) {
2479 var settings = $('android-apps-settings'); 2457 var settings = $('android-apps-settings');
2480 if (!settings) 2458 if (!settings)
2481 return; 2459 return;
2482 2460
2483 settings.hidden = !isVisible; 2461 settings.hidden = !isVisible;
2484 }; 2462 };
2485 } 2463 }
2486 2464
2487 // Export 2465 // Export
2488 return { 2466 return {BrowserOptions: BrowserOptions};
2489 BrowserOptions: BrowserOptions
2490 };
2491 }); 2467 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698