Index: media/base/android/media_drm_bridge.cc |
diff --git a/media/base/android/media_drm_bridge.cc b/media/base/android/media_drm_bridge.cc |
index fcb446b28b21255ee0bea4dbccd99b5deb7ce6a4..5666b43d88192e40aca16d75d5570483fa219b71 100644 |
--- a/media/base/android/media_drm_bridge.cc |
+++ b/media/base/android/media_drm_bridge.cc |
@@ -293,8 +293,16 @@ bool MediaDrmBridge::SetSecurityLevel(SecurityLevel security_level) { |
void MediaDrmBridge::SetServerCertificate( |
const std::vector<uint8_t>& certificate, |
scoped_ptr<media::SimpleCdmPromise> promise) { |
- promise->reject(NOT_SUPPORTED_ERROR, 0, |
- "SetServerCertificate() is not supported."); |
+ DCHECK(!certificate.empty()); |
+ |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jbyteArray> j_certificate; |
+ if (Java_MediaDrmBridge_setServerCertificate(env, j_media_drm_.obj(), |
+ j_certificate.obj())) { |
+ promise->resolve(); |
+ } else { |
+ promise->reject(INVALID_ACCESS_ERROR, 0, "Set server certificate failed."); |
+ } |
} |
void MediaDrmBridge::CreateSessionAndGenerateRequest( |