// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MEDIA_BLINK_CDM_RESULT_PROMISE_HELPER_H_ #define MEDIA_BLINK_CDM_RESULT_PROMISE_HELPER_H_ #include #include "media/base/media_keys.h" #include "media/blink/media_blink_export.h" #include "third_party/WebKit/public/platform/WebContentDecryptionModuleResult.h" namespace media { // A superset of media::MediaKeys::Exception for UMA reporting. These values // should never be changed as it will affect existing reporting, and must match // the values for CdmPromiseResult in tools/metrics/histograms/histograms.xml. enum CdmResultForUMA { SUCCESS = 0, NOT_SUPPORTED_ERROR = 1, INVALID_STATE_ERROR = 2, INVALID_ACCESS_ERROR = 3, QUOTA_EXCEEDED_ERROR = 4, UNKNOWN_ERROR = 5, CLIENT_ERROR = 6, OUTPUT_ERROR = 7, NUM_RESULT_CODES }; MEDIA_BLINK_EXPORT CdmResultForUMA ConvertCdmExceptionToResultForUMA(MediaKeys::Exception exception_code); MEDIA_BLINK_EXPORT blink::WebContentDecryptionModuleException ConvertCdmException(MediaKeys::Exception exception_code); MEDIA_BLINK_EXPORT void ReportCdmResultUMA(const std::string& uma_name, CdmResultForUMA result); } // namespace media #endif // MEDIA_BLINK_CDM_RESULT_PROMISE_HELPER_H_