chromium/third_party/blink/web_tests/http/tests/inspector-protocol/issues/stylesheet-loading-issues.js

(async function(/** @type {import('test_runner').TestRunner} */ testRunner) {
  const {page, session, dp} =
      await testRunner.startBlank('Report stylesheet loading failures');

  await dp.DOM.enable();
  await dp.Network.enable();
  await dp.CSS.enable();
  await dp.Page.enable();
  await dp.Audits.enable();

  session.navigate('../resources/stylesheet-loading-issues.html');

  const issues = [];
  await dp.Audits.onceIssueAdded(e => {
    const {params: {issue}} = e;
    const {code, details: {stylesheetLoadingIssueDetails}} = issue;
    if (code === 'StylesheetLoadingIssue') {
      issues.push(stylesheetLoadingIssueDetails);
    }
    return issues.length === 6;
  });

  function issueComparator(i) {
    return `${i.styleSheetLoadingIssueReason}:${i.sourceCodeLocation.url}:${
        i.sourceCodeLocation.lineNumber}:${i.sourceCodeLocation.columnNumber}:${
        i.failedRequestInfo?.url}:${i.failedRequestInfo?.failureMessage}:${
        i.failedRequestInfo?.requestId}`;
  }
  issues.sort((a, b) => {
    const cmpA = issueComparator(a), cmpB = issueComparator(b);
    return cmpA < cmpB ? -1 : cmpA > cmpB ? 1 : 0;
  });

  for (const {
         styleSheetLoadingIssueReason,
         sourceCodeLocation: {url, lineNumber, columnNumber},
         failedRequestInfo
       } of issues) {
    testRunner.log(`Reason: ${styleSheetLoadingIssueReason}`);
    testRunner.log(`Location: ${url} @ ${lineNumber + 1}:${columnNumber + 1}`);
    if (failedRequestInfo) {
      const {url, failureMessage, requestId} = failedRequestInfo;
      testRunner.log(`Request: ${failureMessage} ${url} ${Boolean(requestId)}`);
    } else {
      testRunner.log(`Request: ${failedRequestInfo}`);
    }
  }

  testRunner.completeTest();
});