Chromium Code Reviews| Index: media/base/android/media_drm_storage_bridge.h |
| diff --git a/media/base/android/media_drm_storage_bridge.h b/media/base/android/media_drm_storage_bridge.h |
| index 08072f7542434cdb950e88903a607ef462d7bdd5..55cee2580755b1ec782c52c208a99697fb3318e1 100644 |
| --- a/media/base/android/media_drm_storage_bridge.h |
| +++ b/media/base/android/media_drm_storage_bridge.h |
| @@ -9,8 +9,11 @@ |
| #include <memory> |
| #include "base/android/scoped_java_ref.h" |
| +#include "base/callback.h" |
| #include "base/memory/ref_counted.h" |
| #include "base/memory/weak_ptr.h" |
| +#include "media/base/android/media_drm_storage.h" |
| +#include "url/origin.h" |
| namespace base { |
| class SingleThreadTaskRunner; |
| @@ -22,9 +25,13 @@ namespace media { |
| // to talk to the concrete implementation for persistent data management. |
| class MediaDrmStorageBridge { |
| public: |
| + using OnceCreateStorageCB = |
| + base::OnceCallback<std::unique_ptr<MediaDrmStorage>()>; |
|
xhwang
2017/04/07 05:47:35
Can you reuse the CreateStorageCB?
https://cs.chr
yucliu1
2017/04/07 18:53:10
Re-use CreateStorageCB. AndroidCdmFactory need to
|
| + |
| static bool RegisterMediaDrmStorageBridge(JNIEnv* env); |
| - MediaDrmStorageBridge(); |
| + MediaDrmStorageBridge(const url::Origin& origin, |
| + OnceCreateStorageCB create_storage_cb); |
| ~MediaDrmStorageBridge(); |
| // The following OnXXX functions are called by Java. The functions will post |
| @@ -61,6 +68,17 @@ class MediaDrmStorageBridge { |
| const base::android::JavaParamRef<jobject>& j_callback); |
| private: |
| + MediaDrmStorage* GetStorageImpl(); |
| + |
| + // Post |task| on |task_runner_|, |task| won't run if this object is deleted. |
| + void PostCancellableTask(base::OnceClosure task); |
| + void RunCancellableTask(base::OnceClosure task); |
| + |
| + OnceCreateStorageCB create_storage_cb_; |
| + std::unique_ptr<MediaDrmStorage> impl_; |
| + |
| + const url::Origin origin_; |
| + |
| scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
| // NOTE: Weak pointers must be invalidated before all other member variables. |