| Index: chrome/browser/resources/options2/browser_options.js
|
| diff --git a/chrome/browser/resources/options2/browser_options.js b/chrome/browser/resources/options2/browser_options.js
|
| deleted file mode 100644
|
| index e0acdb745c6da8bcccdded3af1c293138a8b7fa6..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/resources/options2/browser_options.js
|
| +++ /dev/null
|
| @@ -1,1350 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -cr.define('options', function() {
|
| - var OptionsPage = options.OptionsPage;
|
| - var ArrayDataModel = cr.ui.ArrayDataModel;
|
| - var RepeatingButton = cr.ui.RepeatingButton;
|
| -
|
| - //
|
| - // BrowserOptions class
|
| - // Encapsulated handling of browser options page.
|
| - //
|
| - function BrowserOptions() {
|
| - OptionsPage.call(this, 'settings', loadTimeData.getString('settingsTitle'),
|
| - 'settings');
|
| - }
|
| -
|
| - cr.addSingletonGetter(BrowserOptions);
|
| -
|
| - BrowserOptions.prototype = {
|
| - __proto__: options.OptionsPage.prototype,
|
| -
|
| - // State variables.
|
| - syncSetupCompleted: false,
|
| -
|
| - /**
|
| - * The cached value of the instant.confirm_dialog_shown preference.
|
| - * @type {bool}
|
| - * @private
|
| - */
|
| - instantConfirmDialogShown_: false,
|
| -
|
| - /**
|
| - * The cached value of the spellcheck.confirm_dialog_shown preference.
|
| - * @type {bool}
|
| - * @private
|
| - */
|
| - spellcheckConfirmDialogShown_: false,
|
| -
|
| - /**
|
| - * Keeps track of whether |onShowHomeButtonChanged_| has been called. See
|
| - * |onShowHomeButtonChanged_|.
|
| - * @type {bool}
|
| - * @private
|
| - */
|
| - onShowHomeButtonChangedCalled_: false,
|
| -
|
| - /**
|
| - * @inheritDoc
|
| - */
|
| - initializePage: function() {
|
| - OptionsPage.prototype.initializePage.call(this);
|
| - var self = this;
|
| -
|
| - // Ensure that navigation events are unblocked on uber page. A reload of
|
| - // the settings page while an overlay is open would otherwise leave uber
|
| - // page in a blocked state, where tab switching is not possible.
|
| - uber.invokeMethodOnParent('stopInterceptingEvents');
|
| -
|
| - window.addEventListener('message', this.handleWindowMessage_.bind(this));
|
| -
|
| - $('advanced-settings-expander').onclick = function() {
|
| - self.toggleSectionWithAnimation_(
|
| - $('advanced-settings'),
|
| - $('advanced-settings-container'));
|
| -
|
| - // If the link was focused (i.e., it was activated using the keyboard)
|
| - // and it was used to show the section (rather than hiding it), focus
|
| - // the first element in the container.
|
| - if (document.activeElement === $('advanced-settings-expander') &&
|
| - $('advanced-settings').style.height === '') {
|
| - var focusElement = $('advanced-settings-container').querySelector(
|
| - 'button, input, list, select, a[href]');
|
| - if (focusElement)
|
| - focusElement.focus();
|
| - }
|
| - }
|
| -
|
| - $('advanced-settings').addEventListener('webkitTransitionEnd',
|
| - this.updateAdvancedSettingsExpander_.bind(this));
|
| -
|
| - if (cr.isChromeOS)
|
| - UIAccountTweaks.applyGuestModeVisibility(document);
|
| -
|
| - // Sync (Sign in) section.
|
| - this.updateSyncState_(loadTimeData.getValue('syncData'));
|
| -
|
| - $('sync-action-link').onclick = function(event) {
|
| - if (cr.isChromeOS) {
|
| - // On Chrome OS, sign out the user and sign in again to get fresh
|
| - // credentials on auth errors.
|
| - SyncSetupOverlay.doSignOutOnAuthError();
|
| - } else {
|
| - SyncSetupOverlay.showErrorUI();
|
| - }
|
| - };
|
| - $('start-stop-sync').onclick = function(event) {
|
| - if (self.syncSetupCompleted)
|
| - SyncSetupOverlay.showStopSyncingUI();
|
| - else if (cr.isChromeOS)
|
| - SyncSetupOverlay.showSetupUIWithoutLogin();
|
| - else
|
| - SyncSetupOverlay.showSetupUI();
|
| - };
|
| - $('customize-sync').onclick = function(event) {
|
| - if (cr.isChromeOS)
|
| - SyncSetupOverlay.showSetupUIWithoutLogin();
|
| - else
|
| - SyncSetupOverlay.showSetupUI();
|
| - };
|
| -
|
| - // Internet connection section (ChromeOS only).
|
| - if (cr.isChromeOS) {
|
| - options.network.NetworkList.decorate($('network-list'));
|
| - options.network.NetworkList.refreshNetworkData(
|
| - loadTimeData.getValue('networkData'));
|
| - }
|
| -
|
| - // On Startup section.
|
| - Preferences.getInstance().addEventListener('session.restore_on_startup',
|
| - this.onRestoreOnStartupChanged_.bind(this));
|
| -
|
| - $('startup-set-pages').onclick = function() {
|
| - OptionsPage.navigateToPage('startup');
|
| - };
|
| -
|
| - // Appearance section.
|
| - Preferences.getInstance().addEventListener('browser.show_home_button',
|
| - this.onShowHomeButtonChanged_.bind(this));
|
| -
|
| - Preferences.getInstance().addEventListener('homepage',
|
| - this.onHomePageChanged_.bind(this));
|
| - Preferences.getInstance().addEventListener('homepage_is_newtabpage',
|
| - this.onHomePageIsNtpChanged_.bind(this));
|
| -
|
| - $('change-home-page').onclick = function(event) {
|
| - OptionsPage.navigateToPage('homePageOverlay');
|
| - };
|
| -
|
| - if ($('set-wallpaper')) {
|
| - $('set-wallpaper').onclick = function(event) {
|
| - chrome.send('openWallpaperManager');
|
| - };
|
| - }
|
| -
|
| - $('themes-gallery').onclick = function(event) {
|
| - window.open(loadTimeData.getString('themesGalleryURL'));
|
| - };
|
| - $('themes-reset').onclick = function(event) {
|
| - chrome.send('themesReset');
|
| - };
|
| -
|
| - // Device section (ChromeOS only).
|
| - if (cr.isChromeOS) {
|
| - $('keyboard-settings-button').onclick = function(evt) {
|
| - OptionsPage.navigateToPage('keyboard-overlay');
|
| - };
|
| - $('pointer-settings-button').onclick = function(evt) {
|
| - OptionsPage.navigateToPage('pointer-overlay');
|
| - };
|
| - }
|
| -
|
| - // Search section.
|
| - $('manage-default-search-engines').onclick = function(event) {
|
| - OptionsPage.navigateToPage('searchEngines');
|
| - chrome.send('coreOptionsUserMetricsAction',
|
| - ['Options_ManageSearchEngines']);
|
| - };
|
| - $('default-search-engine').addEventListener('change',
|
| - this.setDefaultSearchEngine_);
|
| - $('instant-enabled-control').customChangeHandler = function(event) {
|
| - if (this.checked && !self.instantConfirmDialogShown_) {
|
| - OptionsPage.showPageByName('instantConfirm', false);
|
| - return true; // Stop default preference processing.
|
| - }
|
| - return false; // Allow default preference processing.
|
| - };
|
| - Preferences.getInstance().addEventListener('instant.confirm_dialog_shown',
|
| - this.onInstantConfirmDialogShownChanged_.bind(this));
|
| -
|
| - // Users section.
|
| - if (loadTimeData.valueExists('profilesInfo')) {
|
| - $('profiles-section').hidden = false;
|
| -
|
| - var profilesList = $('profiles-list');
|
| - options.browser_options.ProfileList.decorate(profilesList);
|
| - profilesList.autoExpands = true;
|
| -
|
| - this.setProfilesInfo_(loadTimeData.getValue('profilesInfo'));
|
| -
|
| - profilesList.addEventListener('change',
|
| - this.setProfileViewButtonsStatus_);
|
| - $('profiles-create').onclick = function(event) {
|
| - chrome.send('createProfileInfo');
|
| - };
|
| - $('profiles-manage').onclick = function(event) {
|
| - ManageProfileOverlay.showManageDialog();
|
| - };
|
| - $('profiles-delete').onclick = function(event) {
|
| - var selectedProfile = self.getSelectedProfileItem_();
|
| - if (selectedProfile)
|
| - ManageProfileOverlay.showDeleteDialog(selectedProfile);
|
| - };
|
| - }
|
| -
|
| - if (cr.isChromeOS) {
|
| - if (!UIAccountTweaks.loggedInAsGuest()) {
|
| - $('account-picture-wrapper').onclick = function(event) {
|
| - OptionsPage.navigateToPage('changePicture');
|
| - };
|
| - }
|
| -
|
| - // Username (canonical email) of the currently logged in user or
|
| - // |kGuestUser| if a guest session is active.
|
| - this.username_ = loadTimeData.getString('username');
|
| -
|
| - this.updateAccountPicture_();
|
| -
|
| - $('manage-accounts-button').onclick = function(event) {
|
| - OptionsPage.navigateToPage('accounts');
|
| - chrome.send('coreOptionsUserMetricsAction',
|
| - ['Options_ManageAccounts']);
|
| - };
|
| - } else {
|
| - $('import-data').onclick = function(event) {
|
| - ImportDataOverlay.show();
|
| - chrome.send('coreOptionsUserMetricsAction', ['Import_ShowDlg']);
|
| - };
|
| -
|
| - if ($('themes-GTK-button')) {
|
| - $('themes-GTK-button').onclick = function(event) {
|
| - chrome.send('themesSetGTK');
|
| - };
|
| - }
|
| - }
|
| -
|
| - // Default browser section.
|
| - if (!cr.isChromeOS) {
|
| - $('set-as-default-browser').onclick = function(event) {
|
| - chrome.send('becomeDefaultBrowser');
|
| - };
|
| -
|
| - $('auto-launch').onclick = this.handleAutoLaunchChanged_;
|
| - }
|
| -
|
| - // Privacy section.
|
| - $('privacyContentSettingsButton').onclick = function(event) {
|
| - OptionsPage.navigateToPage('content');
|
| - OptionsPage.showTab($('cookies-nav-tab'));
|
| - chrome.send('coreOptionsUserMetricsAction',
|
| - ['Options_ContentSettings']);
|
| - };
|
| - $('privacyClearDataButton').onclick = function(event) {
|
| - OptionsPage.navigateToPage('clearBrowserData');
|
| - chrome.send('coreOptionsUserMetricsAction', ['Options_ClearData']);
|
| - };
|
| - // 'spelling-enabled-control' element is only present on Chrome branded
|
| - // builds.
|
| - if ($('spelling-enabled-control')) {
|
| - $('spelling-enabled-control').customChangeHandler = function(event) {
|
| - if (this.checked && !self.spellcheckConfirmDialogShown_) {
|
| - OptionsPage.showPageByName('spellingConfirm', false);
|
| - return true;
|
| - }
|
| - return false;
|
| - };
|
| - Preferences.getInstance().addEventListener(
|
| - 'spellcheck.confirm_dialog_shown',
|
| - this.onSpellcheckConfirmDialogShownChanged_.bind(this));
|
| - }
|
| - // 'metricsReportingEnabled' element is only present on Chrome branded
|
| - // builds.
|
| - if ($('metricsReportingEnabled')) {
|
| - $('metricsReportingEnabled').onclick = function(event) {
|
| - chrome.send('metricsReportingCheckboxAction',
|
| - [String(event.target.checked)]);
|
| - };
|
| - }
|
| -
|
| - // Bluetooth (CrOS only).
|
| - if (cr.isChromeOS) {
|
| - options.system.bluetooth.BluetoothDeviceList.decorate(
|
| - $('bluetooth-paired-devices-list'));
|
| -
|
| - $('bluetooth-add-device').onclick =
|
| - this.handleAddBluetoothDevice_.bind(this);
|
| -
|
| - $('enable-bluetooth').onchange = function(event) {
|
| - var state = $('enable-bluetooth').checked;
|
| - chrome.send('bluetoothEnableChange', [Boolean(state)]);
|
| - };
|
| -
|
| - $('bluetooth-reconnect-device').onclick = function(event) {
|
| - var device = $('bluetooth-paired-devices-list').selectedItem;
|
| - var address = device.address;
|
| - chrome.send('updateBluetoothDevice', [address, 'connect']);
|
| - OptionsPage.closeOverlay();
|
| - };
|
| -
|
| - $('bluetooth-reconnect-device').onmousedown = function(event) {
|
| - // Prevent 'blur' event, which would reset the list selection,
|
| - // thereby disabling the apply button.
|
| - event.preventDefault();
|
| - };
|
| -
|
| - $('bluetooth-paired-devices-list').addEventListener('change',
|
| - function() {
|
| - var item = $('bluetooth-paired-devices-list').selectedItem;
|
| - var disabled = !item || item.connected;
|
| - $('bluetooth-reconnect-device').disabled = disabled;
|
| - });
|
| - }
|
| -
|
| - // Passwords and Forms section.
|
| - $('autofill-settings').onclick = function(event) {
|
| - OptionsPage.navigateToPage('autofill');
|
| - chrome.send('coreOptionsUserMetricsAction',
|
| - ['Options_ShowAutofillSettings']);
|
| - };
|
| - $('manage-passwords').onclick = function(event) {
|
| - OptionsPage.navigateToPage('passwords');
|
| - OptionsPage.showTab($('passwords-nav-tab'));
|
| - chrome.send('coreOptionsUserMetricsAction',
|
| - ['Options_ShowPasswordManager']);
|
| - };
|
| - if (cr.isChromeOS && UIAccountTweaks.loggedInAsGuest()) {
|
| - // Disable and turn off Autofill in guest mode.
|
| - var autofillEnabled = $('autofill-enabled');
|
| - autofillEnabled.disabled = true;
|
| - autofillEnabled.checked = false;
|
| - cr.dispatchSimpleEvent(autofillEnabled, 'change');
|
| - $('autofill-settings').disabled = true;
|
| -
|
| - // Disable and turn off Password Manager in guest mode.
|
| - var passwordManagerEnabled = $('password-manager-enabled');
|
| - passwordManagerEnabled.disabled = true;
|
| - passwordManagerEnabled.checked = false;
|
| - cr.dispatchSimpleEvent(passwordManagerEnabled, 'change');
|
| - $('manage-passwords').disabled = true;
|
| - }
|
| -
|
| - if (cr.isMac) {
|
| - $('mac-passwords-warning').hidden =
|
| - !loadTimeData.getBoolean('multiple_profiles');
|
| - }
|
| -
|
| - // Network section.
|
| - if (!cr.isChromeOS) {
|
| - $('proxiesConfigureButton').onclick = function(event) {
|
| - chrome.send('showNetworkProxySettings');
|
| - };
|
| - }
|
| -
|
| - // Web Content section.
|
| - $('fontSettingsCustomizeFontsButton').onclick = function(event) {
|
| - OptionsPage.navigateToPage('fonts');
|
| - chrome.send('coreOptionsUserMetricsAction', ['Options_FontSettings']);
|
| - };
|
| - $('defaultFontSize').onchange = function(event) {
|
| - var value = event.target.options[event.target.selectedIndex].value;
|
| - Preferences.setIntegerPref(
|
| - 'webkit.webprefs.default_fixed_font_size',
|
| - value - OptionsPage.SIZE_DIFFERENCE_FIXED_STANDARD, '');
|
| - chrome.send('defaultFontSizeAction', [String(value)]);
|
| - };
|
| - $('defaultZoomFactor').onchange = function(event) {
|
| - chrome.send('defaultZoomFactorAction',
|
| - [String(event.target.options[event.target.selectedIndex].value)]);
|
| - };
|
| -
|
| - // Languages section.
|
| - $('language-button').onclick = function(event) {
|
| - OptionsPage.navigateToPage('languages');
|
| - chrome.send('coreOptionsUserMetricsAction',
|
| - ['Options_LanuageAndSpellCheckSettings']);
|
| - };
|
| -
|
| - // Downloads section.
|
| - Preferences.getInstance().addEventListener('download.default_directory',
|
| - this.onDefaultDownloadDirectoryChanged_.bind(this));
|
| - $('downloadLocationChangeButton').onclick = function(event) {
|
| - chrome.send('selectDownloadLocation');
|
| - };
|
| - if (!cr.isChromeOS) {
|
| - $('autoOpenFileTypesResetToDefault').onclick = function(event) {
|
| - chrome.send('autoOpenFileTypesAction');
|
| - };
|
| - }
|
| -
|
| - // HTTPS/SSL section.
|
| - if (cr.isWindows || cr.isMac) {
|
| - $('certificatesManageButton').onclick = function(event) {
|
| - chrome.send('showManageSSLCertificates');
|
| - };
|
| - } else {
|
| - $('certificatesManageButton').onclick = function(event) {
|
| - OptionsPage.navigateToPage('certificates');
|
| - chrome.send('coreOptionsUserMetricsAction',
|
| - ['Options_ManageSSLCertificates']);
|
| - };
|
| - }
|
| - $('sslCheckRevocation').onclick = function(event) {
|
| - chrome.send('checkRevocationCheckboxAction',
|
| - [String($('sslCheckRevocation').checked)]);
|
| - };
|
| -
|
| - // Cloud Print section.
|
| - // 'cloudPrintProxyEnabled' is true for Chrome branded builds on
|
| - // certain platforms, or could be enabled by a lab.
|
| - if (!cr.isChromeOS) {
|
| - $('cloudPrintConnectorSetupButton').onclick = function(event) {
|
| - if ($('cloudPrintManageButton').style.display == 'none') {
|
| - // Disable the button, set its text to the intermediate state.
|
| - $('cloudPrintConnectorSetupButton').textContent =
|
| - loadTimeData.getString('cloudPrintConnectorEnablingButton');
|
| - $('cloudPrintConnectorSetupButton').disabled = true;
|
| - chrome.send('showCloudPrintSetupDialog');
|
| - } else {
|
| - chrome.send('disableCloudPrintConnector');
|
| - }
|
| - };
|
| - }
|
| - $('cloudPrintManageButton').onclick = function(event) {
|
| - chrome.send('showCloudPrintManagePage');
|
| - };
|
| -
|
| - // Accessibility section (CrOS only).
|
| - if (cr.isChromeOS) {
|
| - $('accessibility-spoken-feedback-check').onchange = function(event) {
|
| - chrome.send('spokenFeedbackChange',
|
| - [$('accessibility-spoken-feedback-check').checked]);
|
| - };
|
| -
|
| - $('accessibility-high-contrast-check').onchange = function(event) {
|
| - chrome.send('highContrastChange',
|
| - [$('accessibility-high-contrast-check').checked]);
|
| - };
|
| -
|
| - $('accessibility-screen-magnifier-check').onchange = function(event) {
|
| - chrome.send('screenMagnifierChange',
|
| - [$('accessibility-screen-magnifier-check').checked]);
|
| - };
|
| - }
|
| -
|
| - // Display management section (CrOS only).
|
| - if (cr.isChromeOS) {
|
| - $('display-options-button').onclick = function(event) {
|
| - OptionsPage.navigateToPage('display');
|
| - chrome.send('coreOptionsUserMetricsAction',
|
| - ['Options_Display']);
|
| - }
|
| - }
|
| -
|
| - // Background mode section.
|
| - if ($('backgroundModeCheckbox')) {
|
| - cr.defineProperty($('backgroundModeCheckbox'),
|
| - 'controlledBy',
|
| - cr.PropertyKind.ATTR);
|
| - $('backgroundModeCheckbox').onclick = function(event) {
|
| - chrome.send('backgroundModeAction',
|
| - [String($('backgroundModeCheckbox').checked)]);
|
| - };
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @inheritDoc
|
| - */
|
| - didShowPage: function() {
|
| - $('search-field').focus();
|
| - },
|
| -
|
| - /**
|
| - * Event listener for the 'session.restore_on_startup' pref.
|
| - * @param {Event} event The preference change event.
|
| - * @private
|
| - */
|
| - onRestoreOnStartupChanged_: function(event) {
|
| - /** @const */ var showPagesValue = Number($('startup-show-pages').value);
|
| - /** @const */ var showHomePageValue = 0;
|
| -
|
| - $('startup-set-pages').disabled = event.value.disabled &&
|
| - event.value.value != showPagesValue;
|
| -
|
| - if (event.value.value == showHomePageValue) {
|
| - // If the user previously selected "Show the homepage", the
|
| - // preference will already be migrated to "Open a specific page". So
|
| - // the only way to reach this code is if the 'restore on startup'
|
| - // preference is managed.
|
| - assert(event.value.controlledBy);
|
| -
|
| - // Select "open the following pages" and lock down the list of URLs
|
| - // to reflect the intention of the policy.
|
| - $('startup-show-pages').checked = true;
|
| - StartupOverlay.getInstance().setControlsDisabled(true);
|
| - } else {
|
| - // Re-enable the controls in the startup overlay if necessary.
|
| - StartupOverlay.getInstance().updateControlStates();
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Handler for messages sent from the main uber page.
|
| - * @param {Event} e The 'message' event from the uber page.
|
| - * @private
|
| - */
|
| - handleWindowMessage_: function(e) {
|
| - if (e.data.method == 'frameSelected')
|
| - $('search-field').focus();
|
| - },
|
| -
|
| - /**
|
| - * Shows the given section, with animation.
|
| - * @param {HTMLElement} section The section to be shown.
|
| - * @param {HTMLElement} container The container for the section. Must be
|
| - * inside of |section|.
|
| - * @private
|
| - */
|
| - showSectionWithAnimation_: function(section, container) {
|
| - this.addTransitionEndListener_(section);
|
| -
|
| - // Unhide
|
| - section.hidden = false;
|
| -
|
| - // Delay starting the transition so that hidden change will be
|
| - // processed.
|
| - setTimeout(function() {
|
| - // Reveal the section using a WebKit transition.
|
| - section.classList.add('sliding');
|
| - section.style.height =
|
| - container.offsetHeight + 'px';
|
| - }, 0);
|
| - },
|
| -
|
| - /**
|
| - * See showSectionWithAnimation_.
|
| - */
|
| - hideSectionWithAnimation_: function(section, container) {
|
| - this.addTransitionEndListener_(section);
|
| -
|
| - // Before we start hiding the section, we need to set
|
| - // the height to a pixel value.
|
| - section.style.height = container.offsetHeight + 'px';
|
| -
|
| - // Delay starting the transition so that the height change will be
|
| - // processed.
|
| - setTimeout(function() {
|
| - // Hide the section using a WebKit transition.
|
| - section.classList.add('sliding');
|
| - section.style.height = '';
|
| - }, 0);
|
| - },
|
| -
|
| - /**
|
| - * See showSectionWithAnimation_.
|
| - */
|
| - toggleSectionWithAnimation_: function(section, container) {
|
| - if (section.style.height == '')
|
| - this.showSectionWithAnimation_(section, container);
|
| - else
|
| - this.hideSectionWithAnimation_(section, container);
|
| - },
|
| -
|
| - /**
|
| - * Adds a |webkitTransitionEnd| listener to the given section so that
|
| - * it can be animated. The listener will only be added to a given section
|
| - * once, so this can be called as multiple times.
|
| - * @param {HTMLElement} section The section to be animated.
|
| - * @private
|
| - */
|
| - addTransitionEndListener_: function(section) {
|
| - if (section.hasTransitionEndListener_)
|
| - return;
|
| -
|
| - section.addEventListener('webkitTransitionEnd',
|
| - this.onTransitionEnd_.bind(this));
|
| - section.hasTransitionEndListener_ = true;
|
| - },
|
| -
|
| - /**
|
| - * Called after an animation transition has ended.
|
| - * @private
|
| - */
|
| - onTransitionEnd_: function(event) {
|
| - if (event.propertyName != 'height')
|
| - return;
|
| -
|
| - var section = event.target;
|
| -
|
| - // Disable WebKit transitions.
|
| - section.classList.remove('sliding');
|
| -
|
| - if (section.style.height == '') {
|
| - // Hide the content so it can't get tab focus.
|
| - section.hidden = true;
|
| - } else {
|
| - // Set the section height to 'auto' to allow for size changes
|
| - // (due to font change or dynamic content).
|
| - section.style.height = 'auto';
|
| - }
|
| - },
|
| -
|
| - updateAdvancedSettingsExpander_: function() {
|
| - var expander = $('advanced-settings-expander');
|
| - if ($('advanced-settings').style.height == '')
|
| - expander.textContent = loadTimeData.getString('showAdvancedSettings');
|
| - else
|
| - expander.textContent = loadTimeData.getString('hideAdvancedSettings');
|
| - },
|
| -
|
| - /**
|
| - * Updates the sync section with the given state.
|
| - * @param {Object} syncData A bunch of data records that describe the status
|
| - * of the sync system.
|
| - * @private
|
| - */
|
| - updateSyncState_: function(syncData) {
|
| - if (!syncData.syncSystemEnabled) {
|
| - $('sync-section').hidden = true;
|
| - return;
|
| - }
|
| -
|
| - $('sync-section').hidden = false;
|
| - this.syncSetupCompleted = syncData.setupCompleted;
|
| - $('customize-sync').hidden = !syncData.setupCompleted;
|
| -
|
| - var startStopButton = $('start-stop-sync');
|
| - startStopButton.disabled = syncData.managed ||
|
| - syncData.setupInProgress;
|
| - startStopButton.hidden =
|
| - syncData.setupCompleted && cr.isChromeOS;
|
| - startStopButton.textContent =
|
| - syncData.setupCompleted ?
|
| - loadTimeData.getString('syncButtonTextStop') :
|
| - syncData.setupInProgress ?
|
| - loadTimeData.getString('syncButtonTextInProgress') :
|
| - loadTimeData.getString('syncButtonTextStart');
|
| -
|
| -
|
| - // TODO(estade): can this just be textContent?
|
| - $('sync-status-text').innerHTML = syncData.statusText;
|
| - var statusSet = syncData.statusText.length != 0;
|
| - $('sync-overview').hidden = statusSet;
|
| - $('sync-status').hidden = !statusSet;
|
| -
|
| - $('sync-action-link').textContent = syncData.actionLinkText;
|
| - $('sync-action-link').hidden = syncData.actionLinkText.length == 0;
|
| - $('sync-action-link').disabled = syncData.managed;
|
| -
|
| - if (syncData.hasError)
|
| - $('sync-status').classList.add('sync-error');
|
| - else
|
| - $('sync-status').classList.remove('sync-error');
|
| -
|
| - $('customize-sync').disabled = syncData.hasUnrecoverableError;
|
| - // Move #enable-auto-login-checkbox to a different location on CrOS.
|
| - if (cr.isChromeOs) {
|
| - $('sync-general').insertBefore($('sync-status').nextSibling,
|
| - $('enable-auto-login-checkbox'));
|
| - }
|
| - $('enable-auto-login-checkbox').hidden = !syncData.autoLoginVisible;
|
| - },
|
| -
|
| - /**
|
| - * Get the start/stop sync button DOM element. Used for testing.
|
| - * @return {DOMElement} The start/stop sync button.
|
| - * @private
|
| - */
|
| - getStartStopSyncButton_: function() {
|
| - return $('start-stop-sync');
|
| - },
|
| -
|
| - /**
|
| - * Event listener for the 'show home button' preference. Shows/hides the
|
| - * UI for changing the home page with animation, unless this is the first
|
| - * time this function is called, in which case there is no animation.
|
| - * @param {Event} event The preference change event.
|
| - */
|
| - onShowHomeButtonChanged_: function(event) {
|
| - var section = $('change-home-page-section');
|
| - if (this.onShowHomeButtonChangedCalled_) {
|
| - var container = $('change-home-page-section-container');
|
| - if (event.value.value)
|
| - this.showSectionWithAnimation_(section, container);
|
| - else
|
| - this.hideSectionWithAnimation_(section, container);
|
| - } else {
|
| - section.hidden = !event.value.value;
|
| - this.onShowHomeButtonChangedCalled_ = true;
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Event listener for the 'homepage is NTP' preference. Updates the label
|
| - * next to the 'Change' button.
|
| - * @param {Event} event The preference change event.
|
| - */
|
| - onHomePageIsNtpChanged_: function(event) {
|
| - $('home-page-url').hidden = event.value.value;
|
| - $('home-page-ntp').hidden = !event.value.value;
|
| - },
|
| -
|
| - /**
|
| - * Event listener for changes to the homepage preference. Updates the label
|
| - * next to the 'Change' button.
|
| - * @param {Event} event The preference change event.
|
| - */
|
| - onHomePageChanged_: function(event) {
|
| - $('home-page-url').textContent = this.stripHttp_(event.value.value);
|
| - },
|
| -
|
| - /**
|
| - * Removes the 'http://' from a URL, like the omnibox does. If the string
|
| - * doesn't start with 'http://' it is returned unchanged.
|
| - * @param {string} url The url to be processed
|
| - * @return {string} The url with the 'http://' removed.
|
| - */
|
| - stripHttp_: function(url) {
|
| - return url.replace(/^http:\/\//, '');
|
| - },
|
| -
|
| - /**
|
| - * Shows the autoLaunch preference and initializes its checkbox value.
|
| - * @param {bool} enabled Whether autolaunch is enabled or or not.
|
| - * @private
|
| - */
|
| - updateAutoLaunchState_: function(enabled) {
|
| - $('auto-launch-option').hidden = false;
|
| - $('auto-launch').checked = enabled;
|
| - },
|
| -
|
| - /**
|
| - * Called when the value of the instant.confirm_dialog_shown preference
|
| - * changes. Cache this value.
|
| - * @param {Event} event Change event.
|
| - * @private
|
| - */
|
| - onInstantConfirmDialogShownChanged_: function(event) {
|
| - this.instantConfirmDialogShown_ = event.value.value;
|
| - },
|
| -
|
| - /**
|
| - * Called when the value of the spellcheck.confirm_dialog_shown preference
|
| - * changes. Cache this value.
|
| - * @param {Event} event Change event.
|
| - * @private
|
| - */
|
| - onSpellcheckConfirmDialogShownChanged_: function(event) {
|
| - this.spellcheckConfirmDialogShown_ = event.value.value;
|
| - },
|
| -
|
| - /**
|
| - * Called when the value of the download.default_directory preference
|
| - * changes.
|
| - * @param {Event} event Change event.
|
| - * @private
|
| - */
|
| - onDefaultDownloadDirectoryChanged_: function(event) {
|
| - $('downloadLocationPath').value = event.value.value;
|
| - if (cr.isChromeOS) {
|
| - // On ChromeOS, strip out /special for drive paths, and
|
| - // /home/chronos/user for local files.
|
| - $('downloadLocationPath').value = $('downloadLocationPath').value.
|
| - replace(/^\/(special|home\/chronos\/user)/, '');
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Update the Default Browsers section based on the current state.
|
| - * @param {string} statusString Description of the current default state.
|
| - * @param {boolean} isDefault Whether or not the browser is currently
|
| - * default.
|
| - * @param {boolean} canBeDefault Whether or not the browser can be default.
|
| - * @private
|
| - */
|
| - updateDefaultBrowserState_: function(statusString, isDefault,
|
| - canBeDefault) {
|
| - if (!cr.isChromeOS) {
|
| - var label = $('default-browser-state');
|
| - label.textContent = statusString;
|
| -
|
| - $('set-as-default-browser').hidden = !canBeDefault || isDefault;
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Clears the search engine popup.
|
| - * @private
|
| - */
|
| - clearSearchEngines_: function() {
|
| - $('default-search-engine').textContent = '';
|
| - },
|
| -
|
| - /**
|
| - * Updates the search engine popup with the given entries.
|
| - * @param {Array} engines List of available search engines.
|
| - * @param {number} defaultValue The value of the current default engine.
|
| - * @param {boolean} defaultManaged Whether the default search provider is
|
| - * managed. If true, the default search provider can't be changed.
|
| - * @private
|
| - */
|
| - updateSearchEngines_: function(engines, defaultValue, defaultManaged) {
|
| - this.clearSearchEngines_();
|
| - engineSelect = $('default-search-engine');
|
| - engineSelect.disabled = defaultManaged;
|
| - engineCount = engines.length;
|
| - var defaultIndex = -1;
|
| - for (var i = 0; i < engineCount; i++) {
|
| - var engine = engines[i];
|
| - var option = new Option(engine['name'], engine['index']);
|
| - if (defaultValue == option.value)
|
| - defaultIndex = i;
|
| - engineSelect.appendChild(option);
|
| - }
|
| - if (defaultIndex >= 0)
|
| - engineSelect.selectedIndex = defaultIndex;
|
| - },
|
| -
|
| - /**
|
| - * Set the default search engine based on the popup selection.
|
| - * @private
|
| - */
|
| - setDefaultSearchEngine_: function() {
|
| - var engineSelect = $('default-search-engine');
|
| - var selectedIndex = engineSelect.selectedIndex;
|
| - if (selectedIndex >= 0) {
|
| - var selection = engineSelect.options[selectedIndex];
|
| - chrome.send('setDefaultSearchEngine', [String(selection.value)]);
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Sets or clear whether Chrome should Auto-launch on computer startup.
|
| - * @private
|
| - */
|
| - handleAutoLaunchChanged_: function() {
|
| - chrome.send('toggleAutoLaunch', [$('auto-launch').checked]);
|
| - },
|
| -
|
| - /**
|
| - * Get the selected profile item from the profile list. This also works
|
| - * correctly if the list is not displayed.
|
| - * @return {Object} the profile item object, or null if nothing is selected.
|
| - * @private
|
| - */
|
| - getSelectedProfileItem_: function() {
|
| - var profilesList = $('profiles-list');
|
| - if (profilesList.hidden) {
|
| - if (profilesList.dataModel.length > 0)
|
| - return profilesList.dataModel.item(0);
|
| - } else {
|
| - return profilesList.selectedItem;
|
| - }
|
| - return null;
|
| - },
|
| -
|
| - /**
|
| - * Helper function to set the status of profile view buttons to disabled or
|
| - * enabled, depending on the number of profiles and selection status of the
|
| - * profiles list.
|
| - * @private
|
| - */
|
| - setProfileViewButtonsStatus_: function() {
|
| - var profilesList = $('profiles-list');
|
| - var selectedProfile = profilesList.selectedItem;
|
| - var hasSelection = selectedProfile != null;
|
| - var hasSingleProfile = profilesList.dataModel.length == 1;
|
| - $('profiles-manage').disabled = !hasSelection ||
|
| - !selectedProfile.isCurrentProfile;
|
| - if (hasSelection && !selectedProfile.isCurrentProfile)
|
| - $('profiles-manage').title = loadTimeData.getString('currentUserOnly');
|
| - else
|
| - $('profiles-manage').title = '';
|
| - $('profiles-delete').disabled = !hasSelection && !hasSingleProfile;
|
| - var importData = $('import-data');
|
| - if (importData) {
|
| - importData.disabled = $('import-data').disabled = hasSelection &&
|
| - !selectedProfile.isCurrentProfile;
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Display the correct dialog layout, depending on how many profiles are
|
| - * available.
|
| - * @param {number} numProfiles The number of profiles to display.
|
| - * @private
|
| - */
|
| - setProfileViewSingle_: function(numProfiles) {
|
| - var hasSingleProfile = numProfiles == 1;
|
| - $('profiles-list').hidden = hasSingleProfile;
|
| - $('profiles-single-message').hidden = !hasSingleProfile;
|
| - $('profiles-manage').hidden = hasSingleProfile;
|
| - $('profiles-delete').textContent = hasSingleProfile ?
|
| - loadTimeData.getString('profilesDeleteSingle') :
|
| - loadTimeData.getString('profilesDelete');
|
| - },
|
| -
|
| - /**
|
| - * Adds all |profiles| to the list.
|
| - * @param {Array.<Object>} profiles An array of profile info objects.
|
| - * each object is of the form:
|
| - * profileInfo = {
|
| - * name: "Profile Name",
|
| - * iconURL: "chrome://path/to/icon/image",
|
| - * filePath: "/path/to/profile/data/on/disk",
|
| - * isCurrentProfile: false
|
| - * };
|
| - * @private
|
| - */
|
| - setProfilesInfo_: function(profiles) {
|
| - this.setProfileViewSingle_(profiles.length);
|
| - // add it to the list, even if the list is hidden so we can access it
|
| - // later.
|
| - $('profiles-list').dataModel = new ArrayDataModel(profiles);
|
| -
|
| - // Received new data. If showing the "manage" overlay, keep it up to
|
| - // date. If showing the "delete" overlay, close it.
|
| - if (ManageProfileOverlay.getInstance().visible &&
|
| - !$('manage-profile-overlay-manage').hidden) {
|
| - ManageProfileOverlay.showManageDialog();
|
| - } else {
|
| - ManageProfileOverlay.getInstance().visible = false;
|
| - }
|
| -
|
| - this.setProfileViewButtonsStatus_();
|
| - },
|
| -
|
| - /**
|
| - * Returns the currently active profile for this browser window.
|
| - * @return {Object} A profile info object.
|
| - * @private
|
| - */
|
| - getCurrentProfile_: function() {
|
| - for (var i = 0; i < $('profiles-list').dataModel.length; i++) {
|
| - var profile = $('profiles-list').dataModel.item(i);
|
| - if (profile.isCurrentProfile)
|
| - return profile;
|
| - }
|
| -
|
| - assert(false,
|
| - 'There should always be a current profile, but none found.');
|
| - },
|
| -
|
| - setGtkThemeButtonEnabled_: function(enabled) {
|
| - if (!cr.isChromeOS && navigator.platform.match(/linux|BSD/i))
|
| - $('themes-GTK-button').disabled = !enabled;
|
| - },
|
| -
|
| - setThemesResetButtonEnabled_: function(enabled) {
|
| - $('themes-reset').disabled = !enabled;
|
| - },
|
| -
|
| - /**
|
| - * (Re)loads IMG element with current user account picture.
|
| - * @private
|
| - */
|
| - updateAccountPicture_: function() {
|
| - var picture = $('account-picture');
|
| - if (picture) {
|
| - picture.src = 'chrome://userimage/' + this.username_ + '?id=' +
|
| - Date.now();
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Handle the 'add device' button click.
|
| - * @private
|
| - */
|
| - handleAddBluetoothDevice_: function() {
|
| - $('bluetooth-unpaired-devices-list').clear();
|
| - chrome.send('findBluetoothDevices');
|
| - OptionsPage.showPageByName('bluetooth', false);
|
| - },
|
| -
|
| - /**
|
| - * Set the checked state of the metrics reporting checkbox.
|
| - * @private
|
| - */
|
| - setMetricsReportingCheckboxState_: function(checked, disabled) {
|
| - $('metricsReportingEnabled').checked = checked;
|
| - $('metricsReportingEnabled').disabled = disabled;
|
| - },
|
| -
|
| - /**
|
| - * @private
|
| - */
|
| - setMetricsReportingSettingVisibility_: function(visible) {
|
| - if (visible)
|
| - $('metricsReportingSetting').style.display = 'block';
|
| - else
|
| - $('metricsReportingSetting').style.display = 'none';
|
| - },
|
| -
|
| - /**
|
| - * Set the visibility of the password generation checkbox.
|
| - * @private
|
| - */
|
| - setPasswordGenerationSettingVisibility_: function(visible) {
|
| - if (visible)
|
| - $('password-generation-checkbox').style.display = 'block';
|
| - else
|
| - $('password-generation-checkbox').style.display = 'none';
|
| - },
|
| -
|
| - /**
|
| - * Set the font size selected item.
|
| - * @private
|
| - */
|
| - setFontSize_: function(font_size_value) {
|
| - var selectCtl = $('defaultFontSize');
|
| - for (var i = 0; i < selectCtl.options.length; i++) {
|
| - if (selectCtl.options[i].value == font_size_value) {
|
| - selectCtl.selectedIndex = i;
|
| - if ($('Custom'))
|
| - selectCtl.remove($('Custom').index);
|
| - return;
|
| - }
|
| - }
|
| -
|
| - // Add/Select Custom Option in the font size label list.
|
| - if (!$('Custom')) {
|
| - var option = new Option(loadTimeData.getString('fontSizeLabelCustom'),
|
| - -1, false, true);
|
| - option.setAttribute('id', 'Custom');
|
| - selectCtl.add(option);
|
| - }
|
| - $('Custom').selected = true;
|
| - },
|
| -
|
| - /**
|
| - * Populate the page zoom selector with values received from the caller.
|
| - * @param {Array} items An array of items to populate the selector.
|
| - * each object is an array with three elements as follows:
|
| - * 0: The title of the item (string).
|
| - * 1: The value of the item (number).
|
| - * 2: Whether the item should be selected (boolean).
|
| - * @private
|
| - */
|
| - setupPageZoomSelector_: function(items) {
|
| - var element = $('defaultZoomFactor');
|
| -
|
| - // Remove any existing content.
|
| - element.textContent = '';
|
| -
|
| - // Insert new child nodes into select element.
|
| - var value, title, selected;
|
| - for (var i = 0; i < items.length; i++) {
|
| - title = items[i][0];
|
| - value = items[i][1];
|
| - selected = items[i][2];
|
| - element.appendChild(new Option(title, value, false, selected));
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Shows/hides the autoOpenFileTypesResetToDefault button and label, with
|
| - * animation.
|
| - * @param {boolean} display Whether to show the button and label or not.
|
| - * @private
|
| - */
|
| - setAutoOpenFileTypesDisplayed_: function(display) {
|
| - if (cr.isChromeOS)
|
| - return;
|
| -
|
| - if ($('advanced-settings').hidden) {
|
| - // If the Advanced section is hidden, don't animate the transition.
|
| - $('auto-open-file-types-section').hidden = !display;
|
| - } else {
|
| - if (display) {
|
| - this.showSectionWithAnimation_(
|
| - $('auto-open-file-types-section'),
|
| - $('auto-open-file-types-container'));
|
| - } else {
|
| - this.hideSectionWithAnimation_(
|
| - $('auto-open-file-types-section'),
|
| - $('auto-open-file-types-container'));
|
| - }
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Set the enabled state for the proxy settings button.
|
| - * @private
|
| - */
|
| - setupProxySettingsSection_: function(disabled, label) {
|
| - if (!cr.isChromeOS) {
|
| - $('proxiesConfigureButton').disabled = disabled;
|
| - $('proxiesLabel').textContent = label;
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Set the checked state for the sslCheckRevocation checkbox.
|
| - * @private
|
| - */
|
| - setCheckRevocationCheckboxState_: function(checked, disabled) {
|
| - $('sslCheckRevocation').checked = checked;
|
| - $('sslCheckRevocation').disabled = disabled;
|
| - },
|
| -
|
| - /**
|
| - * Set the checked state for the backgroundModeCheckbox element.
|
| - * @private
|
| - */
|
| - setBackgroundModeCheckboxState_: function(
|
| - checked, disabled, controlled_by) {
|
| - $('backgroundModeCheckbox').checked = checked;
|
| - $('backgroundModeCheckbox').disabled = disabled;
|
| - $('backgroundModeCheckbox').controlledBy = controlled_by;
|
| - OptionsPage.updateManagedBannerVisibility();
|
| - },
|
| -
|
| - /**
|
| - * Set the Cloud Print proxy UI to enabled, disabled, or processing.
|
| - * @private
|
| - */
|
| - setupCloudPrintConnectorSection_: function(disabled, label, allowed) {
|
| - if (!cr.isChromeOS) {
|
| - $('cloudPrintConnectorLabel').textContent = label;
|
| - if (disabled || !allowed) {
|
| - $('cloudPrintConnectorSetupButton').textContent =
|
| - loadTimeData.getString('cloudPrintConnectorDisabledButton');
|
| - $('cloudPrintManageButton').style.display = 'none';
|
| - } else {
|
| - $('cloudPrintConnectorSetupButton').textContent =
|
| - loadTimeData.getString('cloudPrintConnectorEnabledButton');
|
| - $('cloudPrintManageButton').style.display = 'inline';
|
| - }
|
| - $('cloudPrintConnectorSetupButton').disabled = !allowed;
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @private
|
| - */
|
| - removeCloudPrintConnectorSection_: function() {
|
| - if (!cr.isChromeOS) {
|
| - var connectorSectionElm = $('cloud-print-connector-section');
|
| - if (connectorSectionElm)
|
| - connectorSectionElm.parentNode.removeChild(connectorSectionElm);
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Set the initial state of the spoken feedback checkbox.
|
| - * @private
|
| - */
|
| - setSpokenFeedbackCheckboxState_: function(checked) {
|
| - $('accessibility-spoken-feedback-check').checked = checked;
|
| - },
|
| -
|
| - /**
|
| - * Set the initial state of the high contrast checkbox.
|
| - * @private
|
| - */
|
| - setHighContrastCheckboxState_: function(checked) {
|
| - $('accessibility-high-contrast-check').checked = checked;
|
| - },
|
| -
|
| - /**
|
| - * Set the initial state of the screen magnifier checkbox.
|
| - * @private
|
| - */
|
| - setScreenMagnifierCheckboxState_: function(checked) {
|
| - $('accessibility-screen-magnifier-check').checked = checked;
|
| - },
|
| -
|
| - /**
|
| - * Set the initial state of the virtual keyboard checkbox.
|
| - * @private
|
| - */
|
| - setVirtualKeyboardCheckboxState_: function(checked) {
|
| - // TODO(zork): Update UI
|
| - },
|
| -
|
| - /**
|
| - * Show/hide mouse settings slider.
|
| - * @private
|
| - */
|
| - showMouseControls_: function(show) {
|
| - $('mouse-settings').hidden = !show;
|
| - },
|
| -
|
| - /**
|
| - * Show/hide touchpad settings slider.
|
| - * @private
|
| - */
|
| - showTouchpadControls_: function(show) {
|
| - $('touchpad-settings').hidden = !show;
|
| - },
|
| -
|
| - /**
|
| - * Show/hide the display options button on the System settings page.
|
| - * @private
|
| - */
|
| - showDisplayOptions_: function(show) {
|
| - $('display-options-section').hidden = !show;
|
| - },
|
| -
|
| - /**
|
| - * Activate the bluetooth settings section on the System settings page.
|
| - * @private
|
| - */
|
| - showBluetoothSettings_: function() {
|
| - $('bluetooth-devices').hidden = false;
|
| - },
|
| -
|
| - /**
|
| - * Dectivates the bluetooth settings section from the System settings page.
|
| - * @private
|
| - */
|
| - hideBluetoothSettings_: function() {
|
| - $('bluetooth-devices').hidden = true;
|
| - },
|
| -
|
| - /**
|
| - * Sets the state of the checkbox indicating if bluetooth is turned on. The
|
| - * state of the "Find devices" button and the list of discovered devices may
|
| - * also be affected by a change to the state.
|
| - * @param {boolean} checked Flag Indicating if Bluetooth is turned on.
|
| - * @private
|
| - */
|
| - setBluetoothState_: function(checked) {
|
| - $('enable-bluetooth').checked = checked;
|
| - $('bluetooth-paired-devices-list').parentNode.hidden = !checked;
|
| - $('bluetooth-add-device').hidden = !checked;
|
| - $('bluetooth-reconnect-device').hidden = !checked;
|
| - // Flush list of previously discovered devices if bluetooth is turned off.
|
| - if (!checked) {
|
| - $('bluetooth-paired-devices-list').clear();
|
| - $('bluetooth-unpaired-devices-list').clear();
|
| - } else {
|
| - chrome.send('getPairedBluetoothDevices');
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Adds an element to the list of available bluetooth devices. If an element
|
| - * with a matching address is found, the existing element is updated.
|
| - * @param {{name: string,
|
| - * address: string,
|
| - * paired: boolean,
|
| - * bonded: boolean,
|
| - * connected: boolean}} device
|
| - * Decription of the bluetooth device.
|
| - * @private
|
| - */
|
| - addBluetoothDevice_: function(device) {
|
| - var list = $('bluetooth-unpaired-devices-list');
|
| - if (device.paired) {
|
| - // Test to see if the device is currently in the unpaired list, in which
|
| - // case it should be removed from that list.
|
| - var index = $('bluetooth-unpaired-devices-list').find(device.address);
|
| - if (index != undefined)
|
| - $('bluetooth-unpaired-devices-list').deleteItemAtIndex(index);
|
| - list = $('bluetooth-paired-devices-list');
|
| - } else {
|
| - // Test to see if the device is currently in the paired list, in which
|
| - // case it should be removed from that list.
|
| - var index = $('bluetooth-paired-devices-list').find(device.address);
|
| - if (index != undefined)
|
| - $('bluetooth-paired-devices-list').deleteItemAtIndex(index);
|
| - }
|
| - list.appendDevice(device);
|
| -
|
| - // One device can be in the process of pairing. If found, display
|
| - // the Bluetooth pairing overlay.
|
| - if (device.pairing)
|
| - BluetoothPairing.showDialog(device);
|
| - },
|
| -
|
| - /**
|
| - * Removes an element from the list of available devices.
|
| - * @param {string} address Unique address of the device.
|
| - * @private
|
| - */
|
| - removeBluetoothDevice_: function(address) {
|
| - var index = $('bluetooth-unpaired-devices-list').find(address);
|
| - if (index != undefined) {
|
| - $('bluetooth-unpaired-devices-list').deleteItemAtIndex(index);
|
| - } else {
|
| - index = $('bluetooth-paired-devices-list').find(address);
|
| - if (index != undefined)
|
| - $('bluetooth-paired-devices-list').deleteItemAtIndex(index);
|
| - }
|
| - }
|
| -
|
| - };
|
| -
|
| - //Forward public APIs to private implementations.
|
| - [
|
| - 'addBluetoothDevice',
|
| - 'getCurrentProfile',
|
| - 'getStartStopSyncButton',
|
| - 'hideBluetoothSettings',
|
| - 'removeCloudPrintConnectorSection',
|
| - 'removeBluetoothDevice',
|
| - 'setAutoOpenFileTypesDisplayed',
|
| - 'setBackgroundModeCheckboxState',
|
| - 'setBluetoothState',
|
| - 'setCheckRevocationCheckboxState',
|
| - 'setFontSize',
|
| - 'setGtkThemeButtonEnabled',
|
| - 'setHighContrastCheckboxState',
|
| - 'setMetricsReportingCheckboxState',
|
| - 'setMetricsReportingSettingVisibility',
|
| - 'setPasswordGenerationSettingVisibility',
|
| - 'setProfilesInfo',
|
| - 'setScreenMagnifierCheckboxState',
|
| - 'setSpokenFeedbackCheckboxState',
|
| - 'setThemesResetButtonEnabled',
|
| - 'setupCloudPrintConnectorSection',
|
| - 'setupPageZoomSelector',
|
| - 'setupProxySettingsSection',
|
| - 'setVirtualKeyboardCheckboxState',
|
| - 'showBluetoothSettings',
|
| - 'showDisplayOptions',
|
| - 'showMouseControls',
|
| - 'showTouchpadControls',
|
| - 'updateAccountPicture',
|
| - 'updateAutoLaunchState',
|
| - 'updateDefaultBrowserState',
|
| - 'updateManagedBannerVisibility',
|
| - 'updateSearchEngines',
|
| - 'updateSyncState',
|
| - 'updateStartupPages',
|
| - ].forEach(function(name) {
|
| - BrowserOptions[name] = function() {
|
| - var instance = BrowserOptions.getInstance();
|
| - return instance[name + '_'].apply(instance, arguments);
|
| - };
|
| - });
|
| -
|
| - if (cr.isChromeOS) {
|
| - /**
|
| - * Returns username (canonical email) of the user logged in (ChromeOS only).
|
| - * @return {string} user email.
|
| - */
|
| - // TODO(jhawkins): Investigate the use case for this method.
|
| - BrowserOptions.getLoggedInUsername = function() {
|
| - return BrowserOptions.getInstance().username_;
|
| - };
|
| - }
|
| -
|
| - // Export
|
| - return {
|
| - BrowserOptions: BrowserOptions
|
| - };
|
| -});
|
|
|