constructor(
      exportCallback, importCallback, updatePassphraseCallback,
      opt_restoreKeyringCallback) {
    super();

    /**
     * The PGP context used by the extension.
     * @type {?e2e.openpgp.Context}
     * @private
     */
    this.pgpContext_ = null;

    /**
     * The callback to invoke when the keyring is to be exported.
     * @type {function()}
     * @private
     */
    this.exportCallback_ = exportCallback;

    /**
     * The callback to invoke when an existing keyring is to be imported.
     * @type {function(!File)}
     * @private
     */
    this.importCallback_ = importCallback;

    /**
     * The callback to invoke when the passphrase to the keyring is to be
     * updated.
     * @type {function(string)}
     * @private
     */
    this.updatePassphraseCallback_ = updatePassphraseCallback;

    /**
     * The callback to invoke when the keyring is restored.
     * @type {function(string)}
     * @private
     */
    this.restoreKeyringCallback_ =
        opt_restoreKeyringCallback || goog.nullFunction;

    /**
     * Executor for the End-to-End actions.
     * @type {!e2e.ext.actions.Executor}
     * @private
     */
    this.actionExecutor_ = new e2e.ext.actions.Executor();
  }
@param {function()} exportCallback The callback to invoke when the keyring
    is to be exported.
@param {function(!File)} importCallback The callback to invoke when an
    existing keyring is to be imported.
@param {function(string)} updatePassphraseCallback The callback to invoke
    when the passphrase to the keyring is to be updated.
@param {function(string)=} opt_restoreKeyringCallback The callback to
    invoke when the keyring is restored.