Index: media/base/android/android_cdm_factory.cc |
diff --git a/media/base/android/android_cdm_factory.cc b/media/base/android/android_cdm_factory.cc |
index fa0d606984d7fd6c2296b1e94e32d93800ce1bb9..964e3a39ff619114fb13a0d5b23aca6fec042194 100644 |
--- a/media/base/android/android_cdm_factory.cc |
+++ b/media/base/android/android_cdm_factory.cc |
@@ -4,11 +4,15 @@ |
#include "media/base/android/android_cdm_factory.h" |
+#include "base/feature_list.h" |
#include "base/strings/string_number_conversions.h" |
#include "media/base/android/media_drm_bridge.h" |
#include "media/base/bind_to_current_loop.h" |
#include "media/base/cdm_config.h" |
+#include "media/base/key_system_names.h" |
#include "media/base/key_systems.h" |
+#include "media/base/media_switches.h" |
+#include "media/cdm/aes_decryptor.h" |
#include "third_party/widevine/cdm/widevine_cdm_common.h" |
#include "url/gurl.h" |
@@ -36,6 +40,17 @@ void AndroidCdmFactory::Create( |
return; |
} |
+ // Create AesDecryptor here to support External Clear Key key system. |
+ // This is used for testing. |
+ if (base::FeatureList::IsEnabled(media::kExternalClearKeyForTesting) && |
+ IsExternalClearKey(key_system)) { |
+ scoped_refptr<MediaKeys> cdm( |
+ new AesDecryptor(security_origin, session_message_cb, session_closed_cb, |
+ session_keys_change_cb)); |
+ bound_cdm_created_cb.Run(cdm, ""); |
+ return; |
+ } |
+ |
std::string error_message; |
if (!MediaDrmBridge::IsKeySystemSupported(key_system)) { |