UNPKG

chrome-devtools-frontend

Version:
78 lines (67 loc) 2.05 kB
// Copyright 2020 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 import {IssuesModel} from './IssuesModel.js'; // eslint-disable-line no-unused-vars export class MixedContentIssue extends Issue { /** * @param {!Protocol.Audits.MixedContentIssueDetails} issueDetails * @param {!IssuesModel} issuesModel */ constructor(issueDetails, issuesModel) { super(Protocol.Audits.InspectorIssueCode.MixedContentIssue, issuesModel); this._issueDetails = issueDetails; } /** * @param {string} resolutionStatus * @returns {!string} */ static translateStatus(resolutionStatus) { return mixedContentStatus.get(resolutionStatus) || resolutionStatus; } /** * @override * @returns {!Iterable<Protocol.Audits.AffectedRequest>} */ requests() { if (this._issueDetails.request) { return [this._issueDetails.request]; } return []; } getDetails() { return this._issueDetails; } /** * @override * @return {!IssueCategory} */ getCategory() { return IssueCategory.MixedContent; } /** * @override * @returns {!MarkdownIssueDescription} */ getDescription() { return { file: 'issues/descriptions/mixedContent.md', substitutions: undefined, issueKind: IssueKind.BreakingChange, links: [{link: 'https://web.dev/what-is-mixed-content/', linkTitle: ls`Preventing mixed content`}], }; } /** * @override */ primaryKey() { return JSON.stringify(this._issueDetails); } } /** @type {!Map<string, string>} */ const mixedContentStatus = new Map([ ['MixedContentBlocked', ls`blocked`], ['MixedContentAutomaticallyUpgraded', ls`automatically upgraded`], ['MixedContentWarning', ls`warned`], ]);