performOuterFrameReconnect_(innerFrameMigrationSupported) {
    G_testRunner.log('Closing channel');
    this.channel_.close();

    // If there is another channel still open, the native transport's global
    // postMessage listener will still be active.  This will mean that messages
    // being sent to the now-closed channel will still be received and
    // delivered, such as transport service traffic from its previous
    // correspondent in the other frame.  Ensure these messages don't cause
    // exceptions.
    try {
      this.channel_.xpcDeliver(xpc.TRANSPORT_SERVICE, 'payload');
    } catch (e) {
      fail('Should not throw exception');
    }

    G_testRunner.log('Reconnecting outer frame');
    this.reinitializePromises_();
    this.innerFrameResponseReceived_.promise.then(
        this.checkChannelNames_, null, this);
    if (innerFrameMigrationSupported) {
      this.outerFrameResponseReceived_.promise.then(
          this.migrateInnerFrame_, null, this);
    }
    this.channel_.connect(goog.bind(this.outerFrameConnected_, this));
  }
Get the outer frame to reconnect, and repeat the echo test.
@private