mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-06 20:11:38 +08:00
Now that third-party delegation via markup for client hints is in M99, we need to start alerting developers where they use unsupported features. These features will be expanded and extended as more client hint features launch. https://docs.google.com/document/d/1lDEvj8tMeuvUs1HTTqL-44YiI-7ljeQkusM_WhUfIeE/edit This CL is a part of a series: (1) Implement devtools issue {CHROMIUM} (2) Update devtools protocol {DEVTOOLS} (3) Implement devtools issue {DEVTOOLS} Bug: 1219359 Change-Id: Ia8aaf05b98894fd32f5aad8f973fcdf774e1634c Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3343149 Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Rowan Merewood <merewood@chromium.org> Commit-Queue: Ari Chivukula <arichiv@chromium.org> Auto-Submit: Ari Chivukula <arichiv@chromium.org>
96 lines
3.1 KiB
TypeScript
96 lines
3.1 KiB
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 * as i18n from '../../core/i18n/i18n.js';
|
|
import type * as SDK from '../../core/sdk/sdk.js';
|
|
import * as Protocol from '../../generated/protocol.js';
|
|
|
|
import {Issue, IssueCategory, IssueKind} from './Issue.js';
|
|
import type {MarkdownIssueDescription, LazyMarkdownIssueDescription} from './MarkdownIssueDescription.js';
|
|
import {resolveLazyDescription} from './MarkdownIssueDescription.js';
|
|
|
|
const UIStrings = {
|
|
/**
|
|
*@description Title for Client Hint specification url link
|
|
*/
|
|
clientHintsInfrastructure: 'Client Hints Infrastructure',
|
|
};
|
|
const str_ = i18n.i18n.registerUIStrings('models/issues_manager/ClientHintIssue.ts', UIStrings);
|
|
const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined, str_);
|
|
|
|
export class ClientHintIssue extends Issue {
|
|
private issueDetails: Protocol.Audits.ClientHintIssueDetails;
|
|
|
|
constructor(issueDetails: Protocol.Audits.ClientHintIssueDetails, issuesModel: SDK.IssuesModel.IssuesModel) {
|
|
super(
|
|
{
|
|
code: Protocol.Audits.InspectorIssueCode.ClientHintIssue,
|
|
umaCode: [Protocol.Audits.InspectorIssueCode.ClientHintIssue, issueDetails.clientHintIssueReason].join('::'),
|
|
},
|
|
issuesModel);
|
|
this.issueDetails = issueDetails;
|
|
}
|
|
|
|
getCategory(): IssueCategory {
|
|
return IssueCategory.Other;
|
|
}
|
|
|
|
details(): Protocol.Audits.ClientHintIssueDetails {
|
|
return this.issueDetails;
|
|
}
|
|
|
|
getDescription(): MarkdownIssueDescription|null {
|
|
const description = issueDescriptions.get(this.issueDetails.clientHintIssueReason);
|
|
if (!description) {
|
|
return null;
|
|
}
|
|
return resolveLazyDescription(description);
|
|
}
|
|
|
|
sources(): Iterable<Protocol.Audits.SourceCodeLocation> {
|
|
return [this.issueDetails.sourceCodeLocation];
|
|
}
|
|
|
|
primaryKey(): string {
|
|
return JSON.stringify(this.issueDetails);
|
|
}
|
|
|
|
getKind(): IssueKind {
|
|
return IssueKind.BreakingChange;
|
|
}
|
|
|
|
static fromInspectorIssue(issuesModel: SDK.IssuesModel.IssuesModel, inspectorIssue: Protocol.Audits.InspectorIssue):
|
|
ClientHintIssue[] {
|
|
const details = inspectorIssue.details.clientHintIssueDetails;
|
|
if (!details) {
|
|
console.warn('Client Hint issue without details received.');
|
|
return [];
|
|
}
|
|
return [new ClientHintIssue(details, issuesModel)];
|
|
}
|
|
}
|
|
|
|
const issueDescriptions: Map<Protocol.Audits.ClientHintIssueReason, LazyMarkdownIssueDescription> = new Map([
|
|
[
|
|
Protocol.Audits.ClientHintIssueReason.MetaTagAllowListInvalidOrigin,
|
|
{
|
|
file: 'clientHintMetaTagAllowListInvalidOrigin.md',
|
|
links: [{
|
|
link: 'https://wicg.github.io/client-hints-infrastructure/',
|
|
linkTitle: i18nLazyString(UIStrings.clientHintsInfrastructure),
|
|
}],
|
|
},
|
|
],
|
|
[
|
|
Protocol.Audits.ClientHintIssueReason.MetaTagModifiedHTML,
|
|
{
|
|
file: 'clientHintMetaTagModifiedHTML.md',
|
|
links: [{
|
|
link: 'https://wicg.github.io/client-hints-infrastructure/',
|
|
linkTitle: i18nLazyString(UIStrings.clientHintsInfrastructure),
|
|
}],
|
|
},
|
|
],
|
|
]);
|