From 6722b60e3cd0ceab83259af9d5e2a2f56c7654f6 Mon Sep 17 00:00:00 2001 From: xhwang Date: Fri, 3 Apr 2015 16:32:27 -0700 Subject: encrypted media: Persistent state is always enabled on Android. We are using MediaDrm API on Android and we cannot guarantee that API doesn't use persistent storage on the device. Therefore always set persistent state to EME_FEATURE_ALWAYS_ENABLED to err on the safe side. Also change NOTREACHED() in MediaPlayerAndroid::SetCdm() to LOG(ERROR) because it's actually reachable if we use SRC + EME. Review URL: https://codereview.chromium.org/1060713004 Cr-Commit-Position: refs/heads/master@{#323847} --- components/cdm/renderer/android_key_systems.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'components/cdm') diff --git a/components/cdm/renderer/android_key_systems.cc b/components/cdm/renderer/android_key_systems.cc index e1538ba..8076a2a 100644 --- a/components/cdm/renderer/android_key_systems.cc +++ b/components/cdm/renderer/android_key_systems.cc @@ -59,6 +59,11 @@ void AddAndroidWidevine(std::vector* concrete_key_systems, max_audio_robustness = EmeRobustness::HW_SECURE_CRYPTO; max_video_robustness = EmeRobustness::HW_SECURE_ALL; } + + // We are using MediaDrm API on Android and we cannot guarantee that API + // doesn't use persistent storage on the device. Therefore always set + // persistent state to EME_FEATURE_ALWAYS_ENABLED to err on the safe side. + if (codecs != media::EME_CODEC_NONE) { AddWidevineWithCodecs( WIDEVINE, @@ -67,7 +72,7 @@ void AddAndroidWidevine(std::vector* concrete_key_systems, max_video_robustness, media::EME_SESSION_TYPE_NOT_SUPPORTED, // persistent-license. media::EME_SESSION_TYPE_NOT_SUPPORTED, // persistent-release-message. - media::EME_FEATURE_NOT_SUPPORTED, // Persistent state. + media::EME_FEATURE_ALWAYS_ENABLED, // Persistent state. media::EME_FEATURE_ALWAYS_ENABLED, // Distinctive identifier. concrete_key_systems); } @@ -85,7 +90,7 @@ void AddAndroidWidevine(std::vector* concrete_key_systems, EmeRobustness::HW_SECURE_ALL, // Max video robustness. media::EME_SESSION_TYPE_NOT_SUPPORTED, // persistent-license. media::EME_SESSION_TYPE_NOT_SUPPORTED, // persistent-release-message. - media::EME_FEATURE_NOT_SUPPORTED, // Persistent state. + media::EME_FEATURE_ALWAYS_ENABLED, // Persistent state. media::EME_FEATURE_ALWAYS_ENABLED, // Distinctive identifier. concrete_key_systems); } -- cgit v1.1