| Index: webkit/media/crypto/key_systems.cc | 
| diff --git a/webkit/media/crypto/key_systems.cc b/webkit/media/crypto/key_systems.cc | 
| index ff7c26db2f42d2d8cecc50e253d52e5a16b958d0..80afab741d0698467e0d46b35484b0836e1e071d 100644 | 
| --- a/webkit/media/crypto/key_systems.cc | 
| +++ b/webkit/media/crypto/key_systems.cc | 
| @@ -38,6 +38,11 @@ struct KeySystemPluginTypePair { | 
| const char* plugin_type; | 
| }; | 
|  | 
| +// TODO(xhwang): Remove this and ifdefs after fixing http://crbug.com/123421. | 
| +#define DECRYPT_ONLY_AUDIO_NOT_SUPPORTED | 
| +// TODO(ddorwin): Automatically support parent systems: http://crbug.com/164303. | 
| +static const char kWidevineBaseKeySystem[] = "com.widevine"; | 
| + | 
| // Specifies the container and codec combinations supported by individual | 
| // key systems. Each line is a container-codecs combination and the key system | 
| // that supports it. Multiple codecs can be listed. A trailing commas in | 
| @@ -47,12 +52,20 @@ struct KeySystemPluginTypePair { | 
| static const MediaFormatAndKeySystem | 
| supported_format_key_system_combinations[] = { | 
| // Clear Key. | 
| +#if defined(DECRYPT_ONLY_AUDIO_NOT_SUPPORTED) | 
| +  { "video/webm", "vp8,vp8.0,", kClearKeyKeySystem }, | 
| +#else | 
| { "video/webm", "vorbis,vp8,vp8.0,", kClearKeyKeySystem }, | 
| { "audio/webm", "vorbis,", kClearKeyKeySystem }, | 
| +#endif | 
| #if defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS) | 
| +#if defined(DECRYPT_ONLY_AUDIO_NOT_SUPPORTED) | 
| +  { "video/mp4", "avc1,", kClearKeyKeySystem }, | 
| +#else | 
| { "video/mp4", "avc1,mp4a,", kClearKeyKeySystem }, | 
| { "audio/mp4", "mp4a,", kClearKeyKeySystem }, | 
| #endif | 
| +#endif | 
|  | 
| // External Clear Key (used for testing). | 
| { "video/webm", "vorbis,vp8,vp8.0,", kExternalClearKeyKeySystem }, | 
| @@ -66,6 +79,16 @@ supported_format_key_system_combinations[] = { | 
| // Widevine. | 
| { "video/webm", "vorbis,vp8,vp8.0,", kWidevineKeySystem }, | 
| { "audio/webm", "vorbis,", kWidevineKeySystem }, | 
| +  { "video/webm", "vorbis,vp8,vp8.0,", kWidevineBaseKeySystem }, | 
| +  { "audio/webm", "vorbis,", kWidevineBaseKeySystem }, | 
| +#if defined(WIDEVINE_CDM_CENC_SUPPORT_AVAILABLE) | 
| +#if defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS) | 
| +  { "video/mp4", "avc1,mp4a,", kWidevineKeySystem }, | 
| +  { "audio/mp4", "mp4a,", kWidevineKeySystem }, | 
| +  { "video/mp4", "avc1,mp4a,", kWidevineBaseKeySystem }, | 
| +  { "audio/mp4", "mp4a,", kWidevineBaseKeySystem }, | 
| +#endif | 
| +#endif | 
| #endif  // WIDEVINE_CDM_AVAILABLE | 
| }; | 
|  | 
| @@ -141,10 +164,6 @@ KeySystems::KeySystems() { | 
| bool KeySystems::IsSupportedKeySystem(const std::string& key_system) { | 
| bool is_supported = key_system_map_.find(key_system) != key_system_map_.end(); | 
|  | 
| -  DCHECK_EQ(is_supported, | 
| -            (CanUseAesDecryptor(key_system) || | 
| -             !GetPluginType(key_system).empty())) | 
| -      << "key_system_map_ & key_system_to_plugin_type_mapping are inconsistent"; | 
| return is_supported; | 
| } | 
|  | 
|  |