static constructResults(coopHeaders) {
    const rawCoop = [...coopHeaders];
    const allowedDirectives = [
      'unsafe-none', 'same-origin-allow-popups', 'same-origin',
      'noopener-allow-popups',
    ];
    const violations = [];
    const syntax = [];

    if (!rawCoop.length) {
      violations.push({
        severity: str_(i18n.UIStrings.itemSeverityHigh),
        description: str_(UIStrings.noCoop),
        directive: undefined,
      });
    }

    for (const actualDirective of coopHeaders) {
      // If there is a directive that's not an official COOP directive.
      if (!allowedDirectives.includes(actualDirective)) {
        syntax.push({
          severity: str_(i18n.UIStrings.itemSeverityLow),
          description: str_(UIStrings.invalidSyntax),
          directive: actualDirective,
        });
      }
    }

    const results = [
      ...violations.map(
          f => this.findingToTableItem(
              f.directive, f.description,
              str_(i18n.UIStrings.itemSeverityHigh))),
      ...syntax.map(
          f => this.findingToTableItem(
              f.directive, f.description,
              str_(i18n.UIStrings.itemSeverityLow))),
    ];

    return {score: violations.length || syntax.length ? 0 : 1, results};
  }
@param {string[]} coopHeaders
@return {{score: number, results: LH.Audit.Details.TableItem[]}}