diff options
author | ddorwin <ddorwin@chromium.org> | 2015-02-20 17:46:13 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-21 01:46:58 +0000 |
commit | cd52b1d018b5464584771f756d8f8ec37302421d (patch) | |
tree | 1cb35eab193e5e7760787fac86524afabbf6817b /media/blink | |
parent | b24f596ccb64c0a498408790b1767bbff8927de4 (diff) | |
download | chromium_src-cd52b1d018b5464584771f756d8f8ec37302421d.zip chromium_src-cd52b1d018b5464584771f756d8f8ec37302421d.tar.gz chromium_src-cd52b1d018b5464584771f756d8f8ec37302421d.tar.bz2 |
Restore L3 support on CrOS when the media permission is denied.
BUG=446263,457482
Review URL: https://codereview.chromium.org/945063002
Cr-Commit-Position: refs/heads/master@{#317483}
Diffstat (limited to 'media/blink')
-rw-r--r-- | media/blink/webencryptedmediaclient_impl.cc | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/media/blink/webencryptedmediaclient_impl.cc b/media/blink/webencryptedmediaclient_impl.cc index e687c27..2dd051e 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 = |