Index: chrome/renderer/media/chrome_key_systems.cc |
diff --git a/chrome/renderer/media/chrome_key_systems.cc b/chrome/renderer/media/chrome_key_systems.cc |
index db388eacf9e9486919a00ec3dba99be53e3cd5ac..b5e04152663070ee5343f4f14c3215d426931344 100644 |
--- a/chrome/renderer/media/chrome_key_systems.cc |
+++ b/chrome/renderer/media/chrome_key_systems.cc |
@@ -72,7 +72,8 @@ static void AddExternalClearKey( |
return; |
} |
- KeySystemInfo info(kExternalClearKeyKeySystem); |
+ KeySystemInfo info; |
+ info.key_system = kExternalClearKeyKeySystem; |
info.supported_codecs = media::EME_CODEC_WEBM_ALL; |
info.supported_init_data_types = media::EME_INIT_DATA_TYPE_WEBM; |
@@ -81,6 +82,13 @@ static void AddExternalClearKey( |
info.supported_init_data_types |= media::EME_INIT_DATA_TYPE_CENC; |
#endif // defined(USE_PROPRIETARY_CODECS) |
+ // Persistent sessions are faked. |
+ info.persistent_license_support = media::EME_SESSION_TYPE_SUPPORTED; |
+ info.persistent_release_message_support = |
+ media::EME_SESSION_TYPE_NOT_SUPPORTED; |
+ info.persistent_state_support = media::EME_FEATURE_SUPPORTED; |
+ info.distinctive_identifier_support = media::EME_FEATURE_NOT_SUPPORTED; |
+ |
info.pepper_type = kExternalClearKeyPepperType; |
concrete_key_systems->push_back(info); |
@@ -178,9 +186,27 @@ static void AddPepperBasedWidevine( |
#endif // defined(USE_PROPRIETARY_CODECS) |
} |
- cdm::AddWidevineWithCodecs(cdm::WIDEVINE, |
- supported_codecs, |
- concrete_key_systems); |
+ cdm::AddWidevineWithCodecs( |
+ cdm::WIDEVINE, |
+ supported_codecs, |
+#if defined(OS_CHROMEOS) |
+ // Persistent licenses are supported if remote attestatin succeeds. |
ddorwin
2015/02/19 01:41:33
attestation
sandersd (OOO until July 31)
2015/02/19 21:08:33
Done.
|
+ media::EME_SESSION_TYPE_SUPPORTED_WITH_PERMISSION, |
+ media::EME_SESSION_TYPE_NOT_SUPPORTED, // Persistent release message. |
+ media::EME_FEATURE_SUPPORTED, // Persistent state. |
+ // A distinctive identifier will be available if remote attestation |
+ // succeeds. |
+ // TODO(sandersd): Using ALWAYS_AVAILABLE prevents "not-allowed" from |
+ // succeeding. Change this to SUPPORTED_WITH_PERMISSION once the |
+ // distinctive identifier can be blocked. http://crbug.com/457482 |
+ media::EME_FEATURE_ALWAYS_AVAILABLE, |
+#else // (Desktop) |
+ media::EME_SESSION_TYPE_NOT_SUPPORTED, // Persistent license. |
+ media::EME_SESSION_TYPE_NOT_SUPPORTED, // Persistent release message. |
+ media::EME_FEATURE_SUPPORTED, // Persistent state. |
+ media::EME_FEATURE_NOT_SUPPORTED, // Distinctive identifier. |
+#endif // defined(OS_CHROMEOS) |
+ concrete_key_systems); |
} |
#endif // defined(WIDEVINE_CDM_AVAILABLE) |
#endif // defined(ENABLE_PEPPER_CDMS) |