constructor(targetManager) {
    super();

    /** @type {LH.Gatherer.Driver['targetManager']} */
    this._targetManager = targetManager;

    /** @type {LH.Gatherer.ProtocolSession} */
    this._session = targetManager.rootSession();

    /** @param {LH.Crdp.Page.FrameNavigatedEvent} event */
    this._onFrameNavigated = event => this._frameNavigations.push(event.frame);

    /** @param {LH.Protocol.RawEventMessage} event */
    this._onProtocolMessage = event => {
      if (!this._networkRecorder) return;
      this._networkRecorder.dispatch(event);
    };
  }
@param {LH.Gatherer.Driver['targetManager']} targetManager