mirror of
https://github.com/HeyPuter/firefox.git
synced 2026-11-13 20:14:57 -10:00
Requests can be blocked because of many reasons, but the label was always saying it was because of DevTools. Update the label so we follow what's done in Netmonitor. Differential Revision: https://phabricator.services.mozilla.com/D210471
79 lines
2.3 KiB
JavaScript
79 lines
2.3 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
"use strict";
|
|
|
|
const PropTypes = require("resource://devtools/client/shared/vendor/react-prop-types.js");
|
|
const dom = require("resource://devtools/client/shared/vendor/react-dom-factories.js");
|
|
const {
|
|
l10n,
|
|
} = require("resource://devtools/client/webconsole/utils/messages.js");
|
|
const {
|
|
MESSAGE_TYPE,
|
|
} = require("resource://devtools/client/webconsole/constants.js");
|
|
|
|
const l10nLevels = {
|
|
error: "level.error",
|
|
warn: "level.warn",
|
|
info: "level.info",
|
|
log: "level.log",
|
|
debug: "level.debug",
|
|
jstracer: "level.jstracer",
|
|
};
|
|
|
|
// Store common icons so they can be used without recreating the element
|
|
// during render.
|
|
const CONSTANT_ICONS = Object.entries(l10nLevels).reduce(
|
|
(acc, [key, l10nLabel]) => {
|
|
acc[key] = getIconElement(l10nLabel);
|
|
return acc;
|
|
},
|
|
{}
|
|
);
|
|
|
|
function getIconElement(level, type, title) {
|
|
title = title || l10n.getStr(l10nLevels[level] || level);
|
|
const classnames = ["icon"];
|
|
|
|
if (type === "logPoint") {
|
|
title = l10n.getStr("logpoint.title");
|
|
classnames.push("logpoint");
|
|
} else if (type === "blockedReason") {
|
|
title = l10n.getStr("blockedrequest.label2");
|
|
} else if (type === MESSAGE_TYPE.COMMAND) {
|
|
title = l10n.getStr("command.title");
|
|
} else if (type === MESSAGE_TYPE.RESULT) {
|
|
title = l10n.getStr("result.title");
|
|
} else if (level == "level.jstracer" || type == MESSAGE_TYPE.JSTRACER) {
|
|
// Actual traces uses JSTracerTrace objects and `level` attribute,
|
|
// while log messages relating to tracing uses ConsoleApiCall, where level == "log" and so rather uses `type` attribute.
|
|
classnames.push("logtrace");
|
|
}
|
|
|
|
return dom.span({
|
|
className: classnames.join(" "),
|
|
title,
|
|
"aria-live": "off",
|
|
});
|
|
}
|
|
|
|
MessageIcon.displayName = "MessageIcon";
|
|
MessageIcon.propTypes = {
|
|
level: PropTypes.string.isRequired,
|
|
type: PropTypes.string,
|
|
title: PropTypes.string,
|
|
};
|
|
|
|
function MessageIcon(props) {
|
|
const { level, type, title } = props;
|
|
|
|
if (type) {
|
|
return getIconElement(level, type, title);
|
|
}
|
|
|
|
return CONSTANT_ICONS[level] || getIconElement(level);
|
|
}
|
|
|
|
module.exports = MessageIcon;
|