Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(251)

Unified Diff: media/base/cdm_promise.h

Issue 452643002: Add UMA reporting to CdmPromise. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698