Bug 1885602 - Part 2: Add a MozillaAccountMenuButton composable for the menu redesign...
[gecko.git] / gfx / src / gfxTelemetry.cpp
blobf434164c4035bfda88244112fcc9252c0972d7ea
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include "gfxTelemetry.h"
8 #include "mozilla/Assertions.h"
10 namespace mozilla {
11 namespace gfx {
13 const char* FeatureStatusToString(FeatureStatus aStatus) {
14 switch (aStatus) {
15 case FeatureStatus::Unused:
16 return "unused";
17 case FeatureStatus::Unavailable:
18 return "unavailable";
19 case FeatureStatus::UnavailableInSafeMode:
20 return "unavailable-in-safe-mode";
21 case FeatureStatus::UnavailableNoGpuProcess:
22 return "unavailable-no-gpu-process";
23 case FeatureStatus::UnavailableNoHwCompositing:
24 return "unavailable-no-hw-compositing";
25 case FeatureStatus::UnavailableNotBuilt:
26 return "unavailable-not-built";
27 case FeatureStatus::UnavailableNoAngle:
28 return "unavailable-no-angle";
29 case FeatureStatus::UnavailableNoWebRender:
30 return "unavailable-no-webrender";
31 case FeatureStatus::CrashedInHandler:
32 return "crashed";
33 case FeatureStatus::Blocked:
34 return "blocked";
35 case FeatureStatus::BlockedDeviceUnknown:
36 return "blocked-device-unknown";
37 case FeatureStatus::BlockedDeviceTooOld:
38 return "blocked-device-too-old";
39 case FeatureStatus::BlockedVendorUnsupported:
40 return "blocked-vendor-unsupported";
41 case FeatureStatus::BlockedHasBattery:
42 return "blocked-has-battery";
43 case FeatureStatus::BlockedScreenTooLarge:
44 return "blocked-screen-too-large";
45 case FeatureStatus::BlockedScreenUnknown:
46 return "blocked-screen-unknown";
47 case FeatureStatus::BlockedNoGfxInfo:
48 return "blocked-no-gfx-info";
49 case FeatureStatus::BlockedOverride:
50 return "blocked-override";
51 case FeatureStatus::BlockedReleaseChannelIntel:
52 return "blocked-release-channel-intel";
53 case FeatureStatus::BlockedReleaseChannelAMD:
54 return "blocked-release-channel-amd";
55 case FeatureStatus::BlockedReleaseChannelNvidia:
56 return "blocked-release-channel-nvidia";
57 case FeatureStatus::BlockedReleaseChannelBattery:
58 return "blocked-release-channel-battery";
59 case FeatureStatus::BlockedReleaseChannelAndroid:
60 return "blocked-release-channel-android";
61 case FeatureStatus::Denied:
62 return "denied";
63 case FeatureStatus::Blocklisted:
64 return "blocklisted";
65 case FeatureStatus::OptIn:
66 return "opt-in";
67 case FeatureStatus::Failed:
68 return "failed";
69 case FeatureStatus::Disabled:
70 return "disabled";
71 case FeatureStatus::Available:
72 return "available";
73 case FeatureStatus::ForceEnabled:
74 return "force_enabled";
75 case FeatureStatus::CrashedOnStartup:
76 return "crashed_on_startup";
77 case FeatureStatus::Broken:
78 return "broken";
79 default:
80 MOZ_ASSERT_UNREACHABLE("missing status case");
81 return "unknown";
85 bool IsFeatureStatusFailure(FeatureStatus aStatus) {
86 return !(aStatus == FeatureStatus::Unused ||
87 aStatus == FeatureStatus::Available ||
88 aStatus == FeatureStatus::ForceEnabled);
91 bool IsFeatureStatusSuccess(FeatureStatus aStatus) {
92 return aStatus == FeatureStatus::Available ||
93 aStatus == FeatureStatus::ForceEnabled;
96 } // namespace gfx
97 } // namespace mozilla