| Index: chrome/browser/resources/options/sync_setup_overlay.js
|
| diff --git a/chrome/browser/resources/options/sync_setup_overlay.js b/chrome/browser/resources/options/sync_setup_overlay.js
|
| deleted file mode 100644
|
| index 0af88fa5268e320526ebb5c6f5cc8e595974202e..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/resources/options/sync_setup_overlay.js
|
| +++ /dev/null
|
| @@ -1,801 +0,0 @@
|
| -// Copyright (c) 2011 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() {
|
| - const OptionsPage = options.OptionsPage;
|
| -
|
| - // Variable to track if a captcha challenge was issued. If this gets set to
|
| - // true, it stays that way until we are told about successful login from
|
| - // the browser. This means subsequent errors (like invalid password) are
|
| - // rendered in the captcha state, which is basically identical except we
|
| - // don't show the top error blurb "Error Signing in" or the "Create
|
| - // account" link.
|
| - var captchaChallengeActive_ = false;
|
| -
|
| - // True if the synced account uses a custom passphrase.
|
| - var usePassphrase_ = false;
|
| -
|
| - /**
|
| - * SyncSetupOverlay class
|
| - * Encapsulated handling of the 'Sync Setup' overlay page.
|
| - * @class
|
| - */
|
| - function SyncSetupOverlay() {
|
| - OptionsPage.call(this, 'syncSetup',
|
| - templateData.syncSetupOverlayTitle,
|
| - 'sync-setup-overlay');
|
| - }
|
| -
|
| - cr.addSingletonGetter(SyncSetupOverlay);
|
| -
|
| - SyncSetupOverlay.prototype = {
|
| - __proto__: OptionsPage.prototype,
|
| -
|
| - /**
|
| - * Initializes the page.
|
| - */
|
| - initializePage: function() {
|
| - OptionsPage.prototype.initializePage.call(this);
|
| -
|
| - var acct_text = $('gaia-account-text');
|
| - var translated_text = acct_text.textContent;
|
| - var posGoogle = translated_text.indexOf('Google');
|
| - if (posGoogle != -1) {
|
| - var ltr = templateData['textdirection'] == 'ltr';
|
| - var googleIsAtEndOfSentence = posGoogle != 0;
|
| - if (googleIsAtEndOfSentence == ltr) {
|
| - // We're in ltr and in the translation the word 'Google' is AFTER the
|
| - // word 'Account' OR we're in rtl and 'Google' is BEFORE 'Account'.
|
| - var logo_td = $('gaia-logo');
|
| - logo_td.parentNode.appendChild(logo_td);
|
| - }
|
| - acct_text.textContent = translated_text.replace('Google','');
|
| - }
|
| -
|
| - var self = this;
|
| - $('gaia-login-form').onsubmit = function() {
|
| - self.sendCredentialsAndClose_();
|
| - return false;
|
| - };
|
| - $('google-option').onchange = $('explicit-option').onchange = function() {
|
| - self.onPassphraseRadioChanged_();
|
| - };
|
| - $('choose-datatypes-cancel').onclick =
|
| - $('sync-setup-cancel').onclick =
|
| - $('confirm-everything-cancel').onclick =
|
| - $('stop-syncing-cancel').onclick = function() {
|
| - self.closeOverlay_();
|
| - };
|
| - $('confirm-everything-ok').onclick = function() {
|
| - self.sendConfiguration_();
|
| - };
|
| - $('stop-syncing-ok').onclick = function() {
|
| - chrome.send('stopSyncing');
|
| - self.closeOverlay_();
|
| - };
|
| - },
|
| -
|
| - showOverlay_: function() {
|
| - OptionsPage.navigateToPage('syncSetup');
|
| - },
|
| -
|
| - closeOverlay_: function() {
|
| - OptionsPage.closeOverlay();
|
| - },
|
| -
|
| - /** @inheritDoc */
|
| - didShowPage: function() {
|
| - chrome.send('SyncSetupAttachHandler');
|
| - },
|
| -
|
| - /** @inheritDoc */
|
| - didClosePage: function() {
|
| - chrome.send('SyncSetupDidClosePage');
|
| - },
|
| -
|
| - sendPassphraseAndClose_: function() {
|
| - var f = $('choose-data-types-form');
|
| - var result = JSON.stringify({"passphrase": f.passphrase.value});
|
| - chrome.send('SyncSetupPassphrase', [result]);
|
| - return false;
|
| - },
|
| -
|
| - getEncryptionRadioCheckedValue_: function() {
|
| - var f = $('choose-data-types-form');
|
| - for (var i = 0; i < f.encrypt.length; ++i) {
|
| - if (f.encrypt[i].checked) {
|
| - return f.encrypt[i].value;
|
| - }
|
| - }
|
| -
|
| - return undefined;
|
| - },
|
| -
|
| - getPassphraseRadioCheckedValue_: function() {
|
| - var f = $('choose-data-types-form');
|
| - for (var i = 0; i < f.option.length; ++i) {
|
| - if (f.option[i].checked) {
|
| - return f.option[i].value;
|
| - }
|
| - }
|
| -
|
| - return undefined;
|
| - },
|
| -
|
| - disableEncryptionRadioGroup_: function() {
|
| - var f = $('choose-data-types-form');
|
| - for (var i = 0; i < f.encrypt.length; ++i)
|
| - f.encrypt[i].disabled = true;
|
| - },
|
| -
|
| - onPassphraseRadioChanged_: function() {
|
| - var visible = this.getPassphraseRadioCheckedValue_() == "explicit";
|
| - $('sync-custom-passphrase').hidden = !visible;
|
| - },
|
| -
|
| - checkAllDataTypeCheckboxes_: function() {
|
| - var checkboxes = document.getElementsByName("dataTypeCheckbox");
|
| - for (var i = 0; i < checkboxes.length; i++) {
|
| - // Only check the visible ones (since there's no way to uncheck
|
| - // the invisible ones).
|
| - if (checkboxes[i].parentElement.className == "sync-item-show") {
|
| - checkboxes[i].checked = true;
|
| - }
|
| - }
|
| - },
|
| -
|
| - setDataTypeCheckboxesEnabled_: function(enabled) {
|
| - var checkboxes = document.getElementsByName("dataTypeCheckbox");
|
| - var labels = document.getElementsByName("dataTypeLabel");
|
| - for (var i = 0; i < checkboxes.length; i++) {
|
| - checkboxes[i].disabled = !enabled;
|
| - if (checkboxes[i].disabled) {
|
| - labels[i].className = "sync-label-inactive";
|
| - } else {
|
| - labels[i].className = "sync-label-active";
|
| - }
|
| - }
|
| - },
|
| -
|
| - setCheckboxesToKeepEverythingSynced_: function(value) {
|
| - this.setDataTypeCheckboxesEnabled_(!value);
|
| - if (value)
|
| - this.checkAllDataTypeCheckboxes_();
|
| - },
|
| -
|
| - // Returns true if at least one data type is enabled and no data types are
|
| - // checked. (If all data type checkboxes are disabled, it's because "keep
|
| - // everything synced" is checked.)
|
| - noDataTypesChecked_: function() {
|
| - var checkboxes = document.getElementsByName("dataTypeCheckbox");
|
| - var atLeastOneChecked = false;
|
| - var atLeastOneEnabled = false;
|
| - for (var i = 0; i < checkboxes.length; i++) {
|
| - if (!checkboxes[i].disabled &&
|
| - checkboxes[i].parentElement.className == "sync-item-show") {
|
| - atLeastOneEnabled = true;
|
| - if (checkboxes[i].checked) {
|
| - atLeastOneChecked = true;
|
| - }
|
| - }
|
| - }
|
| -
|
| - return atLeastOneEnabled && !atLeastOneChecked;
|
| - },
|
| -
|
| - checkPassphraseMatch_: function() {
|
| - var emptyError = $('empty-error');
|
| - var mismatchError = $('mismatch-error');
|
| - emptyError.hidden = true;
|
| - mismatchError.hidden = true;
|
| -
|
| - var f = $('choose-data-types-form');
|
| - if (this.getPassphraseRadioCheckedValue_() != "explicit" ||
|
| - f.option[0].disabled)
|
| - return true;
|
| -
|
| - var customPassphrase = $('custom-passphrase');
|
| - if (customPassphrase.value.length == 0) {
|
| - emptyError.hidden = false;
|
| - return false;
|
| - }
|
| -
|
| - var confirmPassphrase = $('confirm-passphrase');
|
| - if (confirmPassphrase.value != customPassphrase.value) {
|
| - mismatchError.hidden = false;
|
| - return false;
|
| - }
|
| -
|
| - return true;
|
| - },
|
| -
|
| - sendConfiguration_: function() {
|
| - // Trying to submit, so hide previous errors.
|
| - $('aborted-text').hidden = true;
|
| - $('error-text').hidden = true;
|
| -
|
| - if (this.noDataTypesChecked_()) {
|
| - $('error-text').hidden = false;
|
| - return;
|
| - }
|
| -
|
| - var f = $('choose-data-types-form');
|
| - if (!this.checkPassphraseMatch_())
|
| - return;
|
| -
|
| - // Don't allow the user to tweak the settings once we send the
|
| - // configuration to the backend.
|
| - this.setInputElementsDisabledState_(true);
|
| -
|
| - var syncAll =
|
| - document.getElementById('sync-select-datatypes').selectedIndex == 0;
|
| - var usePassphrase = this.getPassphraseRadioCheckedValue_() == 'explicit';
|
| - var encryptAllData = this.getEncryptionRadioCheckedValue_() == 'all';
|
| -
|
| - // These values need to be kept in sync with where they are read in
|
| - // SyncSetupFlow::GetDataTypeChoiceData().
|
| - var result = JSON.stringify({
|
| - "keepEverythingSynced": syncAll,
|
| - "syncBookmarks": syncAll || $('bookmarks-checkbox').checked,
|
| - "syncPreferences": syncAll || $('preferences-checkbox').checked,
|
| - "syncThemes": syncAll || $('themes-checkbox').checked,
|
| - "syncPasswords": syncAll || $('passwords-checkbox').checked,
|
| - "syncAutofill": syncAll || $('autofill-checkbox').checked,
|
| - "syncExtensions": syncAll || $('extensions-checkbox').checked,
|
| - "syncTypedUrls": syncAll || $('typed-urls-checkbox').checked,
|
| - "syncApps": syncAll || $('apps-checkbox').checked,
|
| - "syncSessions": syncAll || $('sessions-checkbox').checked,
|
| - "encryptAllData": encryptAllData,
|
| - "usePassphrase": usePassphrase,
|
| - "passphrase": $('custom-passphrase').value
|
| - });
|
| - chrome.send('SyncSetupConfigure', [result]);
|
| - },
|
| -
|
| - /**
|
| - * Sets the disabled property of all input elements within the 'Customize
|
| - * Sync Preferences' screen. This is used to prohibit the user from changing
|
| - * the inputs after confirming the customized sync preferences, or resetting
|
| - * the state when re-showing the dialog.
|
| - * @param disabled True if controls should be set to disabled.
|
| - * @private
|
| - */
|
| - setInputElementsDisabledState_: function(disabled) {
|
| - var configureElements =
|
| - $('customize-sync-preferences').querySelectorAll('input');
|
| - for (var i = 0; i < configureElements.length; i++)
|
| - configureElements[i].disabled = disabled;
|
| - $('sync-select-datatypes').disabled = disabled;
|
| -
|
| - var self = this;
|
| - this.animateDisableLink_($('customize-link'), disabled, function() {
|
| - self.showCustomizePage_(null, true);
|
| - });
|
| -
|
| - this.animateDisableLink_($('use-default-link'), disabled, function() {
|
| - self.showSyncEverythingPage_();
|
| - });
|
| - },
|
| -
|
| - /**
|
| - * Animate a link being enabled/disabled. The link is hidden by animating
|
| - * its opacity, but to ensure the user doesn't click it during that time,
|
| - * its onclick handler is changed to null as well.
|
| - * @param elt The anchor element to enable/disable.
|
| - * @param disabled True if the link should be disabled.
|
| - * @param enabledFunction The onclick handler when the link is enabled.
|
| - * @private
|
| - */
|
| - animateDisableLink_: function(elt, disabled, enabledFunction) {
|
| - if (disabled) {
|
| - elt.classList.add('transparent');
|
| - elt.onclick = null;
|
| - elt.addEventListener('webkitTransitionEnd', function f(e) {
|
| - if (e.propertyName != 'opacity')
|
| - return;
|
| - elt.removeEventListener('webkitTransitionEnd', f);
|
| - elt.classList.remove('transparent');
|
| - elt.hidden = true;
|
| - });
|
| - } else {
|
| - elt.hidden = false;
|
| - elt.onclick = enabledFunction;
|
| - }
|
| - },
|
| -
|
| - setChooseDataTypesCheckboxes_: function(args) {
|
| - var datatypeSelect = document.getElementById('sync-select-datatypes');
|
| - datatypeSelect.selectedIndex = args.keepEverythingSynced ? 0 : 1;
|
| -
|
| - $('bookmarks-checkbox').checked = args.syncBookmarks;
|
| - $('preferences-checkbox').checked = args.syncPreferences;
|
| - $('themes-checkbox').checked = args.syncThemes;
|
| -
|
| - if (args.passwordsRegistered) {
|
| - $('passwords-checkbox').checked = args.syncPasswords;
|
| - $('passwords-item').className = "sync-item-show";
|
| - } else {
|
| - $('passwords-item').className = "sync-item-hide";
|
| - }
|
| - if (args.autofillRegistered) {
|
| - $('autofill-checkbox').checked = args.syncAutofill;
|
| - $('autofill-item').className = "sync-item-show";
|
| - } else {
|
| - $('autofill-item').className = "sync-item-hide";
|
| - }
|
| - if (args.extensionsRegistered) {
|
| - $('extensions-checkbox').checked = args.syncExtensions;
|
| - $('extensions-item').className = "sync-item-show";
|
| - } else {
|
| - $('extensions-item').className = "sync-item-hide";
|
| - }
|
| - if (args.typedUrlsRegistered) {
|
| - $('typed-urls-checkbox').checked = args.syncTypedUrls;
|
| - $('omnibox-item').className = "sync-item-show";
|
| - } else {
|
| - $('omnibox-item').className = "sync-item-hide";
|
| - }
|
| - if (args.appsRegistered) {
|
| - $('apps-checkbox').checked = args.syncApps;
|
| - $('apps-item').className = "sync-item-show";
|
| - } else {
|
| - $('apps-item').className = "sync-item-hide";
|
| - }
|
| -
|
| - this.setCheckboxesToKeepEverythingSynced_(args.keepEverythingSynced);
|
| - if (args.sessionsRegistered) {
|
| - $('sessions-checkbox').checked = args.syncSessions;
|
| - $('sessions-item').className = "sync-item-show";
|
| - } else {
|
| - $('sessions-item').className = "sync-item-hide";
|
| - }
|
| - },
|
| -
|
| - setEncryptionRadios_: function(args) {
|
| - if (args['encryptAllData']) {
|
| - $('encrypt-all-option').checked = true;
|
| - this.disableEncryptionRadioGroup_();
|
| - } else {
|
| - $('encrypt-sensitive-option').checked = true;
|
| - }
|
| - },
|
| -
|
| - setPassphraseRadios_: function(args) {
|
| - if (args['usePassphrase']) {
|
| - $('explicit-option').checked = true;
|
| -
|
| - // The passphrase, once set, cannot be unset, but we show a reset link.
|
| - $('explicit-option').disabled = true;
|
| - $('google-option').disabled = true;
|
| - $('sync-custom-passphrase').hidden = true;
|
| - } else {
|
| - $('google-option').checked = true;
|
| - }
|
| - },
|
| -
|
| - setErrorState_: function(args) {
|
| - if (!args.was_aborted)
|
| - return;
|
| -
|
| - $('aborted-text').hidden = false;
|
| - $('choose-datatypes-ok').disabled = true;
|
| - },
|
| -
|
| - setCheckboxesAndErrors_: function(args) {
|
| - this.setChooseDataTypesCheckboxes_(args);
|
| - this.setEncryptionRadios_(args);
|
| - this.setPassphraseRadios_(args);
|
| - this.setErrorState_(args);
|
| - },
|
| -
|
| - showConfigure_: function(args) {
|
| - var datatypeSelect = document.getElementById('sync-select-datatypes');
|
| - var self = this;
|
| - datatypeSelect.onchange = function() {
|
| - var syncAll = this.selectedIndex == 0;
|
| - self.setCheckboxesToKeepEverythingSynced_(syncAll);
|
| - };
|
| -
|
| - this.resetPage_('sync-setup-configure');
|
| - $('sync-setup-configure').hidden = false;
|
| -
|
| - // onsubmit is changed when submitting a passphrase. Reset it to its
|
| - // default.
|
| - $('choose-data-types-form').onsubmit = function() {
|
| - self.sendConfiguration_();
|
| - return false;
|
| - };
|
| -
|
| - if (args) {
|
| - if (!args['encryptionEnabled'])
|
| - $('customize-sync-encryption').hidden = true;
|
| - this.setCheckboxesAndErrors_(args);
|
| -
|
| - // Whether to display the 'Sync everything' confirmation page or the
|
| - // customize data types page.
|
| - var keepEverythingSynced = args['keepEverythingSynced'];
|
| - this.usePassphrase_ = args['usePassphrase'];
|
| - if (args['showSyncEverythingPage'] == false || this.usePassphrase_ ||
|
| - keepEverythingSynced == false || args['show_passphrase']) {
|
| - this.showCustomizePage_(args, keepEverythingSynced);
|
| - } else {
|
| - this.showSyncEverythingPage_();
|
| - }
|
| - }
|
| - },
|
| -
|
| - showSyncEverythingPage_: function() {
|
| - $('confirm-sync-preferences').hidden = false;
|
| - $('customize-sync-preferences').hidden = true;
|
| -
|
| - // Reset the selection to 'Sync everything'.
|
| - $('sync-select-datatypes').selectedIndex = 0;
|
| -
|
| - // The default state is to sync everything.
|
| - this.setCheckboxesToKeepEverythingSynced_(true);
|
| -
|
| - // If the account is not synced with a custom passphrase, reset the
|
| - // passphrase radio when switching to the 'Sync everything' page.
|
| - if (!this.usePassphrase_) {
|
| - $('google-option').checked = true;
|
| - $('sync-custom-passphrase').hidden = true;
|
| - }
|
| -
|
| - $('confirm-everything-ok').focus();
|
| - },
|
| -
|
| - /**
|
| - * Reveals the UI for entering a custom passphrase after initial setup. This
|
| - * may happen if the user forgot to enter the correct (or any) custom
|
| - * passphrase during initial setup.
|
| - * @param {Array} args The args that contain the passphrase UI
|
| - * configuration.
|
| - * @private
|
| - */
|
| - showPassphraseContainer_: function(args) {
|
| - $('choose-data-types-form').onsubmit =
|
| - this.sendPassphraseAndClose_.bind(this);
|
| - $('sync-custom-passphrase-container').hidden = true;
|
| - $('sync-existing-passphrase-container').hidden = false;
|
| -
|
| - if (args["passphrase_creation_rejected"])
|
| - $('passphrase-rejected-body').hidden = false;
|
| - else
|
| - $('normal-body').hidden = false;
|
| -
|
| - if (args["passphrase_setting_rejected"])
|
| - $('incorrect-passphrase').hidden = false;
|
| -
|
| - $('sync-passphrase-warning').hidden = false;
|
| -
|
| - $('passphrase').focus();
|
| - },
|
| -
|
| - showCustomizePage_: function(args, syncEverything) {
|
| - $('confirm-sync-preferences').hidden = true;
|
| - $('customize-sync-preferences').hidden = false;
|
| -
|
| - $('sync-custom-passphrase-container').hidden = false;
|
| - $('sync-existing-passphrase-container').hidden = true;
|
| -
|
| - // If the user has selected the 'Customize' page on initial set up, it's
|
| - // likely he intends to change the data types. Select the
|
| - // 'Choose data types' option in this case.
|
| - var index = syncEverything ? 0 : 1;
|
| - document.getElementById('sync-select-datatypes').selectedIndex = index;
|
| - this.setDataTypeCheckboxesEnabled_(!syncEverything);
|
| -
|
| - // The passphrase input may need to take over focus from the OK button, so
|
| - // set focus before that logic.
|
| - $('choose-datatypes-ok').focus();
|
| -
|
| - if (args && args['show_passphrase'])
|
| - this.showPassphraseContainer_(args);
|
| - },
|
| -
|
| - attach_: function() {
|
| - chrome.send('SyncSetupAttachHandler');
|
| - },
|
| -
|
| - showSyncSetupPage_: function(page, args) {
|
| - if (page == 'settingUp') {
|
| - this.setThrobbersVisible_(true);
|
| - return;
|
| - } else {
|
| - this.setThrobbersVisible_(false);
|
| - }
|
| -
|
| - // Hide an existing visible overlay.
|
| - var overlay = $('sync-setup-overlay');
|
| - for (var i = 0; i < overlay.children.length; i++)
|
| - overlay.children[i].hidden = true;
|
| -
|
| - this.setInputElementsDisabledState_(false);
|
| -
|
| - if (page == 'login')
|
| - this.showGaiaLogin_(args);
|
| - else if (page == 'configure' || page == 'passphrase')
|
| - this.showConfigure_(args);
|
| -
|
| - if (page == 'done')
|
| - this.closeOverlay_();
|
| - else
|
| - this.showOverlay_();
|
| - },
|
| -
|
| - setThrobbersVisible_: function(visible) {
|
| - var throbbers = document.getElementsByClassName("throbber");
|
| - for (var i = 0; i < throbbers.length; i++)
|
| - throbbers[i].style.visibility = visible ? "visible" : "hidden";
|
| - },
|
| -
|
| - loginSetFocus_: function() {
|
| - var email = $('gaia-email');
|
| - var passwd = $('gaia-passwd');
|
| - if (email && (email.value == null || email.value == "")) {
|
| - email.focus();
|
| - } else if (passwd) {
|
| - passwd.focus();
|
| - }
|
| - },
|
| -
|
| - showAccessCodeRequired_: function() {
|
| - $('password-row').hidden = true;
|
| - $('email-row').hidden = true;
|
| - $('create-account-cell').style.visibility = "hidden";
|
| -
|
| - $('access-code-label-row').hidden = false;
|
| - $('access-code-input-row').hidden = false;
|
| - $('access-code-help-row').hidden = false;
|
| - $('access-code').disabled = false;
|
| - },
|
| -
|
| - showCaptcha_: function(args) {
|
| - this.captchaChallengeActive_ = true;
|
| -
|
| - // The captcha takes up lots of space, so make room.
|
| - $('top-blurb-error').hidden = true;
|
| - $('create-account-div').hidden = true;
|
| - $('create-account-cell').hidden = true;
|
| -
|
| - // It's showtime for the captcha now.
|
| - $('captcha-div').hidden = false;
|
| - $('gaia-email').disabled = true;
|
| - $('gaia-passwd').disabled = false;
|
| - $('captcha-value').disabled = false;
|
| - $('captcha-wrapper').style.backgroundImage = url(args.captchaUrl);
|
| - },
|
| -
|
| - /**
|
| - * Reset the state of all descendant elements of a root element to their
|
| - * initial state.
|
| - * The initial state is specified by adding a class to the descendant
|
| - * element in sync_setup_overlay.html.
|
| - * @param pageElementId The root page element id.
|
| - * @private
|
| - */
|
| - resetPage_: function(pageElementId) {
|
| - var page = $(pageElementId);
|
| - var forEach = function(arr, fn) {
|
| - var length = arr.length;
|
| - for (var i = 0; i < length; i++) {
|
| - fn(arr[i]);
|
| - }
|
| - };
|
| -
|
| - forEach(page.getElementsByClassName('reset-hidden'),
|
| - function(elt) { elt.hidden = true; });
|
| - forEach(page.getElementsByClassName('reset-shown'),
|
| - function(elt) { elt.hidden = false; });
|
| - forEach(page.getElementsByClassName('reset-disabled'),
|
| - function(elt) { elt.disabled = true; });
|
| - forEach(page.getElementsByClassName('reset-enabled'),
|
| - function(elt) { elt.disabled = false; });
|
| - forEach(page.getElementsByClassName('reset-visibility-hidden'),
|
| - function(elt) { elt.style.visibility = 'hidden'; });
|
| - forEach(page.getElementsByClassName('reset-value'),
|
| - function(elt) { elt.value = ''; });
|
| - forEach(page.getElementsByClassName('reset-opaque'),
|
| - function(elt) { elt.classList.remove('transparent'); });
|
| - },
|
| -
|
| - showGaiaLogin_: function(args) {
|
| - this.resetPage_('sync-setup-login');
|
| - $('sync-setup-login').hidden = false;
|
| -
|
| - var f = $('gaia-login-form');
|
| - var email = $('gaia-email');
|
| - var passwd = $('gaia-passwd');
|
| - if (f) {
|
| - if (args.user != undefined) {
|
| - if (email.value != args.user)
|
| - passwd.value = ""; // Reset the password field
|
| - email.value = args.user;
|
| - }
|
| -
|
| - if (!args.editable_user) {
|
| - email.hidden = true;
|
| - var span = $('email-readonly');
|
| - span.textContent = email.value;
|
| - span.hidden = false;
|
| - $('create-account-div').hidden = true;
|
| - }
|
| -
|
| - f.accessCode.disabled = true;
|
| - }
|
| -
|
| - if (1 == args.error) {
|
| - var access_code = document.getElementById('access-code');
|
| - if (access_code.value && access_code.value != "") {
|
| - $('errormsg-0-access-code').hidden = false;
|
| - this.showAccessCodeRequired_();
|
| - } else {
|
| - $('errormsg-1-password').hidden = false;
|
| - }
|
| - this.setBlurbError_(args.error_message);
|
| - } else if (3 == args.error) {
|
| - $('errormsg-0-connection').hidden = false;
|
| - this.setBlurbError_(args.error_message);
|
| - } else if (4 == args.error) {
|
| - this.showCaptcha_(args);
|
| - } else if (8 == args.error) {
|
| - this.showAccessCodeRequired_();
|
| - } else if (args.error_message) {
|
| - this.setBlurbError_(args.error_message);
|
| - }
|
| -
|
| - $('sign-in').disabled = false;
|
| - $('sign-in').value = templateData['signin'];
|
| - this.loginSetFocus_();
|
| - },
|
| -
|
| - resetErrorVisibility_: function() {
|
| - $("errormsg-0-email").hidden = true;
|
| - $("errormsg-0-password").hidden = true;
|
| - $("errormsg-1-password").hidden = true;
|
| - $("errormsg-0-connection").hidden = true;
|
| - $("errormsg-0-access-code").hidden = true;
|
| - },
|
| -
|
| - setBlurbError_: function(error_message) {
|
| - if (this.captchaChallengeActive_)
|
| - return; // No blurb in captcha challenge mode.
|
| -
|
| - if (error_message) {
|
| - $('error-signing-in').hidden = true;
|
| - $('error-custom').hidden = false;
|
| - $('error-custom').textContent = error_message;
|
| - } else {
|
| - $('error-signing-in').hidden = false;
|
| - $('error-custom').hidden = true;
|
| - }
|
| -
|
| - $('top-blurb-error').style.visibility = "visible";
|
| - $('gaia-email').disabled = false;
|
| - $('gaia-passwd').disabled = false;
|
| - },
|
| -
|
| - setErrorVisibility_: function() {
|
| - this.resetErrorVisibility_();
|
| - var f = $('gaia-login-form');
|
| - var email = $('gaia-email');
|
| - var passwd = $('gaia-passwd');
|
| - if (null == email.value || "" == email.value) {
|
| - $('errormsg-0-email').hidden = false;
|
| - this.setBlurbError_();
|
| - return false;
|
| - }
|
| - // Don't enforce password being non-blank when checking access code (it
|
| - // will have been cleared when the page was displayed).
|
| - if (f.accessCode.disabled && (null == passwd.value ||
|
| - "" == passwd.value)) {
|
| - $('errormsg-0-password').hidden = false;
|
| - this.setBlurbError_();
|
| - return false;
|
| - }
|
| - if (!f.accessCode.disabled && (null == f.accessCode.value ||
|
| - "" == f.accessCode.value)) {
|
| - $('errormsg-0-password').hidden = false;
|
| - return false;
|
| - }
|
| - return true;
|
| - },
|
| -
|
| - sendCredentialsAndClose_: function() {
|
| - if (!this.setErrorVisibility_()) {
|
| - return false;
|
| - }
|
| -
|
| - $('gaia-email').disabled = true;
|
| - $('gaia-passwd').disabled = true;
|
| - $('captcha-value').disabled = true;
|
| - $('access-code').disabled = true;
|
| -
|
| - $('logging-in-throbber').style.visibility = "visible";
|
| -
|
| - var f = $('gaia-login-form');
|
| - var email = $('gaia-email');
|
| - var passwd = $('gaia-passwd');
|
| - var result = JSON.stringify({"user" : email.value,
|
| - "pass" : passwd.value,
|
| - "captcha" : f.captchaValue.value,
|
| - "access_code" : f.accessCode.value});
|
| - $('sign-in').disabled = true;
|
| - chrome.send('SyncSetupSubmitAuth', [result]);
|
| - },
|
| -
|
| - showSuccessAndClose_: function() {
|
| - $('sign-in').value = localStrings.getString('loginSuccess');
|
| - setTimeout(this.closeOverlay_, 1600);
|
| - },
|
| -
|
| - showSuccessAndSettingUp_: function() {
|
| - $('sign-in').value = localStrings.getString('settingUp');
|
| - },
|
| -
|
| - /**
|
| - * Displays the stop syncing dialog.
|
| - * @private
|
| - */
|
| - showStopSyncingUI_: function() {
|
| - // Hide any visible children of the overlay.
|
| - var overlay = $('sync-setup-overlay');
|
| - for (var i = 0; i < overlay.children.length; i++)
|
| - overlay.children[i].hidden = true;
|
| -
|
| - // Bypass OptionsPage.navigateToPage because it will call didShowPage
|
| - // which will set its own visible page, based on the flow state.
|
| - this.visible = true;
|
| -
|
| - $('sync-setup-stop-syncing').hidden = false;
|
| - $('stop-syncing-cancel').focus();
|
| - },
|
| -
|
| - /**
|
| - * Steps into the appropriate Sync Setup error UI.
|
| - * @private
|
| - */
|
| - showErrorUI_: function() {
|
| - chrome.send('SyncSetupShowErrorUI');
|
| - },
|
| -
|
| - /**
|
| - * Determines the appropriate page to show in the Sync Setup UI based on
|
| - * the state of the Sync backend.
|
| - * @private
|
| - */
|
| - showSetupUI_: function() {
|
| - chrome.send('SyncSetupShowSetupUI');
|
| - },
|
| - };
|
| -
|
| - SyncSetupOverlay.showErrorUI = function() {
|
| - SyncSetupOverlay.getInstance().showErrorUI_();
|
| - };
|
| -
|
| - SyncSetupOverlay.showSetupUI = function() {
|
| - SyncSetupOverlay.getInstance().showSetupUI_();
|
| - };
|
| -
|
| - SyncSetupOverlay.showSyncSetupPage = function(page, args) {
|
| - SyncSetupOverlay.getInstance().showSyncSetupPage_(page, args);
|
| - };
|
| -
|
| - SyncSetupOverlay.showSuccessAndClose = function() {
|
| - SyncSetupOverlay.getInstance().showSuccessAndClose_();
|
| - };
|
| -
|
| - SyncSetupOverlay.showSuccessAndSettingUp = function() {
|
| - SyncSetupOverlay.getInstance().showSuccessAndSettingUp_();
|
| - };
|
| -
|
| - SyncSetupOverlay.showStopSyncingUI = function() {
|
| - SyncSetupOverlay.getInstance().showStopSyncingUI_();
|
| - };
|
| -
|
| - // Export
|
| - return {
|
| - SyncSetupOverlay: SyncSetupOverlay
|
| - };
|
| -});
|
|
|