| 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;
|
| }
|
| }
|
|
|