Index: media/blink/key_system_config_selector.cc |
diff --git a/media/blink/key_system_config_selector.cc b/media/blink/key_system_config_selector.cc |
index f34bd8fc463cfb00ea9d5b3a1029653ae34805af..4013ce4204a4c44599bf471d43bb23d007c0aae9 100644 |
--- a/media/blink/key_system_config_selector.cc |
+++ b/media/blink/key_system_config_selector.cc |
@@ -8,6 +8,7 @@ |
#include "base/logging.h" |
#include "base/strings/string_util.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "media/base/cdm_config.h" |
#include "media/base/key_systems.h" |
#include "media/base/media_permission.h" |
#include "media/blink/webmediaplayer_util.h" |
@@ -131,8 +132,8 @@ struct KeySystemConfigSelector::SelectionRequest { |
blink::WebVector<blink::WebMediaKeySystemConfiguration> |
candidate_configurations; |
blink::WebSecurityOrigin security_origin; |
- base::Callback<void(const blink::WebMediaKeySystemConfiguration&, bool)> |
- succeeded_cb; |
+ base::Callback<void(const blink::WebMediaKeySystemConfiguration&, |
+ const CdmConfig&)> succeeded_cb; |
base::Callback<void(const blink::WebString&)> not_supported_cb; |
bool was_permission_requested = false; |
bool is_permission_granted = false; |
@@ -673,8 +674,8 @@ void KeySystemConfigSelector::SelectConfig( |
candidate_configurations, |
const blink::WebSecurityOrigin& security_origin, |
bool are_secure_codecs_supported, |
- base::Callback<void(const blink::WebMediaKeySystemConfiguration&, bool)> |
- succeeded_cb, |
+ base::Callback<void(const blink::WebMediaKeySystemConfiguration&, |
+ const CdmConfig&)> succeeded_cb, |
base::Callback<void(const blink::WebString&)> not_supported_cb) { |
// Continued from requestMediaKeySystemAccess(), step 7, from |
// https://w3c.github.io/encrypted-media/#requestmediakeysystemaccess |
@@ -727,6 +728,7 @@ void KeySystemConfigSelector::SelectConfigInternal( |
if (!request->are_secure_codecs_supported) |
config_state.AddRule(EmeConfigRule::SECURE_CODECS_NOT_ALLOWED); |
blink::WebMediaKeySystemConfiguration accumulated_configuration; |
+ CdmConfig cdm_config; |
ConfigurationSupport support = GetSupportedConfiguration( |
request->key_system, request->candidate_configurations[i], |
&config_state, &accumulated_configuration); |
@@ -746,8 +748,14 @@ void KeySystemConfigSelector::SelectConfigInternal( |
weak_factory_.GetWeakPtr(), base::Passed(&request))); |
return; |
case CONFIGURATION_SUPPORTED: |
- request->succeeded_cb.Run(accumulated_configuration, |
- config_state.AreSecureCodecsRequired()); |
+ cdm_config.allow_distinctive_identifier = |
+ (accumulated_configuration.distinctiveIdentifier == |
+ blink::WebMediaKeySystemConfiguration::Requirement::Required); |
+ cdm_config.allow_persistent_state = |
+ (accumulated_configuration.persistentState == |
+ blink::WebMediaKeySystemConfiguration::Requirement::Required); |
+ cdm_config.use_secure_codecs = config_state.AreSecureCodecsRequired(); |
+ request->succeeded_cb.Run(accumulated_configuration, cdm_config); |
return; |
} |
} |