| Index: media/base/cdm_promise.h
|
| diff --git a/media/base/cdm_promise.h b/media/base/cdm_promise.h
|
| index ad1d196ad6e003f2fcb86be2c8ec6ae07e51db35..2d45cf2a15db55d81ce68a81f63453d0c4946e42 100644
|
| --- a/media/base/cdm_promise.h
|
| +++ b/media/base/cdm_promise.h
|
| @@ -22,6 +22,19 @@ namespace media {
|
| // This is only the base class, as parameter to resolve() varies.
|
| class MEDIA_EXPORT CdmPromise {
|
| public:
|
| + // A superset of media::MediaKeys::Exception for UMA reporting.
|
| + enum ResultCodeForUMA {
|
| + SUCCESS,
|
| + NOT_SUPPORTED_ERROR,
|
| + INVALID_STATE_ERROR,
|
| + INVALID_ACCESS_ERROR,
|
| + QUOTA_EXCEEDED_ERROR,
|
| + UNKNOWN_ERROR,
|
| + CLIENT_ERROR,
|
| + OUTPUT_ERROR,
|
| + NUM_RESULT_CODES
|
| + };
|
| +
|
| typedef base::Callback<void(MediaKeys::Exception exception_code,
|
| uint32 system_code,
|
| const std::string& error_message)>
|
| @@ -41,11 +54,19 @@ class MEDIA_EXPORT CdmPromise {
|
| CdmPromise();
|
| CdmPromise(PromiseRejectedCB reject_cb);
|
|
|
| + // If constructed with a |uma_name| (which must be the name of a
|
| + // CdmPromiseResult UMA), CdmPromise will report the promise result (success
|
| + // or rejection code).
|
| + CdmPromise(PromiseRejectedCB reject_cb, const std::string& uma_name);
|
| +
|
| PromiseRejectedCB reject_cb_;
|
|
|
| // Keep track of whether the promise hasn't been resolved or rejected yet.
|
| bool is_pending_;
|
|
|
| + // UMA to report result to.
|
| + std::string uma_name_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(CdmPromise);
|
| };
|
|
|
| @@ -54,6 +75,9 @@ class MEDIA_EXPORT CdmPromiseTemplate : public CdmPromise {
|
| public:
|
| CdmPromiseTemplate(base::Callback<void(const T&)> resolve_cb,
|
| PromiseRejectedCB rejected_cb);
|
| + CdmPromiseTemplate(base::Callback<void(const T&)> resolve_cb,
|
| + PromiseRejectedCB rejected_cb,
|
| + const std::string& uma_name);
|
| virtual ~CdmPromiseTemplate();
|
| virtual void resolve(const T& result);
|
|
|
| @@ -69,6 +93,9 @@ class MEDIA_EXPORT CdmPromiseTemplate<void> : public CdmPromise {
|
| public:
|
| CdmPromiseTemplate(base::Callback<void(void)> resolve_cb,
|
| PromiseRejectedCB rejected_cb);
|
| + CdmPromiseTemplate(base::Callback<void(void)> resolve_cb,
|
| + PromiseRejectedCB rejected_cb,
|
| + const std::string& uma_name);
|
| virtual ~CdmPromiseTemplate();
|
| virtual void resolve();
|
|
|
|
|