code: function InstallExtensionDialog(installer, _isUpdate) {
          this._installer = installer;
          this._state = STATE_CLOSED;
          this._installResult = null;
          this._isUpdate = _isUpdate;
  
          // Timeout before we allow user to leave STATE_INSTALL_CANCELING without waiting for a resolution
          // (per-instance so we can poke it for unit testing)
          this._cancelTimeout = 10 * 1000;
      }
docs: Creates a new extension installer dialog.
  @constructor
  @param {{install: function(url), cancel: function()}} installer The installer backend to use.