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 |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c80909af8256cc2f9a2572323759db891c0fe932 |
--- /dev/null |
+++ b/media/base/android/media_drm_storage_bridge.h |
@@ -0,0 +1,71 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef MEDIA_BASE_ANDROID_MEDIA_DRM_STORAGE_BRIDGE_H_ |
+#define MEDIA_BASE_ANDROID_MEDIA_DRM_STORAGE_BRIDGE_H_ |
+ |
+#include <jni.h> |
+#include <memory> |
+ |
+#include "base/android/scoped_java_ref.h" |
+#include "base/memory/ref_counted.h" |
+#include "base/memory/weak_ptr.h" |
+ |
+namespace base { |
+class SingleThreadTaskRunner; |
+} // namespace base |
+ |
+namespace media { |
+ |
+class MediaDrmStorageBridge { |
Tima Vaisburd
2017/03/31 22:53:32
Please write the comment that describes the purpos
yucliu1
2017/04/01 01:27:37
Done.
|
+ public: |
+ static bool RegisterMediaDrmStorageBridge(JNIEnv* env); |
+ |
+ MediaDrmStorageBridge(); |
+ ~MediaDrmStorageBridge() = default; |
+ |
+ // The following OnXXX functions are called by Java. The functions will post |
+ // task on message loop immediately to avoid reentrancy issues. |
+ |
+ // Called by the java object when device provision is finished. Implementation |
+ // will record the time as provisioning time. |
+ void OnProvisioned(JNIEnv* env, |
+ const base::android::JavaParamRef<jobject>& j_storage, |
+ // Callback<Boolean> |
+ const base::android::JavaParamRef<jobject>& j_callback); |
+ |
+ // Called by the java object to load session data into memory. |j_callback| |
+ // will return a null object if load fails. |
+ void OnLoadInfo(JNIEnv* env, |
+ const base::android::JavaParamRef<jobject>& j_storage, |
+ const base::android::JavaParamRef<jbyteArray>& j_session_id, |
+ // Callback<PersistentInfo> |
+ const base::android::JavaParamRef<jobject>& j_callback); |
+ |
+ // Called by the java object to persistent session data. |
+ void OnSaveInfo(JNIEnv* env, |
+ const base::android::JavaParamRef<jobject>& j_storage, |
+ // PersistentInfo |
+ const base::android::JavaParamRef<jobject>& j_persist_info, |
+ // Callback<Boolean> |
+ const base::android::JavaParamRef<jobject>& j_callback); |
+ |
+ // Called by the java object to remove persistent session data. |
+ void OnClearInfo(JNIEnv* env, |
+ const base::android::JavaParamRef<jobject>& j_storage, |
+ const base::android::JavaParamRef<jbyteArray>& j_session_id, |
+ // Callback<Boolean> |
+ const base::android::JavaParamRef<jobject>& j_callback); |
+ |
+ private: |
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
+ |
+ // NOTE: Weak pointers must be invalidated before all other member variables. |
+ base::WeakPtrFactory<MediaDrmStorageBridge> weak_factory_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(MediaDrmStorageBridge); |
+}; |
+ |
+} // namespace media |
+#endif // MEDIA_BASE_ANDROID_MEDIA_DRM_STORAGE_BRIDGE_H_ |