#include "ash/lobster/lobster_metrics_recorder.h"
#include "ash/public/cpp/lobster/lobster_enums.h"
#include "ash/public/cpp/lobster/lobster_metrics_state_enums.h"
#include "base/metrics/histogram_functions.h"
namespace ash {
void RecordLobsterState(LobsterMetricState state) {
base::UmaHistogramEnumeration("Ash.Lobster.State", state);
}
void RecordLobsterBlockedReason(LobsterSystemCheck failed_reason) {
switch (failed_reason) {
case LobsterSystemCheck::kMinValue:
return;
case LobsterSystemCheck::kInvalidConsent:
RecordLobsterState(LobsterMetricState::kBlockedByConsent);
return;
case LobsterSystemCheck::kInvalidAccountCapabilities:
RecordLobsterState(LobsterMetricState::kBlockedByAccountCapabilities);
return;
case LobsterSystemCheck::kInvalidAccountType:
RecordLobsterState(LobsterMetricState::kBlockedByAccountType);
return;
case LobsterSystemCheck::kInvalidRegion:
RecordLobsterState(LobsterMetricState::kBlockedByGeolocation);
return;
case LobsterSystemCheck::kInvalidInputField:
RecordLobsterState(LobsterMetricState::kBlockedByInputField);
return;
case LobsterSystemCheck::kSettingsOff:
RecordLobsterState(LobsterMetricState::kBlockedBySettings);
return;
case LobsterSystemCheck::kNoInternetConnection:
RecordLobsterState(LobsterMetricState::kBlockedByInternetConnection);
return;
case LobsterSystemCheck::kInvalidInputMethod:
RecordLobsterState(LobsterMetricState::kBlockedByInputMethod);
return;
case LobsterSystemCheck::kInvalidFeatureFlags:
RecordLobsterState(LobsterMetricState::kBlockedByFeatureFlags);
return;
case LobsterSystemCheck::kUnsupportedHardware:
RecordLobsterState(LobsterMetricState::kBlockedByHardware);
return;
case LobsterSystemCheck::kUnsupportedInKioskMode:
RecordLobsterState(LobsterMetricState::kBlockedByKioskMode);
return;
case LobsterSystemCheck::kUnsupportedFormFactor:
RecordLobsterState(LobsterMetricState::kBlockedByFormFactor);
return;
case LobsterSystemCheck::kUnsupportedPolicy:
RecordLobsterState(LobsterMetricState::kBlockedByPolicy);
return;
case LobsterSystemCheck::kForcedDisabledOnManagedUsers:
return;
}
}
}