Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1029)

Unified Diff: media/blink/key_system_config_selector.cc

Issue 1911953003: EME: Correctly handle container-only contentType strings (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 885049c83872d0e5f80ec16863f6b8a501777af0..659f29bf118c5d03e4cd1570fa6b74fd7fa60aef 100644
--- a/media/blink/key_system_config_selector.cc
+++ b/media/blink/key_system_config_selector.cc
@@ -310,6 +310,23 @@ bool KeySystemConfigSelector::IsSupportedContentType(
const std::string& container_mime_type,
const std::string& codecs,
KeySystemConfigSelector::ConfigState* config_state) {
+ // contentTypes must provide a codec string unless the container implies a
+ // particular codec. For EME, none of the currently supported containers
+ // imply a codec, so |codecs| must be provided.
+ if (codecs.empty()) {
+ // Since the spec didn't initially require this, add an exemption for
ddorwin 2016/04/25 22:58:51 If we want to exclude contentTypes without codecs
jrummell 2016/04/26 21:23:56 Acknowledged.
+ // some existing containers to give clients time to adapt.
+ // TODO(jrummell): Remove this exemption once the number of contentTypes
+ // without codecs drops low enough (UMA added in the blink code).
+ // http://crbug.com/605661.
+ if (container_mime_type != "audio/webm" &&
ddorwin 2016/04/25 22:58:51 This assumes the string is lower case, but that do
jrummell 2016/04/26 21:23:56 Done.
+ container_mime_type != "video/webm" &&
+ container_mime_type != "audio/mp4" &&
+ container_mime_type != "video/mp4") {
+ return false;
+ }
+ }
+
// Check that |container_mime_type| and |codecs| are supported by Chrome. This
// is done primarily to validate extended codecs, but it also ensures that the
// CDM cannot support codecs that Chrome does not (which could complicate the

Powered by Google App Engine
This is Rietveld 408576698