forked from mirrors/gecko-dev
		
	Most of this is fixing functions that in some cases return a value but then can also run to completion without returning anything. ESLint 2 catches this where previous versions didn't. Unless there was an obvious other choice I just made these functions return undefined at the end which is effectively what already happens. MozReview-Commit-ID: DEskVIjiKDM --HG-- extra : rebase_source : 07ba1d14655f5d761624b105ef025ec88323d4d5 extra : histedit_source : 9e5ab54ce1b1a5ee1f0fb143f8d1450522455e3b
		
			
				
	
	
		
			236 lines
		
	
	
	
		
			8.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			236 lines
		
	
	
	
		
			8.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* This Source Code Form is subject to the terms of the Mozilla Public
 | 
						|
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
						|
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | 
						|
 | 
						|
var Ci = Components.interfaces;
 | 
						|
var Cc = Components.classes;
 | 
						|
 | 
						|
Components.utils.import("resource://services-sync/main.js");
 | 
						|
Components.utils.import("resource://gre/modules/Services.jsm");
 | 
						|
 | 
						|
var Change = {
 | 
						|
  _dialog: null,
 | 
						|
  _dialogType: null,
 | 
						|
  _status: null,
 | 
						|
  _statusIcon: null,
 | 
						|
  _firstBox: null,
 | 
						|
  _secondBox: null,
 | 
						|
 | 
						|
  get _passphraseBox() {
 | 
						|
    delete this._passphraseBox;
 | 
						|
    return this._passphraseBox = document.getElementById("passphraseBox");
 | 
						|
  },
 | 
						|
 | 
						|
  get _currentPasswordInvalid() {
 | 
						|
    return Weave.Status.login == Weave.LOGIN_FAILED_LOGIN_REJECTED;
 | 
						|
  },
 | 
						|
 | 
						|
  get _updatingPassphrase() {
 | 
						|
    return this._dialogType == "UpdatePassphrase";
 | 
						|
  },
 | 
						|
 | 
						|
  onLoad: function Change_onLoad() {
 | 
						|
    /* Load labels */
 | 
						|
    let introText = document.getElementById("introText");
 | 
						|
    let introText2 = document.getElementById("introText2");
 | 
						|
    let warningText = document.getElementById("warningText");
 | 
						|
 | 
						|
    // load some other elements & info from the window
 | 
						|
    this._dialog = document.getElementById("change-dialog");
 | 
						|
    this._dialogType = window.arguments[0];
 | 
						|
    this._duringSetup = window.arguments[1];
 | 
						|
    this._status = document.getElementById("status");
 | 
						|
    this._statusIcon = document.getElementById("statusIcon");
 | 
						|
    this._statusRow = document.getElementById("statusRow");
 | 
						|
    this._firstBox = document.getElementById("textBox1");
 | 
						|
    this._secondBox = document.getElementById("textBox2");
 | 
						|
 | 
						|
    this._dialog.getButton("finish").disabled = true;
 | 
						|
    this._dialog.getButton("back").hidden = true;
 | 
						|
 | 
						|
    this._stringBundle =
 | 
						|
      Services.strings.createBundle("chrome://browser/locale/syncGenericChange.properties");
 | 
						|
 | 
						|
    switch (this._dialogType) {
 | 
						|
      case "UpdatePassphrase":
 | 
						|
      case "ResetPassphrase":
 | 
						|
        document.getElementById("textBox1Row").hidden = true;
 | 
						|
        document.getElementById("textBox2Row").hidden = true;
 | 
						|
        document.getElementById("passphraseLabel").value
 | 
						|
          = this._str("new.recoverykey.label");
 | 
						|
        document.getElementById("passphraseSpacer").hidden = false;
 | 
						|
 | 
						|
        if (this._updatingPassphrase) {
 | 
						|
          document.getElementById("passphraseHelpBox").hidden = false;
 | 
						|
          document.title = this._str("new.recoverykey.title");
 | 
						|
          introText.textContent = this._str("new.recoverykey.introText");
 | 
						|
          this._dialog.getButton("finish").label
 | 
						|
            = this._str("new.recoverykey.acceptButton");
 | 
						|
        }
 | 
						|
        else {
 | 
						|
          document.getElementById("generatePassphraseButton").hidden = false;
 | 
						|
          document.getElementById("passphraseBackupButtons").hidden = false;
 | 
						|
          this._passphraseBox.setAttribute("readonly", "true");
 | 
						|
          let pp = Weave.Service.identity.syncKey;
 | 
						|
          if (Weave.Utils.isPassphrase(pp))
 | 
						|
             pp = Weave.Utils.hyphenatePassphrase(pp);
 | 
						|
          this._passphraseBox.value = pp;
 | 
						|
          this._passphraseBox.focus();
 | 
						|
          document.title = this._str("change.recoverykey.title");
 | 
						|
          introText.textContent = this._str("change.synckey.introText2");
 | 
						|
          warningText.textContent = this._str("change.recoverykey.warningText");
 | 
						|
          this._dialog.getButton("finish").label
 | 
						|
            = this._str("change.recoverykey.acceptButton");
 | 
						|
          if (this._duringSetup) {
 | 
						|
            this._dialog.getButton("finish").disabled = false;
 | 
						|
          }
 | 
						|
        }
 | 
						|
        break;
 | 
						|
      case "ChangePassword":
 | 
						|
        document.getElementById("passphraseRow").hidden = true;
 | 
						|
        let box1label = document.getElementById("textBox1Label");
 | 
						|
        let box2label = document.getElementById("textBox2Label");
 | 
						|
        box1label.value = this._str("new.password.label");
 | 
						|
 | 
						|
        if (this._currentPasswordInvalid) {
 | 
						|
          document.title = this._str("new.password.title");
 | 
						|
          introText.textContent = this._str("new.password.introText");
 | 
						|
          this._dialog.getButton("finish").label
 | 
						|
            = this._str("new.password.acceptButton");
 | 
						|
          document.getElementById("textBox2Row").hidden = true;
 | 
						|
        }
 | 
						|
        else {
 | 
						|
          document.title = this._str("change.password.title");
 | 
						|
          box2label.value = this._str("new.password.confirm");
 | 
						|
          introText.textContent = this._str("change.password3.introText");
 | 
						|
          warningText.textContent = this._str("change.password.warningText");
 | 
						|
          this._dialog.getButton("finish").label
 | 
						|
            = this._str("change.password.acceptButton");
 | 
						|
        }
 | 
						|
        break;
 | 
						|
    }
 | 
						|
    document.getElementById("change-page")
 | 
						|
            .setAttribute("label", document.title);
 | 
						|
  },
 | 
						|
 | 
						|
  _clearStatus: function _clearStatus() {
 | 
						|
    this._status.value = "";
 | 
						|
    this._statusIcon.removeAttribute("status");
 | 
						|
  },
 | 
						|
 | 
						|
  _updateStatus: function Change__updateStatus(str, state) {
 | 
						|
     this._updateStatusWithString(this._str(str), state);
 | 
						|
  },
 | 
						|
 | 
						|
  _updateStatusWithString: function Change__updateStatusWithString(string, state) {
 | 
						|
    this._statusRow.hidden = false;
 | 
						|
    this._status.value = string;
 | 
						|
    this._statusIcon.setAttribute("status", state);
 | 
						|
 | 
						|
    let error = state == "error";
 | 
						|
    this._dialog.getButton("cancel").disabled = !error;
 | 
						|
    this._dialog.getButton("finish").disabled = !error;
 | 
						|
    document.getElementById("printSyncKeyButton").disabled = !error;
 | 
						|
    document.getElementById("saveSyncKeyButton").disabled = !error;
 | 
						|
 | 
						|
    if (state == "success")
 | 
						|
      window.setTimeout(window.close, 1500);
 | 
						|
  },
 | 
						|
 | 
						|
  onDialogAccept: function() {
 | 
						|
    switch (this._dialogType) {
 | 
						|
      case "UpdatePassphrase":
 | 
						|
      case "ResetPassphrase":
 | 
						|
        return this.doChangePassphrase();
 | 
						|
        break;
 | 
						|
      case "ChangePassword":
 | 
						|
        return this.doChangePassword();
 | 
						|
        break;
 | 
						|
    }
 | 
						|
    return undefined;
 | 
						|
  },
 | 
						|
 | 
						|
  doGeneratePassphrase: function () {
 | 
						|
    let passphrase = Weave.Utils.generatePassphrase();
 | 
						|
    this._passphraseBox.value = Weave.Utils.hyphenatePassphrase(passphrase);
 | 
						|
    this._dialog.getButton("finish").disabled = false;
 | 
						|
  },
 | 
						|
 | 
						|
  doChangePassphrase: function Change_doChangePassphrase() {
 | 
						|
    let pp = Weave.Utils.normalizePassphrase(this._passphraseBox.value);
 | 
						|
    if (this._updatingPassphrase) {
 | 
						|
      Weave.Service.identity.syncKey = pp;
 | 
						|
      if (Weave.Service.login()) {
 | 
						|
        this._updateStatus("change.recoverykey.success", "success");
 | 
						|
        Weave.Service.persistLogin();
 | 
						|
        Weave.Service.scheduler.delayedAutoConnect(0);
 | 
						|
      }
 | 
						|
      else {
 | 
						|
        this._updateStatus("new.passphrase.status.incorrect", "error");
 | 
						|
      }
 | 
						|
    }
 | 
						|
    else {
 | 
						|
      this._updateStatus("change.recoverykey.label", "active");
 | 
						|
 | 
						|
      if (Weave.Service.changePassphrase(pp))
 | 
						|
        this._updateStatus("change.recoverykey.success", "success");
 | 
						|
      else
 | 
						|
        this._updateStatus("change.recoverykey.error", "error");
 | 
						|
    }
 | 
						|
 | 
						|
    return false;
 | 
						|
  },
 | 
						|
 | 
						|
  doChangePassword: function Change_doChangePassword() {
 | 
						|
    if (this._currentPasswordInvalid) {
 | 
						|
      Weave.Service.identity.basicPassword = this._firstBox.value;
 | 
						|
      if (Weave.Service.login()) {
 | 
						|
        this._updateStatus("change.password.status.success", "success");
 | 
						|
        Weave.Service.persistLogin();
 | 
						|
      }
 | 
						|
      else {
 | 
						|
        this._updateStatus("new.password.status.incorrect", "error");
 | 
						|
      }
 | 
						|
    }
 | 
						|
    else {
 | 
						|
      this._updateStatus("change.password.status.active", "active");
 | 
						|
 | 
						|
      if (Weave.Service.changePassword(this._firstBox.value))
 | 
						|
        this._updateStatus("change.password.status.success", "success");
 | 
						|
      else
 | 
						|
        this._updateStatus("change.password.status.error", "error");
 | 
						|
    }
 | 
						|
 | 
						|
    return false;
 | 
						|
  },
 | 
						|
 | 
						|
  validate: function (event) {
 | 
						|
    let valid = false;
 | 
						|
    let errorString = "";
 | 
						|
 | 
						|
    if (this._dialogType == "ChangePassword") {
 | 
						|
      if (this._currentPasswordInvalid)
 | 
						|
        [valid, errorString] = gSyncUtils.validatePassword(this._firstBox);
 | 
						|
      else
 | 
						|
        [valid, errorString] = gSyncUtils.validatePassword(this._firstBox, this._secondBox);
 | 
						|
    }
 | 
						|
    else {
 | 
						|
      if (!this._updatingPassphrase)
 | 
						|
        return;
 | 
						|
 | 
						|
      valid = this._passphraseBox.value != "";
 | 
						|
    }
 | 
						|
 | 
						|
    if (errorString == "")
 | 
						|
      this._clearStatus();
 | 
						|
    else
 | 
						|
      this._updateStatusWithString(errorString, "error");
 | 
						|
 | 
						|
    this._statusRow.hidden = valid;
 | 
						|
    this._dialog.getButton("finish").disabled = !valid;
 | 
						|
  },
 | 
						|
 | 
						|
  _str: function Change__string(str) {
 | 
						|
    return this._stringBundle.GetStringFromName(str);
 | 
						|
  }
 | 
						|
};
 |