#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_MEDIA_CDM_RESULT_PROMISE_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_MEDIA_CDM_RESULT_PROMISE_H_
#include <stdint.h>
#include "base/metrics/histogram_functions.h"
#include "base/time/time.h"
#include "third_party/blink/public/platform/web_content_decryption_module_result.h"
#include "third_party/blink/public/platform/web_string.h"
#include "third_party/blink/renderer/platform/media/cdm_result_promise_helper.h"
#include "third_party/blink/renderer/platform/platform_export.h"
namespace blink {
const char kTimeToResolveUmaPrefix[] = …;
const char kTimeToRejectUmaPrefix[] = …;
template <typename... T>
class PLATFORM_EXPORT CdmResultPromise
: public media::CdmPromiseTemplate<T...> { … };
template <typename... T>
CdmResultPromise<T...>::CdmResultPromise(
const WebContentDecryptionModuleResult& result,
const std::string& key_system_uma_prefix,
const std::string& uma_name)
: … { … }
template <typename... T>
CdmResultPromise<T...>::~CdmResultPromise() { … }
template <>
inline void CdmResultPromise<>::resolve() { … }
template <>
inline void CdmResultPromise<media::CdmKeyInformation::KeyStatus>::resolve(
const media::CdmKeyInformation::KeyStatus& key_status) { … }
template <typename... T>
void CdmResultPromise<T...>::reject(media::CdmPromise::Exception exception_code,
uint32_t system_code,
const std::string& error_message) { … }
}
#endif