| 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 4704227404f8db03d0ee0762117d823a7de05451..ffcf3679b38704a526f169b07a87a241f5ba05c3 100644
|
| --- a/chrome/browser/media/encrypted_media_browsertest.cc
|
| +++ b/chrome/browser/media/encrypted_media_browsertest.cc
|
| @@ -23,11 +23,21 @@
|
| #include "base/android/build_info.h"
|
| #endif
|
|
|
| +#include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR.
|
| +
|
| #if defined(ENABLE_PEPPER_CDMS)
|
| -#include "chrome/browser/media/pepper_cdm_test_helper.h"
|
| +// Platform-specific filename relative to the chrome executable.
|
| +const char kClearKeyCdmAdapterFileName[] =
|
| +#if defined(OS_MACOSX)
|
| + "clearkeycdmadapter.plugin";
|
| +#elif defined(OS_WIN)
|
| + "clearkeycdmadapter.dll";
|
| +#elif defined(OS_POSIX)
|
| + "libclearkeycdmadapter.so";
|
| #endif
|
|
|
| -#include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR.
|
| +const char kClearKeyCdmPluginMimeType[] = "application/x-ppapi-clearkey-cdm";
|
| +#endif // defined(ENABLE_PEPPER_CDMS)
|
|
|
| // Available key systems.
|
| const char kClearKeyKeySystem[] = "org.w3.clearkey";
|
| @@ -98,7 +108,7 @@
|
| // Base class for encrypted media tests.
|
| class EncryptedMediaTestBase : public MediaBrowserTest {
|
| public:
|
| - EncryptedMediaTestBase() {}
|
| + EncryptedMediaTestBase() : is_pepper_cdm_registered_(false) {}
|
|
|
| bool IsExternalClearKey(const std::string& key_system) {
|
| if (key_system == kExternalClearKeyKeySystem)
|
| @@ -251,13 +261,11 @@
|
|
|
| #if defined(ENABLE_PEPPER_CDMS)
|
| if (IsExternalClearKey(key_system)) {
|
| - RegisterPepperCdm(command_line, kClearKeyCdmAdapterFileName,
|
| - GetPepperType(key_system));
|
| + RegisterPepperCdm(command_line, kClearKeyCdmAdapterFileName, key_system);
|
| }
|
| #if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT)
|
| else if (IsWidevine(key_system)) { // NOLINT
|
| - RegisterPepperCdm(command_line, kWidevineCdmAdapterFileName,
|
| - GetPepperType(key_system));
|
| + RegisterPepperCdm(command_line, kWidevineCdmAdapterFileName, key_system);
|
| }
|
| #endif // defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT)
|
| #endif // defined(ENABLE_PEPPER_CDMS)
|
| @@ -265,10 +273,33 @@
|
|
|
| private:
|
| #if defined(ENABLE_PEPPER_CDMS)
|
| + void RegisterPepperCdm(base::CommandLine* command_line,
|
| + 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.
|
| + base::FilePath plugin_dir;
|
| + EXPECT_TRUE(PathService::Get(base::DIR_MODULE, &plugin_dir));
|
| + base::FilePath plugin_lib = plugin_dir.AppendASCII(adapter_name);
|
| + EXPECT_TRUE(base::PathExists(plugin_lib)) << plugin_lib.value();
|
| + base::FilePath::StringType pepper_plugin = plugin_lib.value();
|
| + pepper_plugin.append(FILE_PATH_LITERAL("#CDM#0.1.0.0;"));
|
| +#if defined(OS_WIN)
|
| + pepper_plugin.append(base::ASCIIToUTF16(GetPepperType(key_system)));
|
| +#else
|
| + pepper_plugin.append(GetPepperType(key_system));
|
| +#endif
|
| + command_line->AppendSwitchNative(switches::kRegisterPepperPlugins,
|
| + pepper_plugin);
|
| + }
|
| +
|
| // Adapted from key_systems.cc.
|
| std::string GetPepperType(const std::string& key_system) {
|
| if (IsExternalClearKey(key_system))
|
| - return kClearKeyCdmPepperMimeType;
|
| + return kClearKeyCdmPluginMimeType;
|
| #if defined(WIDEVINE_CDM_AVAILABLE)
|
| if (IsWidevine(key_system))
|
| return kWidevineCdmPluginMimeType;
|
| @@ -278,6 +309,8 @@
|
| return "";
|
| }
|
| #endif // defined(ENABLE_PEPPER_CDMS)
|
| +
|
| + bool is_pepper_cdm_registered_;
|
| };
|
|
|
| #if defined(ENABLE_PEPPER_CDMS)
|
|
|