chrome-devtools-frontend
Version:
Chrome DevTools UI
91 lines (74 loc) • 3.38 kB
text/typescript
// 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 {ls} from '../common/common.js'; // eslint-disable-line rulesdir/es_modules_import
import {Issue, IssueCategory, IssueKind, MarkdownIssueDescription} from './Issue.js'; // eslint-disable-line no-unused-vars
export class TrustedWebActivityIssue extends Issue {
private issueDetails: Protocol.Audits.TrustedWebActivityIssueDetails;
constructor(issueDetails: Protocol.Audits.TrustedWebActivityIssueDetails) {
const issueCode =
[Protocol.Audits.InspectorIssueCode.TrustedWebActivityIssue, issueDetails.violationType].join('::');
super(issueCode);
this.issueDetails = issueDetails;
}
details(): Protocol.Audits.TrustedWebActivityIssueDetails {
return this.issueDetails;
}
getDescription(): MarkdownIssueDescription {
const description = issueDescriptions.get(this.issueDetails.violationType);
if (description) {
return description;
}
throw new Error('Incorrect violationType');
}
getCategory(): IssueCategory {
return IssueCategory.TrustedWebActivity;
}
primaryKey(): string {
return `${Protocol.Audits.InspectorIssueCode.TrustedWebActivityIssue}-${JSON.stringify(this.issueDetails)}`;
}
}
const twaDigitalAssetLinksFailed = {
file: 'issues/descriptions/TwaDigitalAssetLinksFailed.md',
substitutions: undefined,
issueKind: IssueKind.BreakingChange,
links: [{
link: 'https://blog.chromium.org/2020/06/changes-to-quality-criteria-for-pwas.html',
linkTitle: ls`Changes to quality criteria for PWAs using Trusted Web Activity`,
}],
};
const twaHttpError = {
file: 'issues/descriptions/TwaHttpError.md',
substitutions: undefined,
issueKind: IssueKind.BreakingChange,
links: [{
link: 'https://blog.chromium.org/2020/06/changes-to-quality-criteria-for-pwas.html',
linkTitle: ls`Changes to quality criteria for PWAs using Trusted Web Activity`,
}],
};
const twaPageUnavailableOffline = {
file: 'issues/descriptions/TwaPageUnavailableOffline.md',
substitutions: undefined,
issueKind: IssueKind.BreakingChange,
links: [{
link: 'https://blog.chromium.org/2020/06/changes-to-quality-criteria-for-pwas.html',
linkTitle: ls`Changes to quality criteria for PWAs using Trusted Web Activity`,
}],
};
export const httpViolationCode: string = [
Protocol.Audits.InspectorIssueCode.TrustedWebActivityIssue,
Protocol.Audits.TwaQualityEnforcementViolationType.KHttpError,
].join('::');
export const offlineViolationCode: string = [
Protocol.Audits.InspectorIssueCode.TrustedWebActivityIssue,
Protocol.Audits.TwaQualityEnforcementViolationType.KUnavailableOffline,
].join('::');
export const assetlinkViolationCode: string = [
Protocol.Audits.InspectorIssueCode.TrustedWebActivityIssue,
Protocol.Audits.TwaQualityEnforcementViolationType.KDigitalAssetLinks,
].join('::');
const issueDescriptions: Map<Protocol.Audits.TwaQualityEnforcementViolationType, MarkdownIssueDescription> = new Map([
[Protocol.Audits.TwaQualityEnforcementViolationType.KHttpError, twaHttpError],
[Protocol.Audits.TwaQualityEnforcementViolationType.KUnavailableOffline, twaPageUnavailableOffline],
[Protocol.Audits.TwaQualityEnforcementViolationType.KDigitalAssetLinks, twaDigitalAssetLinksFailed],
]);