| 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.
|
| + return true;
|
| }
|
|
|
| void MediaDrmBridge::ResetDeviceCredentials(
|
|
|