summaryrefslogtreecommitdiffstats
path: root/media/blink
diff options
context:
space:
mode:
authorddorwin <ddorwin@chromium.org>2015-02-20 17:46:13 -0800
committerCommit bot <commit-bot@chromium.org>2015-02-21 01:46:58 +0000
commitcd52b1d018b5464584771f756d8f8ec37302421d (patch)
tree1cb35eab193e5e7760787fac86524afabbf6817b /media/blink
parentb24f596ccb64c0a498408790b1767bbff8927de4 (diff)
downloadchromium_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.cc16
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 =