| Index: media/filters/decrypting_demuxer_stream.cc
|
| diff --git a/media/filters/decrypting_demuxer_stream.cc b/media/filters/decrypting_demuxer_stream.cc
|
| index 988d5308edccff7b58e17cfe28cbf162578987c8..1598be6870a850ff8fbae006ee8f17cbdd2e456e 100644
|
| --- a/media/filters/decrypting_demuxer_stream.cc
|
| +++ b/media/filters/decrypting_demuxer_stream.cc
|
| @@ -116,7 +116,8 @@ void DecryptingDemuxerStream::Stop(const base::Closure& closure) {
|
| DCHECK(task_runner_->BelongsToCurrentThread());
|
| DCHECK(state_ != kUninitialized) << state_;
|
|
|
| - // Invalidate all weak pointers so that pending callbacks won't fire.
|
| + // Invalidate all weak pointers so that pending callbacks won't be fired into
|
| + // this object.
|
| weak_factory_.InvalidateWeakPtrs();
|
|
|
| // At this point the render thread is likely paused (in WebMediaPlayerImpl's
|
| @@ -124,6 +125,9 @@ void DecryptingDemuxerStream::Stop(const base::Closure& closure) {
|
| // render thread to process messages to complete (such as PPAPI methods).
|
| if (decryptor_) {
|
| // Clear the callback.
|
| + // TODO(xhwang): Since we invalidate all weak pointers during Stop(),
|
| + // canceling NewKeyCB seems unnecessary. Clean this up in all Decrypting*
|
| + // classes.
|
| decryptor_->RegisterNewKeyCB(GetDecryptorStreamType(),
|
| Decryptor::NewKeyCB());
|
| decryptor_->CancelDecrypt(GetDecryptorStreamType());
|
|
|