| Index: webkit/media/webmediaplayer_impl.cc
|
| diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc
|
| index 12d277b9fa2bbd3337e501c5517f7d4199b62fcf..488a263ca6e7b0b18f6b79c12fb10b78aa0b039f 100644
|
| --- a/webkit/media/webmediaplayer_impl.cc
|
| +++ b/webkit/media/webmediaplayer_impl.cc
|
| @@ -799,7 +799,11 @@ WebMediaPlayerImpl::GenerateKeyRequestInternal(
|
| << std::string(reinterpret_cast<const char*>(init_data),
|
| static_cast<size_t>(init_data_length));
|
|
|
| + // TODO(xhwang): We assume all streams are from the same container (thus have
|
| + // the same "type") for now. In the future, the "type" should be passed down
|
| + // from the application.
|
| if (!decryptor_.GenerateKeyRequest(key_system.utf8(),
|
| + init_data_type_,
|
| init_data, init_data_length)) {
|
| current_key_system_.reset();
|
| return WebMediaPlayer::MediaKeyExceptionKeySystemNotSupported;
|
| @@ -1013,12 +1017,17 @@ void WebMediaPlayerImpl::OnKeyAdded(const std::string& key_system,
|
|
|
| void WebMediaPlayerImpl::OnNeedKey(const std::string& key_system,
|
| const std::string& session_id,
|
| + const std::string& type,
|
| scoped_array<uint8> init_data,
|
| int init_data_size) {
|
| DCHECK_EQ(main_loop_, MessageLoop::current());
|
|
|
| UMA_HISTOGRAM_COUNTS(kMediaEme + std::string("NeedKey"), 1);
|
|
|
| + DCHECK(init_data_type_.empty() || type == init_data_type_);
|
| + if (init_data_type_.empty())
|
| + init_data_type_ = type;
|
| +
|
| GetClient()->keyNeeded(WebString::fromUTF8(key_system),
|
| WebString::fromUTF8(session_id),
|
| init_data.get(),
|
|
|