| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/blink/cdm_session_adapter.h" | 5 #include "media/blink/cdm_session_adapter.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 | 121 |
| 122 const std::string& CdmSessionAdapter::GetKeySystem() const { | 122 const std::string& CdmSessionAdapter::GetKeySystem() const { |
| 123 return key_system_; | 123 return key_system_; |
| 124 } | 124 } |
| 125 | 125 |
| 126 const std::string& CdmSessionAdapter::GetKeySystemUMAPrefix() const { | 126 const std::string& CdmSessionAdapter::GetKeySystemUMAPrefix() const { |
| 127 DCHECK(!key_system_uma_prefix_.empty()); | 127 DCHECK(!key_system_uma_prefix_.empty()); |
| 128 return key_system_uma_prefix_; | 128 return key_system_uma_prefix_; |
| 129 } | 129 } |
| 130 | 130 |
| 131 void CdmSessionAdapter::OnCdmCreated( | 131 void CdmSessionAdapter::OnCdmCreated(const std::string& key_system, |
| 132 const std::string& key_system, | 132 base::TimeTicks start_time, |
| 133 base::TimeTicks start_time, | 133 const scoped_refptr<MediaKeys>& cdm, |
| 134 scoped_ptr<MediaKeys> cdm, | 134 const std::string& error_message) { |
| 135 const std::string& error_message) { | |
| 136 DVLOG(2) << __FUNCTION__; | 135 DVLOG(2) << __FUNCTION__; |
| 137 DCHECK(!cdm_); | 136 DCHECK(!cdm_); |
| 138 | 137 |
| 139 TRACE_EVENT_ASYNC_END2("media", "CdmSessionAdapter::CreateCdm", trace_id_, | 138 TRACE_EVENT_ASYNC_END2("media", "CdmSessionAdapter::CreateCdm", trace_id_, |
| 140 "success", (cdm ? "true" : "false"), "error_message", | 139 "success", (cdm ? "true" : "false"), "error_message", |
| 141 error_message); | 140 error_message); |
| 142 | 141 |
| 143 if (!cdm) { | 142 if (!cdm) { |
| 144 cdm_created_result_->completeWithError( | 143 cdm_created_result_->completeWithError( |
| 145 blink::WebContentDecryptionModuleExceptionNotSupportedError, 0, | 144 blink::WebContentDecryptionModuleExceptionNotSupportedError, 0, |
| 146 blink::WebString::fromUTF8(error_message)); | 145 blink::WebString::fromUTF8(error_message)); |
| 147 cdm_created_result_.reset(); | 146 cdm_created_result_.reset(); |
| 148 return; | 147 return; |
| 149 } | 148 } |
| 150 | 149 |
| 151 key_system_ = key_system; | 150 key_system_ = key_system; |
| 152 key_system_uma_prefix_ = | 151 key_system_uma_prefix_ = |
| 153 kMediaEME + GetKeySystemNameForUMA(key_system) + kDot; | 152 kMediaEME + GetKeySystemNameForUMA(key_system) + kDot; |
| 154 | 153 |
| 155 // Only report time for successful CDM creation. | 154 // Only report time for successful CDM creation. |
| 156 ReportTimeToCreateCdmUMA(base::TimeTicks::Now() - start_time); | 155 ReportTimeToCreateCdmUMA(base::TimeTicks::Now() - start_time); |
| 157 | 156 |
| 158 cdm_ = cdm.Pass(); | 157 cdm_ = cdm; |
| 159 | 158 |
| 160 cdm_created_result_->completeWithContentDecryptionModule( | 159 cdm_created_result_->completeWithContentDecryptionModule( |
| 161 new WebContentDecryptionModuleImpl(this)); | 160 new WebContentDecryptionModuleImpl(this)); |
| 162 cdm_created_result_.reset(); | 161 cdm_created_result_.reset(); |
| 163 } | 162 } |
| 164 | 163 |
| 165 void CdmSessionAdapter::OnSessionMessage( | 164 void CdmSessionAdapter::OnSessionMessage( |
| 166 const std::string& session_id, | 165 const std::string& session_id, |
| 167 MediaKeys::MessageType message_type, | 166 MediaKeys::MessageType message_type, |
| 168 const std::vector<uint8_t>& message, | 167 const std::vector<uint8_t>& message, |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 // Note: This leaks memory, which is expected behavior. | 224 // Note: This leaks memory, which is expected behavior. |
| 226 base::HistogramBase* histogram = base::Histogram::FactoryTimeGet( | 225 base::HistogramBase* histogram = base::Histogram::FactoryTimeGet( |
| 227 GetKeySystemUMAPrefix() + kTimeToCreateCdmUMAName, | 226 GetKeySystemUMAPrefix() + kTimeToCreateCdmUMAName, |
| 228 base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(10), | 227 base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(10), |
| 229 50, base::HistogramBase::kUmaTargetedHistogramFlag); | 228 50, base::HistogramBase::kUmaTargetedHistogramFlag); |
| 230 | 229 |
| 231 histogram->AddTime(time); | 230 histogram->AddTime(time); |
| 232 } | 231 } |
| 233 | 232 |
| 234 } // namespace media | 233 } // namespace media |
| OLD | NEW |