addNewKey(userId, pgpKeys) {
    var keyringTable = this.getElement().querySelector('table');

    // escaped according to http://www.w3.org/TR/CSS21/syndata.html#characters
    var userIdSel = 'tr[data-user-id="' +
        userId.replace(/[^A-Za-z0-9_\u00A0-\uFFFF-]/g, function(c) {
          return '\\' + c;
        }) + '"]';

    goog.dom.removeNode(keyringTable.querySelector(userIdSel));

    if (keyringTable.textContent ==
        chrome.i18n.getMessage('keyMgmtNoneLabel')) {
      keyringTable.removeChild(keyringTable.firstElementChild);
    }

    var tr = goog.dom.createElement(goog.dom.TagName.TR);
    tr.dataset.userId = userId;
    goog.soy.renderElement(tr, templates.keyEntry, {
      keyMeta: {'userId': userId, 'keys': this.getKeysDescription_(pgpKeys)},
      exportLabel: chrome.i18n.getMessage('keyMgmtExportLabel'),
      removeLabel: chrome.i18n.getMessage('keyMgmtRemoveLabel')
    });
    keyringTable.appendChild(tr);
    this.keyringMgmtControls_.refreshOptions();
  }
Renders a new PGP key into the UI.
@param {string} userId The ID of the key.
@param {Array} pgpKeys The keys and subkeys to render into the UI.