function updateTableRowByPageId(time, type, description, url, pageId) {
  assert(pageId > 0);
  assert(window.logTableMap[pageId]);
  pushMessagesToTopOfLogsTable(pageId);

  let currentRow = window.logTableMap[pageId];
  let expansionRow = $('expansion-row-' + pageId);
  let newRow = expansionRow.querySelector('.expansion-logs-table').insertRow(0);
  newRow.setAttribute('class', 'expand-log-message');

  // Copying data from previous row, to the first row of the expansion table.
  currentRow.querySelectorAll('td').forEach((column) => {
    let cell = column.cloneNode(true);
    let expandButton = cell.querySelector('.more-details-button');
    if (expandButton) {
      expandButton.remove();
    }
    newRow.appendChild(cell);
  });

  // Update current row with new data.
  currentRow.querySelector('.log-time').textContent = getTimeFormat(time);
  currentRow.querySelector('.log-type').textContent = type;
  let descriptionTd = currentRow.querySelector('.log-description');
  descriptionTd.textContent = description;
  addMoreDetailsButton(descriptionTd, pageId);

  let urlTd = currentRow.querySelector('.log-url');
  if (urlTd) {
    urlTd.remove();
    if (url.length > 0) {
      urlTd = createUrlElement(url);
      urlTd.setAttribute('class', 'log-url');
      currentRow.appendChild(urlTd);
    }
  }
}
/**
 * Update the |pageId| log message group. Copy the main row that contains the
 * most updated log message of the group to the expansion row, and update the
 * current main row with new info.
 *
 * @param {number!} time Millisecond since Unix Epoch representation of time.
 * @param {string!} type The message event type.
 * @param {string!} description The event message description.
 * @param {string} url The URL associated with the event.
 */
Update the |pageId| log message group. Copy the main row that contains the
most updated log message of the group to the expansion row, and update the
current main row with new info.

@param {number!} time Millisecond since Unix Epoch representation of time.
@param {string!} type The message event type.
@param {string!} description The event message description.
@param {string} url The URL associated with the event.
Update the |pageId| log message group . Copy the main row that contains the most updated log message of the group to the expansion row and update the current main row with new info . @param { number! } time Millisecond since Unix Epoch representation of time . @param { string! } type The message event type . @param { string! } description The event message description . @param { string } url The URL associated with the event .
function updateTableRowByPageId(time, type, description, url, pageId) {
  assert(pageId > 0);
  assert(window.logTableMap[pageId]);
  pushMessagesToTopOfLogsTable(pageId);
  let currentRow = window.logTableMap[pageId];
  let expansionRow = $('expansion-row-' + pageId);
  let newRow = expansionRow.querySelector('.expansion-logs-table').insertRow(0);
  newRow.setAttribute('class', 'expand-log-message');
  currentRow.querySelectorAll('td').forEach((column) => {
    let cell = column.cloneNode(true);
    let expandButton = cell.querySelector('.more-details-button');
    if (expandButton) {
      expandButton.remove();
    }
    newRow.appendChild(cell);
  });
  currentRow.querySelector('.log-time').textContent = getTimeFormat(time);
  currentRow.querySelector('.log-type').textContent = type;
  let descriptionTd = currentRow.querySelector('.log-description');
  descriptionTd.textContent = description;
  addMoreDetailsButton(descriptionTd, pageId);
  let urlTd = currentRow.querySelector('.log-url');
  if (urlTd) {
    urlTd.remove();
    if (url.length > 0) {
      urlTd = createUrlElement(url);
      urlTd.setAttribute('class', 'log-url');
      currentRow.appendChild(urlTd);
    }
  }
}
function updateTableRowByPageId ( time , type , description , url , pageId ) { assert ( pageId > 0 ) ; assert ( window . logTableMap [ pageId ] ) ; pushMessagesToTopOfLogsTable ( pageId ) ; let currentRow = window . logTableMap [ pageId ] ; let expansionRow = $ ( 'expansion-row-' + pageId ) ; let newRow = expansionRow . querySelector ( '.expansion-logs-table' ) . insertRow ( 0 ) ; newRow . setAttribute ( 'class' , 'expand-log-message' ) ; currentRow . querySelectorAll ( 'td' ) . forEach ( ( column ) => { let cell = column . cloneNode ( true ) ; let expandButton = cell . querySelector ( '.more-details-button' ) ; if ( expandButton ) { expandButton . remove ( ) ; } newRow . appendChild ( cell ) ; } ) ; currentRow . querySelector ( '.log-time' ) . textContent = getTimeFormat ( time ) ; currentRow . querySelector ( '.log-type' ) . textContent = type ; let descriptionTd = currentRow . querySelector ( '.log-description' ) ; descriptionTd . textContent = description ; addMoreDetailsButton ( descriptionTd , pageId ) ; let urlTd = currentRow . querySelector ( '.log-url' ) ; if ( urlTd ) { urlTd . remove ( ) ; if ( url . length > 0 ) { urlTd = createUrlElement ( url ) ; urlTd . setAttribute ( 'class' , 'log-url' ) ; currentRow . appendChild ( urlTd ) ; } } }
Update the |pageId| log message group.
Update the |pageId| log message group .
// Copying data from previous row, to the first row of the expansion table. // Update current row with new data.