| Index: content/browser/media/android/media_drm_credential_manager.cc
|
| diff --git a/content/browser/media/android/media_drm_credential_manager.cc b/content/browser/media/android/media_drm_credential_manager.cc
|
| index 74e21d80e1b02fac09cd1809ea18dd8ed61f8df7..0e226f57132146400823d841a8048f23b7ffabaa 100644
|
| --- a/content/browser/media/android/media_drm_credential_manager.cc
|
| +++ b/content/browser/media/android/media_drm_credential_manager.cc
|
| @@ -4,9 +4,27 @@
|
|
|
| #include "content/browser/media/android/media_drm_credential_manager.h"
|
|
|
| +#include "base/android/jni_android.h"
|
| +#include "base/android/scoped_java_ref.h"
|
| #include "base/bind.h"
|
| #include "base/callback_helpers.h"
|
| +#include "jni/MediaDrmCredentialManager_jni.h"
|
| #include "media/base/android/media_drm_bridge.h"
|
| +#include "url/gurl.h"
|
| +
|
| +using base::android::ScopedJavaGlobalRef;
|
| +
|
| +namespace {
|
| +
|
| +void MediaDrmCredentialManagerCallback(
|
| + const ScopedJavaGlobalRef<jobject>& j_media_drm_credential_manager_callback,
|
| + bool succeeded) {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + content::Java_MediaDrmCredentialManagerCallback_onCredentialResetFinished(
|
| + env, j_media_drm_credential_manager_callback.obj(), succeeded);
|
| +}
|
| +
|
| +} // namespace
|
|
|
| namespace content {
|
|
|
| @@ -19,6 +37,10 @@ MediaDrmCredentialManager::MediaDrmCredentialManager() {}
|
|
|
| MediaDrmCredentialManager::~MediaDrmCredentialManager() {}
|
|
|
| +void MediaDrmCredentialManager::Destroy(JNIEnv* env, jobject obj) {
|
| + delete this;
|
| +}
|
| +
|
| void MediaDrmCredentialManager::ResetCredentials(
|
| const ResetCredentialsCB& callback) {
|
| // Ignore reset request if one is already in progress.
|
| @@ -34,6 +56,20 @@ void MediaDrmCredentialManager::ResetCredentials(
|
| }
|
| }
|
|
|
| +void MediaDrmCredentialManager::ResetCredentials(
|
| + JNIEnv* env,
|
| + jobject obj,
|
| + jobject j_media_drm_credential_manager_callback) {
|
| + ScopedJavaGlobalRef<jobject> j_scoped_media_drm_credential_manager_callback;
|
| + j_scoped_media_drm_credential_manager_callback.Reset(
|
| + env, j_media_drm_credential_manager_callback);
|
| + ResetCredentialsCB callback_runner =
|
| + base::Bind(&MediaDrmCredentialManagerCallback,
|
| + j_scoped_media_drm_credential_manager_callback);
|
| +
|
| + ResetCredentials(callback_runner);
|
| +}
|
| +
|
| void MediaDrmCredentialManager::OnResetCredentialsCompleted(
|
| const std::string& security_level, bool success) {
|
| if (security_level == "L3" && success) {
|
| @@ -50,7 +86,7 @@ bool MediaDrmCredentialManager::ResetCredentialsInternal(
|
| const std::string& security_level) {
|
| std::vector<uint8> uuid(kWidevineUuid, kWidevineUuid + 16);
|
| media_drm_bridge_ = media::MediaDrmBridge::Create(
|
| - 0, uuid, security_level, NULL);
|
| + 0, uuid, GURL(), security_level, NULL);
|
| if (!media_drm_bridge_)
|
| return false;
|
| media_drm_bridge_->ResetDeviceCredentials(
|
| @@ -59,4 +95,13 @@ bool MediaDrmCredentialManager::ResetCredentialsInternal(
|
| return true;
|
| }
|
|
|
| +static jint Init(JNIEnv* env, jclass clazz) {
|
| + return reinterpret_cast<jint>(new content::MediaDrmCredentialManager());
|
| +}
|
| +
|
| +// static
|
| +bool MediaDrmCredentialManager::RegisterMediaDrmCredentialManager(JNIEnv* env) {
|
| + return RegisterNativesImpl(env);
|
| +}
|
| +
|
| } // namespace content
|
|
|