Index: chrome/browser/media/encrypted_media_browsertest.cc |
diff --git a/chrome/browser/media/encrypted_media_browsertest.cc b/chrome/browser/media/encrypted_media_browsertest.cc |
index ffcf3679b38704a526f169b07a87a241f5ba05c3..ed8f2031eef78ee112db7aa468c9f7be7f4a275b 100644 |
--- a/chrome/browser/media/encrypted_media_browsertest.cc |
+++ b/chrome/browser/media/encrypted_media_browsertest.cc |
@@ -26,7 +26,10 @@ |
#include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR. |
#if defined(ENABLE_PEPPER_CDMS) |
-// Platform-specific filename relative to the chrome executable. |
+// Base path for Clear Key CDM (relative to the chrome executable). |
+const char kClearKeyCdmBaseDirectory[] = "ClearKeyCdm"; |
+ |
+// Platform-specific filename relative to kClearKeyCdmBaseDirectory. |
const char kClearKeyCdmAdapterFileName[] = |
#if defined(OS_MACOSX) |
"clearkeycdmadapter.plugin"; |
@@ -261,11 +264,13 @@ class EncryptedMediaTestBase : public MediaBrowserTest { |
#if defined(ENABLE_PEPPER_CDMS) |
if (IsExternalClearKey(key_system)) { |
- RegisterPepperCdm(command_line, kClearKeyCdmAdapterFileName, key_system); |
+ RegisterPepperCdm(command_line, kClearKeyCdmBaseDirectory, |
+ kClearKeyCdmAdapterFileName, key_system); |
} |
#if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT) |
else if (IsWidevine(key_system)) { // NOLINT |
- RegisterPepperCdm(command_line, kWidevineCdmAdapterFileName, key_system); |
+ RegisterPepperCdm(command_line, kWidevineCdmBaseDirectory, |
+ kWidevineCdmAdapterFileName, key_system); |
} |
#endif // defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT) |
#endif // defined(ENABLE_PEPPER_CDMS) |
@@ -273,18 +278,24 @@ class EncryptedMediaTestBase : public MediaBrowserTest { |
private: |
#if defined(ENABLE_PEPPER_CDMS) |
+ // The CDM adapter should be located in |adapter_base_dir| in DIR_MODULE. |
void RegisterPepperCdm(base::CommandLine* command_line, |
+ const std::string& adapter_base_dir, |
const std::string& adapter_name, |
const std::string& key_system) { |
DCHECK(!is_pepper_cdm_registered_) |
<< "RegisterPepperCdm() can only be called once."; |
is_pepper_cdm_registered_ = true; |
- // Append the switch to register the Clear Key CDM Adapter. |
+ // Build the CDM adapter path. |
base::FilePath plugin_dir; |
EXPECT_TRUE(PathService::Get(base::DIR_MODULE, &plugin_dir)); |
+ plugin_dir = plugin_dir.AppendASCII(adapter_base_dir); |
+ |
base::FilePath plugin_lib = plugin_dir.AppendASCII(adapter_name); |
EXPECT_TRUE(base::PathExists(plugin_lib)) << plugin_lib.value(); |
+ |
+ // Build pepper plugin registration switch. |
base::FilePath::StringType pepper_plugin = plugin_lib.value(); |
pepper_plugin.append(FILE_PATH_LITERAL("#CDM#0.1.0.0;")); |
#if defined(OS_WIN) |
@@ -292,6 +303,8 @@ class EncryptedMediaTestBase : public MediaBrowserTest { |
#else |
pepper_plugin.append(GetPepperType(key_system)); |
#endif |
+ |
+ // Append the switch to register the CDM Adapter. |
command_line->AppendSwitchNative(switches::kRegisterPepperPlugins, |
pepper_plugin); |
} |