Index: media/blink/new_session_cdm_result_promise.cc |
diff --git a/media/blink/new_session_cdm_result_promise.cc b/media/blink/new_session_cdm_result_promise.cc |
index 2f37a3e3da840c0ad9c2b6f6c75618210943dc81..fd95c889dd7b6a0c40c3214af4d4318f0530a86c 100644 |
--- a/media/blink/new_session_cdm_result_promise.cc |
+++ b/media/blink/new_session_cdm_result_promise.cc |
@@ -10,6 +10,8 @@ |
namespace media { |
+const char kTimeUMAPrefix[] = "TimeTo."; |
+ |
static blink::WebContentDecryptionModuleResult::SessionStatus ConvertStatus( |
SessionInitStatus status) { |
switch (status) { |
@@ -28,12 +30,14 @@ static blink::WebContentDecryptionModuleResult::SessionStatus ConvertStatus( |
NewSessionCdmResultPromise::NewSessionCdmResultPromise( |
const blink::WebContentDecryptionModuleResult& result, |
+ const std::string& key_system_uma_prefix, |
const std::string& uma_name, |
const SessionInitializedCB& new_session_created_cb) |
: web_cdm_result_(result), |
+ key_system_uma_prefix_(key_system_uma_prefix), |
uma_name_(uma_name), |
- new_session_created_cb_(new_session_created_cb) { |
-} |
+ new_session_created_cb_(new_session_created_cb), |
+ creation_time_(base::TimeTicks::Now()) {} |
NewSessionCdmResultPromise::~NewSessionCdmResultPromise() { |
if (!IsPromiseSettled()) |
@@ -52,7 +56,9 @@ void NewSessionCdmResultPromise::resolve(const std::string& session_id) { |
} |
MarkPromiseSettled(); |
- ReportCdmResultUMA(uma_name_, SUCCESS); |
+ ReportCdmResultUMA(key_system_uma_prefix_ + uma_name_, SUCCESS); |
+ ReportTimeUMA(key_system_uma_prefix_ + kTimeUMAPrefix + uma_name_, |
+ base::TimeTicks::Now() - creation_time_); |
web_cdm_result_.completeWithSession(ConvertStatus(status)); |
} |