Chromium Code Reviews| Index: webkit/media/crypto/proxy_decryptor.h |
| diff --git a/webkit/media/crypto/proxy_decryptor.h b/webkit/media/crypto/proxy_decryptor.h |
| index ecccbf28673f99a3cdeaca8972cca16c36dfd467..499a05a59559aee9fa0fda8e2c73d6d66d545c94 100644 |
| --- a/webkit/media/crypto/proxy_decryptor.h |
| +++ b/webkit/media/crypto/proxy_decryptor.h |
| @@ -38,6 +38,10 @@ class ProxyDecryptor : public media::Decryptor { |
| WebKit::WebFrame* web_frame); |
| virtual ~ProxyDecryptor(); |
| + void set_decryptor_for_testing(scoped_ptr<media::Decryptor> decryptor) { |
| + decryptor_ = decryptor.Pass(); |
| + } |
| + |
| // media::Decryptor implementation. |
| virtual void GenerateKeyRequest(const std::string& key_system, |
| const uint8* init_data, |
| @@ -52,6 +56,7 @@ class ProxyDecryptor : public media::Decryptor { |
| const std::string& session_id) OVERRIDE; |
| virtual void Decrypt(const scoped_refptr<media::DecoderBuffer>& encrypted, |
| const DecryptCB& decrypt_cb) OVERRIDE; |
| + virtual void Stop() OVERRIDE; |
| private: |
| scoped_ptr<media::Decryptor> CreatePpapiDecryptor( |
| @@ -79,18 +84,12 @@ class ProxyDecryptor : public media::Decryptor { |
| WebKit::WebMediaPlayerClient* web_media_player_client_; |
| WebKit::WebFrame* web_frame_; |
| - // Protects the |decryptor_|. The Decryptor interface specifies that the |
| - // Decrypt() function will be called on the decoder thread and all other |
| - // methods on the renderer thread. The |decryptor_| itself is thread safe |
| - // when this rule is obeyed. This lock is solely to prevent the race condition |
| - // between setting the |decryptor_| in GenerateKeyRequest() and using it in |
| - // Decrypt(). |
| - base::Lock decryptor_lock_; |
| - scoped_ptr<media::Decryptor> decryptor_; // Protected by the |lock_|. |
| - |
| - // Protects the |pending_decrypt_closures_|. |
| - base::Lock pending_decrypt_closures_lock_; |
| + // Protects the |decryptor_| and |pending_decrypt_closures_|. Note that |
| + // |decryptor_| itself should be thread safe as per the Decryptor interface. |
| + base::Lock lock_; |
| + scoped_ptr<media::Decryptor> decryptor_; |
| std::vector<base::Closure> pending_decrypt_closures_; |
| + bool is_shutting_down_; |
|
scherkus (not reviewing)
2012/08/02 18:05:32
nit: use stopped_ instead
xhwang
2012/08/03 20:08:10
Done.
|
| DISALLOW_COPY_AND_ASSIGN(ProxyDecryptor); |
| }; |