Chromium Code Reviews| 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 6545a70814c28bb825a3c9c71951aff03db7e20b..048985b412f97f8683b271c69f3eb31d6b2795a8 100644 |
| --- a/content/browser/media/android/media_drm_credential_manager.cc |
| +++ b/content/browser/media/android/media_drm_credential_manager.cc |
| @@ -4,11 +4,29 @@ |
| #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 "base/memory/singleton.h" |
|
qinmin
2013/09/24 02:35:48
nit: this is already included in the header
Kibeom Kim (inactive)
2013/09/24 02:52:48
Done.
|
| +#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 { |
| // TODO(qinmin): Move the UUID definition to some common places. |
| @@ -16,9 +34,10 @@ static const uint8 kWidevineUuid[16] = { |
| 0xED, 0xEF, 0x8B, 0xA9, 0x79, 0xD6, 0x4A, 0xCE, |
| 0xA3, 0xC8, 0x27, 0xDC, 0xD5, 0x1D, 0x21, 0xED }; |
| -MediaDrmCredentialManager::MediaDrmCredentialManager() {} |
| - |
| -MediaDrmCredentialManager::~MediaDrmCredentialManager() {} |
| +// static |
| +MediaDrmCredentialManager* MediaDrmCredentialManager::GetInstance() { |
| + return Singleton<MediaDrmCredentialManager>::get(); |
| +} |
| void MediaDrmCredentialManager::ResetCredentials( |
| const ResetCredentialsCB& callback) { |
| @@ -35,6 +54,25 @@ void MediaDrmCredentialManager::ResetCredentials( |
| } |
| } |
| +// static |
| +void ResetCredentials( |
| + JNIEnv* env, |
| + jclass clazz, |
| + jobject j_media_drm_credential_manager_callback) { |
| + MediaDrmCredentialManager* media_drm_credential_manager = |
| + MediaDrmCredentialManager::GetInstance(); |
| + |
| + ScopedJavaGlobalRef<jobject> j_scoped_media_drm_credential_manager_callback; |
| + j_scoped_media_drm_credential_manager_callback.Reset( |
| + env, j_media_drm_credential_manager_callback); |
| + |
| + MediaDrmCredentialManager::ResetCredentialsCB callback_runner = |
| + base::Bind(&MediaDrmCredentialManagerCallback, |
| + j_scoped_media_drm_credential_manager_callback); |
| + |
| + media_drm_credential_manager->ResetCredentials(callback_runner); |
| +} |
| + |
| void MediaDrmCredentialManager::OnResetCredentialsCompleted( |
| const std::string& security_level, bool success) { |
| if (security_level == "L3" && success) { |
| @@ -60,4 +98,9 @@ bool MediaDrmCredentialManager::ResetCredentialsInternal( |
| return true; |
| } |
| +// static |
| +bool MediaDrmCredentialManager::RegisterMediaDrmCredentialManager(JNIEnv* env) { |
| + return RegisterNativesImpl(env); |
| +} |
| + |
| } // namespace content |