Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Unified Diff: media/base/android/media_drm_storage_bridge.h

Issue 2805803002: [Clank] Implement MediaDrmStorageBridge with MediaDrmStorage (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698