Chromium Code Reviews| 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 a89522df7115e8426a6df794cf6d0323f6fd485f..ecac70483763e99f3c0a60f7794615a6d57a9a2f 100644 |
| --- a/media/base/android/media_drm_bridge.cc |
| +++ b/media/base/android/media_drm_bridge.cc |
| @@ -298,6 +298,7 @@ bool MediaDrmBridge::IsAvailable() { |
| return true; |
| } |
| +// TODO(ddorwin): This is specific to Widevine. http://crbug.com/459400 |
| // static |
| bool MediaDrmBridge::IsSecureDecoderRequired(SecurityLevel security_level) { |
| DCHECK(IsAvailable()); |
| @@ -305,20 +306,6 @@ bool MediaDrmBridge::IsSecureDecoderRequired(SecurityLevel security_level) { |
| } |
| // static |
| -bool MediaDrmBridge::IsSecurityLevelSupported(const std::string& key_system, |
| - SecurityLevel security_level) { |
| - if (!IsAvailable()) |
| - return false; |
| - |
| - scoped_ptr<MediaDrmBridge> media_drm_bridge = |
| - MediaDrmBridge::CreateWithoutSessionSupport(key_system); |
| - if (!media_drm_bridge) |
| - return false; |
| - |
| - return media_drm_bridge->SetSecurityLevel(security_level); |
| -} |
| - |
| -// static |
| std::vector<std::string> MediaDrmBridge::GetPlatformKeySystemNames() { |
| return g_key_system_uuid_manager.Get().GetPlatformKeySystemNames(); |
| } |
| @@ -404,6 +391,13 @@ scoped_ptr<MediaDrmBridge> MediaDrmBridge::CreateWithoutSessionSupport( |
| } |
| bool MediaDrmBridge::SetSecurityLevel(SecurityLevel security_level) { |
| + if (security_level != SECURITY_LEVEL_NONE && |
| + !std::equal(scheme_uuid_.begin(), scheme_uuid_.end(), kWidevineUuid)) { |
| + NOTREACHED() << "Widevine security level " << security_level |
| + << "used with another key system"; |
| + return false; |
| + } |
| + |
| JNIEnv* env = AttachCurrentThread(); |
| std::string security_level_str = GetSecurityLevelString(security_level); |
| @@ -636,7 +630,12 @@ MediaDrmBridge::SecurityLevel MediaDrmBridge::GetSecurityLevel() { |
| } |
| bool MediaDrmBridge::IsProtectedSurfaceRequired() { |
| - return IsSecureDecoderRequired(GetSecurityLevel()); |
| + // For Widevine, this depends on the security level. |
| + if (std::equal(scheme_uuid_.begin(), scheme_uuid_.end(), kWidevineUuid)) |
| + return IsSecureDecoderRequired(GetSecurityLevel()); |
| + |
| + // For other key systems, assume true. |
|
ddorwin
2015/02/18 02:19:26
It appears that we used to always set L1*, so this
|
| + return true; |
| } |
| void MediaDrmBridge::ResetDeviceCredentials( |