Chromium Code Reviews| Index: webkit/media/webmediaplayer_impl.cc |
| diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc |
| index afdcc6c3c82f5bb3917a4d674bead53ebb9a78dd..649d62453f142b9cfde29aba19d344e123072bdf 100644 |
| --- a/webkit/media/webmediaplayer_impl.cc |
| +++ b/webkit/media/webmediaplayer_impl.cc |
| @@ -111,13 +111,6 @@ static WebKit::WebTimeRanges ConvertToWebTimeRanges( |
| return result; |
| } |
| -// TODO(acolwell): Investigate whether the key_system & session_id parameters |
| -// are really necessary. |
| -typedef base::Callback<void(const std::string&, |
| - const std::string&, |
| - scoped_array<uint8>, |
| - int)> OnNeedKeyCB; |
| - |
| static void LogMediaSourceError(const scoped_refptr<media::MediaLog>& media_log, |
| const std::string& error) { |
| media_log->AddEvent(media_log->CreateMediaSourceErrorEvent(error)); |
| @@ -180,7 +173,13 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( |
| media::SetDecryptorReadyCB set_decryptor_ready_cb; |
| if (WebKit::WebRuntimeFeatures::isEncryptedMediaEnabled()) { |
| - decryptor_.reset(new ProxyDecryptor(proxy_.get(), client, frame)); |
| + decryptor_.reset(new ProxyDecryptor( |
| + client, |
| + frame, |
| + BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnKeyAdded), |
|
xhwang
2012/12/20 00:06:01
key events are all fired on the main thread. Force
scherkus (not reviewing)
2012/12/20 15:18:55
OOC is reentrancy in WMPI bad?
xhwang
2012/12/20 18:06:31
For this particular case, I don't see any obvious
ddorwin
2012/12/21 04:19:06
I think we wan to avoid firing events in WK on the
xhwang
2012/12/21 05:50:07
bug filed, let's discuss and get consensus first:
|
| + BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnKeyError), |
| + BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnKeyMessage), |
| + BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnNeedKey))); |
| set_decryptor_ready_cb = base::Bind(&ProxyDecryptor::SetDecryptorReadyCB, |
| base::Unretained(decryptor_.get())); |
| } |
| @@ -1088,14 +1087,18 @@ void WebMediaPlayerImpl::OnKeyError(const std::string& key_system, |
| void WebMediaPlayerImpl::OnKeyMessage(const std::string& key_system, |
| const std::string& session_id, |
| const std::string& message, |
| - const GURL& default_url) { |
| + const std::string& default_url) { |
| DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + const GURL default_url_gurl(default_url); |
|
xhwang
2012/12/20 00:06:01
This conversion was done in WMPP. Moved here since
|
| + DLOG_IF(WARNING, !default_url.empty() && !default_url_gurl.is_valid()) |
| + << "Invalid URL in default_url: " << default_url; |
| + |
| GetClient()->keyMessage(WebString::fromUTF8(key_system), |
| WebString::fromUTF8(session_id), |
| reinterpret_cast<const uint8*>(message.data()), |
| message.size(), |
| - default_url); |
| + default_url_gurl); |
| } |
| void WebMediaPlayerImpl::SetOpaque(bool opaque) { |