gfxTelemetry.cpp (3487B)
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" 7 8 #include "mozilla/Assertions.h" 9 10 namespace mozilla { 11 namespace gfx { 12 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"; 82 } 83 } 84 85 bool IsFeatureStatusFailure(FeatureStatus aStatus) { 86 return !(aStatus == FeatureStatus::Unused || 87 aStatus == FeatureStatus::Available || 88 aStatus == FeatureStatus::ForceEnabled); 89 } 90 91 bool IsFeatureStatusSuccess(FeatureStatus aStatus) { 92 return aStatus == FeatureStatus::Available || 93 aStatus == FeatureStatus::ForceEnabled; 94 } 95 96 } // namespace gfx 97 } // namespace mozilla