@quick-game/cli
Version:
Command line interface for rapid qg development
171 lines • 10.7 kB
JavaScript
// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import { Issue, IssueCategory, IssueKind } from './Issue.js';
function getIssueCode(details) {
switch (details.violationType) {
case "PermissionPolicyDisabled" /* Protocol.Audits.AttributionReportingIssueType.PermissionPolicyDisabled */:
return "AttributionReportingIssue::PermissionPolicyDisabled" /* IssueCode.PermissionPolicyDisabled */;
case "UntrustworthyReportingOrigin" /* Protocol.Audits.AttributionReportingIssueType.UntrustworthyReportingOrigin */:
return "AttributionReportingIssue::UntrustworthyReportingOrigin" /* IssueCode.UntrustworthyReportingOrigin */;
case "InsecureContext" /* Protocol.Audits.AttributionReportingIssueType.InsecureContext */:
return "AttributionReportingIssue::InsecureContext" /* IssueCode.InsecureContext */;
case "InvalidHeader" /* Protocol.Audits.AttributionReportingIssueType.InvalidHeader */:
return "AttributionReportingIssue::InvalidRegisterSourceHeader" /* IssueCode.InvalidRegisterSourceHeader */;
case "InvalidRegisterTriggerHeader" /* Protocol.Audits.AttributionReportingIssueType.InvalidRegisterTriggerHeader */:
return "AttributionReportingIssue::InvalidRegisterTriggerHeader" /* IssueCode.InvalidRegisterTriggerHeader */;
case "SourceAndTriggerHeaders" /* Protocol.Audits.AttributionReportingIssueType.SourceAndTriggerHeaders */:
return "AttributionReportingIssue::SourceAndTriggerHeaders" /* IssueCode.SourceAndTriggerHeaders */;
case "SourceIgnored" /* Protocol.Audits.AttributionReportingIssueType.SourceIgnored */:
return "AttributionReportingIssue::SourceIgnored" /* IssueCode.SourceIgnored */;
case "TriggerIgnored" /* Protocol.Audits.AttributionReportingIssueType.TriggerIgnored */:
return "AttributionReportingIssue::TriggerIgnored" /* IssueCode.TriggerIgnored */;
case "OsSourceIgnored" /* Protocol.Audits.AttributionReportingIssueType.OsSourceIgnored */:
return "AttributionReportingIssue::OsSourceIgnored" /* IssueCode.OsSourceIgnored */;
case "OsTriggerIgnored" /* Protocol.Audits.AttributionReportingIssueType.OsTriggerIgnored */:
return "AttributionReportingIssue::OsTriggerIgnored" /* IssueCode.OsTriggerIgnored */;
case "InvalidRegisterOsSourceHeader" /* Protocol.Audits.AttributionReportingIssueType.InvalidRegisterOsSourceHeader */:
return "AttributionReportingIssue::InvalidRegisterOsSourceHeader" /* IssueCode.InvalidRegisterOsSourceHeader */;
case "InvalidRegisterOsTriggerHeader" /* Protocol.Audits.AttributionReportingIssueType.InvalidRegisterOsTriggerHeader */:
return "AttributionReportingIssue::InvalidRegisterOsTriggerHeader" /* IssueCode.InvalidRegisterOsTriggerHeader */;
case "WebAndOsHeaders" /* Protocol.Audits.AttributionReportingIssueType.WebAndOsHeaders */:
return "AttributionReportingIssue::WebAndOsHeaders" /* IssueCode.WebAndOsHeaders */;
case "NavigationRegistrationWithoutTransientUserActivation" /* Protocol.Audits.AttributionReportingIssueType.NavigationRegistrationWithoutTransientUserActivation */:
return "AttributionReportingIssue::NavigationRegistrationWithoutTransientUserActivation" /* IssueCode.NavigationRegistrationWithoutTransientUserActivation */;
default:
return "AttributionReportingIssue::Unknown" /* IssueCode.Unknown */;
}
}
const structuredHeaderLink = {
link: 'https://tools.ietf.org/id/draft-ietf-httpbis-header-structure-15.html#rfc.section.4.2.2',
linkTitle: 'Structured Headers RFC',
};
export class AttributionReportingIssue extends Issue {
issueDetails;
constructor(issueDetails, issuesModel) {
super(getIssueCode(issueDetails), issuesModel);
this.issueDetails = issueDetails;
}
getCategory() {
return IssueCategory.AttributionReporting;
}
getHeaderValidatorLink(name) {
const url = new URL('https://wicg.github.io/attribution-reporting-api/validate-headers');
url.searchParams.set('header', name);
if (this.issueDetails.invalidParameter) {
url.searchParams.set('json', this.issueDetails.invalidParameter);
}
return {
link: url.toString(),
linkTitle: 'Header Validator',
};
}
getDescription() {
switch (this.code()) {
case "AttributionReportingIssue::PermissionPolicyDisabled" /* IssueCode.PermissionPolicyDisabled */:
return {
file: 'arPermissionPolicyDisabled.md',
links: [],
};
case "AttributionReportingIssue::UntrustworthyReportingOrigin" /* IssueCode.UntrustworthyReportingOrigin */:
return {
file: 'arUntrustworthyReportingOrigin.md',
links: [],
};
case "AttributionReportingIssue::InsecureContext" /* IssueCode.InsecureContext */:
return {
file: 'arInsecureContext.md',
links: [],
};
case "AttributionReportingIssue::InvalidRegisterSourceHeader" /* IssueCode.InvalidRegisterSourceHeader */:
return {
file: 'arInvalidRegisterSourceHeader.md',
links: [this.getHeaderValidatorLink('source')],
};
case "AttributionReportingIssue::InvalidRegisterTriggerHeader" /* IssueCode.InvalidRegisterTriggerHeader */:
return {
file: 'arInvalidRegisterTriggerHeader.md',
links: [this.getHeaderValidatorLink('trigger')],
};
case "AttributionReportingIssue::InvalidRegisterOsSourceHeader" /* IssueCode.InvalidRegisterOsSourceHeader */:
return {
file: 'arInvalidRegisterOsSourceHeader.md',
links: [this.getHeaderValidatorLink('os-source')],
};
case "AttributionReportingIssue::InvalidRegisterOsTriggerHeader" /* IssueCode.InvalidRegisterOsTriggerHeader */:
return {
file: 'arInvalidRegisterOsTriggerHeader.md',
links: [this.getHeaderValidatorLink('os-trigger')],
};
case "AttributionReportingIssue::SourceAndTriggerHeaders" /* IssueCode.SourceAndTriggerHeaders */:
return {
file: 'arSourceAndTriggerHeaders.md',
links: [],
};
case "AttributionReportingIssue::WebAndOsHeaders" /* IssueCode.WebAndOsHeaders */:
return {
file: 'arWebAndOsHeaders.md',
links: [],
};
case "AttributionReportingIssue::SourceIgnored" /* IssueCode.SourceIgnored */:
return {
file: 'arSourceIgnored.md',
links: [structuredHeaderLink],
};
case "AttributionReportingIssue::TriggerIgnored" /* IssueCode.TriggerIgnored */:
return {
file: 'arTriggerIgnored.md',
links: [structuredHeaderLink],
};
case "AttributionReportingIssue::OsSourceIgnored" /* IssueCode.OsSourceIgnored */:
return {
file: 'arOsSourceIgnored.md',
links: [structuredHeaderLink],
};
case "AttributionReportingIssue::OsTriggerIgnored" /* IssueCode.OsTriggerIgnored */:
return {
file: 'arOsTriggerIgnored.md',
links: [structuredHeaderLink],
};
case "AttributionReportingIssue::NavigationRegistrationWithoutTransientUserActivation" /* IssueCode.NavigationRegistrationWithoutTransientUserActivation */:
return {
file: 'arNavigationRegistrationWithoutTransientUserActivation.md',
links: [],
};
case "AttributionReportingIssue::Unknown" /* IssueCode.Unknown */:
return null;
}
}
primaryKey() {
return JSON.stringify(this.issueDetails);
}
getKind() {
switch (this.code()) {
case "AttributionReportingIssue::PermissionPolicyDisabled" /* IssueCode.PermissionPolicyDisabled */:
case "AttributionReportingIssue::UntrustworthyReportingOrigin" /* IssueCode.UntrustworthyReportingOrigin */:
case "AttributionReportingIssue::InsecureContext" /* IssueCode.InsecureContext */:
case "AttributionReportingIssue::InvalidRegisterSourceHeader" /* IssueCode.InvalidRegisterSourceHeader */:
case "AttributionReportingIssue::InvalidRegisterTriggerHeader" /* IssueCode.InvalidRegisterTriggerHeader */:
case "AttributionReportingIssue::InvalidRegisterOsSourceHeader" /* IssueCode.InvalidRegisterOsSourceHeader */:
case "AttributionReportingIssue::InvalidRegisterOsTriggerHeader" /* IssueCode.InvalidRegisterOsTriggerHeader */:
case "AttributionReportingIssue::SourceAndTriggerHeaders" /* IssueCode.SourceAndTriggerHeaders */:
case "AttributionReportingIssue::WebAndOsHeaders" /* IssueCode.WebAndOsHeaders */:
case "AttributionReportingIssue::SourceIgnored" /* IssueCode.SourceIgnored */:
case "AttributionReportingIssue::TriggerIgnored" /* IssueCode.TriggerIgnored */:
case "AttributionReportingIssue::OsSourceIgnored" /* IssueCode.OsSourceIgnored */:
case "AttributionReportingIssue::OsTriggerIgnored" /* IssueCode.OsTriggerIgnored */:
case "AttributionReportingIssue::NavigationRegistrationWithoutTransientUserActivation" /* IssueCode.NavigationRegistrationWithoutTransientUserActivation */:
case "AttributionReportingIssue::Unknown" /* IssueCode.Unknown */:
return IssueKind.PageError;
}
}
static fromInspectorIssue(issuesModel, inspectorIssue) {
const { attributionReportingIssueDetails } = inspectorIssue.details;
if (!attributionReportingIssueDetails) {
console.warn('Attribution Reporting issue without details received.');
return [];
}
return [new AttributionReportingIssue(attributionReportingIssueDetails, issuesModel)];
}
}
//# sourceMappingURL=AttributionReportingIssue.js.map