Bug 1686229 - Part3. Display a module's loading status on about:support. r=Gijs,fluent-reviewers

This patch displays the new telemetry field "loadStatus", which was introduced
by the earlier patch, on about:support.  With this information, a user can see
each of injected modules was really loaded or blocked by our DLL blocklist.

Differential Revision: https://phabricator.services.mozilla.com/D102409
This commit is contained in:
Toshihito Kikuchi 2021-01-22 21:40:46 +00:00
Родитель 7d38502496
Коммит d48622e17a
3 изменённых файлов: 21 добавлений и 0 удалений

Просмотреть файл

@ -14,6 +14,9 @@
namespace mozilla { namespace mozilla {
struct ModuleLoadInfo final { struct ModuleLoadInfo final {
// If you add a new value or change the meaning of the values, please
// update createLoadStatusElement in aboutSupport.js accordingly, which
// defines text labels of these enum values displayed on about:support.
enum class Status : uint32_t { enum class Status : uint32_t {
Loaded = 0, Loaded = 0,
Blocked, Blocked,

Просмотреть файл

@ -1189,6 +1189,16 @@ var snapshotFormatters = {
: $.new(tag, "", "", { : $.new(tag, "", "", {
"data-l10n-id": "support-third-party-modules-no-value", "data-l10n-id": "support-third-party-modules-no-value",
}); });
const createLoadStatusElement = (tag, status) => {
const labelLoadStatus = [
"support-third-party-modules-status-loaded",
"support-third-party-modules-status-blocked",
"support-third-party-modules-status-redirected",
];
return status >= 0 && status < labelLoadStatus.length
? $.new(tag, "", "", { "data-l10n-id": labelLoadStatus[status] })
: $.new(tag, status);
};
const iconUp = "chrome://global/skin/icons/arrow-up-12.svg"; const iconUp = "chrome://global/skin/icons/arrow-up-12.svg";
const iconDown = "chrome://global/skin/icons/arrow-dropdown-12.svg"; const iconDown = "chrome://global/skin/icons/arrow-dropdown-12.svg";
@ -1233,6 +1243,7 @@ var snapshotFormatters = {
// loadDurationMS can be empty (not zero) when a module is loaded // loadDurationMS can be empty (not zero) when a module is loaded
// very early in the process. processUptimeMS always has a value. // very early in the process. processUptimeMS always has a value.
createElementWithLabel("td", event.loadDurationMS), createElementWithLabel("td", event.loadDurationMS),
createLoadStatusElement("td", event.loadStatus),
]) ])
); );
} }
@ -1260,6 +1271,9 @@ var snapshotFormatters = {
$.new("th", "", "", { $.new("th", "", "", {
"data-l10n-id": "support-third-party-modules-duration", "data-l10n-id": "support-third-party-modules-duration",
}), }),
$.new("th", "", "", {
"data-l10n-id": "support-third-party-modules-status",
}),
]), ]),
innerTBody, innerTBody,
]), ]),

Просмотреть файл

@ -192,6 +192,10 @@ support-third-party-modules-thread = Thread
support-third-party-modules-base = Imagebase Address support-third-party-modules-base = Imagebase Address
support-third-party-modules-uptime = Process Uptime (ms) support-third-party-modules-uptime = Process Uptime (ms)
support-third-party-modules-duration = Loading Duration (ms) support-third-party-modules-duration = Loading Duration (ms)
support-third-party-modules-status = Status
support-third-party-modules-status-loaded = Loaded
support-third-party-modules-status-blocked = Blocked
support-third-party-modules-status-redirected = Redirected
support-third-party-modules-empty = No third-party modules were loaded. support-third-party-modules-empty = No third-party modules were loaded.
support-third-party-modules-no-value = (No value) support-third-party-modules-no-value = (No value)
support-third-party-modules-button-open = support-third-party-modules-button-open =