chromium/third_party/blink/web_tests/http/tests/inspector-protocol/network/reporting-api-filter-by-url.js

(async function(/** @type {import('test_runner').TestRunner} */ testRunner) {
  var eventCount = 0;
  var {page, dp} = await testRunner.startBlank(
      `Tests filtering of ReportingApiReportAdded events (Session 1).\n`);
  await dp.Network.enable();

  var {page: page2, dp: dp2} = await testRunner.startBlank(
    `Tests filtering of ReportingApiReportAdded events (Session 2).\n`);
  await dp2.Network.enable();

  dp.Network.onReportingApiReportAdded(event => {
    testRunner.log('Session 1:');
    testRunner.log(event.params.report);
    eventCount++;
    if (eventCount == 2) {
      testRunner.completeTest();
    }
  });

  dp2.Network.onReportingApiReportAdded(event => {
    testRunner.log('Session 2:');
    testRunner.log(event.params.report);
    eventCount++;
    if (eventCount == 2) {
      testRunner.completeTest();
    }
  });

  // first report is generated and stored
  await page.navigate(testRunner.url('resources/generate-report.php'));

  await page2.navigate(testRunner.url('resources/hello-world.html'));

  // stored report is sent
  await dp.Network.enableReportingApi({enable: true});

  // stored report does not pass filter
  await dp2.Network.enableReportingApi({enable: true});

  // second report is generated and sent to first session only
  await page.navigate(testRunner.url('resources/generate-report.php'));

  await page.navigate(testRunner.url('resources/hello-world.html'));
})