message: chore: add stacks and url context to Puppeteer.Page error events
  Adds page URLs and error stacks to all error events tracked by our Puppeteer.Page wrapper in e2e tests.
diff: @@ -8,19 +8,24 @@ import { DEFAULT_NEW_PAGE_WAIT_TIMEOUT_MS, DEFAULT_PAGE_ELEMENT_WAIT_TIMEOUT_MS
  export class Page {
  constructor(private readonly underlyingPage: Puppeteer.Page) {
  + function forceEventFailure(eventDescription: string): void {
  + forceTestFailure(`Puppeteer.Page '${underlyingPage.url()}' emitted ${eventDescription}`);
  + }
  +
  underlyingPage.on('error', error => {
  - forceTestFailure(`error occurred - ${error.message}`);
  + forceEventFailure(`'error' with stack: ${error.stack}`);
  });
  -
  underlyingPage.on('pageerror', error => {
  - forceTestFailure(`Unhandled pageerror (console.error) emitted from page '${underlyingPage.url()}': ${error}`);
  + forceEventFailure(`'pageerror' (console.error) with stack: ${error.stack}`);
  });
  underlyingPage.on('requestfailed', request => {
  - forceTestFailure(`request failed - ${request.failure().errorText}, ${request.url()}`);
  + forceEventFailure(`'requestfailed' from '${request.url()}' with errorText: ${request.failure().errorText}`);
  });
  underlyingPage.on('response', response => {
  if (response.status() >= 400) {
  - forceTestFailure(`response error - ${response.status()}, ${response.url()}`);
  + forceEventFailure(
  + `'response' from '${response.url()}' with nonsuccessful status '${response.status()}: ${response.statusText()}'`,
  + );
  }
  });
  }
  