projects
/
platform
/
framework
/
web
/
crosswalk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git]
/
src
/
media
/
base
/
cdm_promise.h
diff --git
a/src/media/base/cdm_promise.h
b/src/media/base/cdm_promise.h
index
ad1d196
..
14f79f8
100644
(file)
--- a/
src/media/base/cdm_promise.h
+++ b/
src/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:
// 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)>
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);
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_;
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);
};
DISALLOW_COPY_AND_ASSIGN(CdmPromise);
};
@@
-54,9
+75,18
@@
class MEDIA_EXPORT CdmPromiseTemplate : public CdmPromise {
public:
CdmPromiseTemplate(base::Callback<void(const T&)> resolve_cb,
PromiseRejectedCB rejected_cb);
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);
virtual ~CdmPromiseTemplate();
virtual void resolve(const T& result);
+ protected:
+ // Allow subclasses to completely override the implementation.
+ // TODO(jrummell): Remove when derived class SessionLoadedPromise
+ // (in ppapi_decryptor.cc) is no longer needed.
+ CdmPromiseTemplate();
+
private:
base::Callback<void(const T&)> resolve_cb_;
private:
base::Callback<void(const T&)> resolve_cb_;
@@
-69,6
+99,9
@@
class MEDIA_EXPORT CdmPromiseTemplate<void> : public CdmPromise {
public:
CdmPromiseTemplate(base::Callback<void(void)> resolve_cb,
PromiseRejectedCB rejected_cb);
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();
virtual ~CdmPromiseTemplate();
virtual void resolve();