function processNewCommand_(e) {
    // Beep on backspace and no value on command line.
    if (!this.value && e.keyCode == 8) {
      bell_.stop();
      bell_.play();
      return;
    }

    if (e.keyCode == 9) { // Tab
      e.preventDefault();
      // TODO(ericbidelman): Implement tab suggest.
    } else if (e.keyCode == 13) { // enter

      // Save shell history.
      if (this.value) {
        history_[history_.length] = this.value;
        histpos_ = history_.length;
      }

      // Duplicate current input and append to output section.
      var line = this.parentNode.parentNode.cloneNode(true);
      line.removeAttribute('id');
      line.classList.add('line');
      var input = line.querySelector('input.cmdline');
      input.autofocus = false;
      input.readOnly = true;
      output_.appendChild(line);

      // Send the command!
      if (window.tcpClient) {
        tcpClient.sendMessage(this.value);
      }

      this.value = ''; // Clear/setup line for next input.
    }
  }
Takes the current command and processes it. Stores it
in the history and sends it over TCP to the remote side

@param {Event} e The keyboard event (likely enter / return)