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"
13 const char* FeatureStatusToString(FeatureStatus aStatus
) {
15 case FeatureStatus::Unused
:
17 case FeatureStatus::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
:
33 case FeatureStatus::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
:
63 case FeatureStatus::Blocklisted
:
65 case FeatureStatus::OptIn
:
67 case FeatureStatus::Failed
:
69 case FeatureStatus::Disabled
:
71 case FeatureStatus::Available
:
73 case FeatureStatus::ForceEnabled
:
74 return "force_enabled";
75 case FeatureStatus::CrashedOnStartup
:
76 return "crashed_on_startup";
77 case FeatureStatus::Broken
:
80 MOZ_ASSERT_UNREACHABLE("missing status case");
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
;
97 } // namespace mozilla