| Index: media/blink/webencryptedmediaclient_impl.cc
|
| diff --git a/media/blink/webencryptedmediaclient_impl.cc b/media/blink/webencryptedmediaclient_impl.cc
|
| index e687c27ab6ace8b1047533a807dfc8efe00d58d1..2dd051e59626ee9d47fcfd33c11c63a74c23dd3c 100644
|
| --- a/media/blink/webencryptedmediaclient_impl.cc
|
| +++ b/media/blink/webencryptedmediaclient_impl.cc
|
| @@ -140,6 +140,8 @@ static ConfigurationSupport GetSupportedConfiguration(
|
| blink::WebMediaKeySystemConfiguration* accumulated_configuration,
|
| bool was_permission_requested,
|
| bool is_permission_granted) {
|
| + DCHECK(was_permission_requested || !is_permission_granted);
|
| +
|
| // It is possible to obtain user permission unless permission was already
|
| // requested and denied.
|
| bool is_permission_possible =
|
| @@ -302,8 +304,18 @@ static ConfigurationSupport GetSupportedConfiguration(
|
| ConvertRequirement(accumulated_configuration->distinctiveIdentifier);
|
| if (!IsDistinctiveIdentifierRequirementSupported(key_system, di_requirement,
|
| is_permission_granted)) {
|
| - DCHECK(!was_permission_requested); // Should have failed at step 3.
|
| - return CONFIGURATION_REQUIRES_PERMISSION;
|
| + if (was_permission_requested) {
|
| + // The optional permission was requested and denied.
|
| + // TODO(sandersd): Avoid the need for this logic - crbug.com/460616.
|
| + DCHECK(candidate.distinctiveIdentifier ==
|
| + blink::WebMediaKeySystemConfiguration::Requirement::Optional);
|
| + DCHECK(di_requirement == EME_FEATURE_REQUIRED);
|
| + DCHECK(!is_permission_granted);
|
| + accumulated_configuration->distinctiveIdentifier =
|
| + blink::WebMediaKeySystemConfiguration::Requirement::NotAllowed;
|
| + } else {
|
| + return CONFIGURATION_REQUIRES_PERMISSION;
|
| + }
|
| }
|
|
|
| ps_requirement =
|
|
|