| Index: content/browser/media/encrypted_media_browsertest.cc
|
| diff --git a/content/browser/media/encrypted_media_browsertest.cc b/content/browser/media/encrypted_media_browsertest.cc
|
| index af805b1f285391c51a141ed07514e0723472a11d..e2f68489423b12b4c56b24b9b24604cae9fa4499 100644
|
| --- a/content/browser/media/encrypted_media_browsertest.cc
|
| +++ b/content/browser/media/encrypted_media_browsertest.cc
|
| @@ -27,17 +27,17 @@
|
| #include <gnu/libc-version.h>
|
| #endif // defined(WIDEVINE_CDM_AVAILABLE) && defined(OS_LINUX)
|
|
|
| +#if defined(ENABLE_PEPPER_CDMS)
|
| // Platform-specific filename relative to the chrome executable.
|
| -#if defined(OS_WIN)
|
| -static const char kClearKeyLibraryName[] = "clearkeycdmadapter.dll";
|
| -static const char kWidevineLibraryName[] = "widevinecdmadapter.dll";
|
| -#elif defined(OS_MACOSX)
|
| -static const char kClearKeyLibraryName[] = "clearkeycdmadapter.plugin";
|
| -static const char kWidevineLibraryName[] = "widevinecdmadapter.plugin";
|
| +static const char kClearKeyCdmAdapterFileName[] =
|
| +#if defined(OS_MACOSX)
|
| + "clearkeycdmadapter.plugin";
|
| +#elif defined(OS_WIN)
|
| + "clearkeycdmadapter.dll";
|
| #elif defined(OS_POSIX)
|
| -static const char kClearKeyLibraryName[] = "libclearkeycdmadapter.so";
|
| -static const char kWidevineLibraryName[] = "libwidevinecdmadapter.so";
|
| + "libclearkeycdmadapter.so";
|
| #endif
|
| +#endif // defined(ENABLE_PEPPER_CDMS)
|
|
|
| // Available key systems.
|
| static const char kClearKeyKeySystem[] = "webkit-org.w3.clearkey";
|
| @@ -104,34 +104,31 @@ class EncryptedMediaTest : public testing::WithParamInterface<const char*>,
|
| }
|
|
|
| protected:
|
| - // Registers any CDM plugins not registered by default.
|
| +#if defined(ENABLE_PEPPER_CDMS)
|
| virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
|
| - RegisterPepperPlugin(command_line, kClearKeyLibraryName,
|
| - kExternalClearKeyKeySystem);
|
| + RegisterPepperCdm(command_line, kClearKeyCdmAdapterFileName,
|
| + kExternalClearKeyKeySystem);
|
| }
|
|
|
| - virtual void RegisterPepperPlugin(CommandLine* command_line,
|
| - const std::string& library_name,
|
| - const std::string& key_system) {
|
| + virtual void RegisterPepperCdm(CommandLine* command_line,
|
| + const std::string& adapter_name,
|
| + const std::string& key_system) {
|
| // Append the switch to register the Clear Key CDM Adapter.
|
| base::FilePath plugin_dir;
|
| EXPECT_TRUE(PathService::Get(base::DIR_MODULE, &plugin_dir));
|
| -#if defined(OS_WIN)
|
| - base::FilePath plugin_lib = plugin_dir.Append(ASCIIToWide(library_name));
|
| -#else
|
| - base::FilePath plugin_lib = plugin_dir.Append(library_name);
|
| -#endif
|
| + base::FilePath plugin_lib = plugin_dir.AppendASCII(adapter_name);
|
| EXPECT_TRUE(file_util::PathExists(plugin_lib));
|
| 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(ASCIIToWide(webkit_media::GetPluginType(key_system)));
|
| + pepper_plugin.append(ASCIIToWide(webkit_media::GetPepperType(key_system)));
|
| #else
|
| - pepper_plugin.append(webkit_media::GetPluginType(key_system));
|
| + pepper_plugin.append(webkit_media::GetPepperType(key_system));
|
| #endif
|
| command_line->AppendSwitchNative(switches::kRegisterPepperPlugins,
|
| pepper_plugin);
|
| }
|
| +#endif // defined(ENABLE_PEPPER_CDMS)
|
| };
|
|
|
| #if defined(WIDEVINE_CDM_AVAILABLE)
|
| @@ -164,20 +161,23 @@ class WVEncryptedMediaTest : public EncryptedMediaTest {
|
| }
|
|
|
| protected:
|
| - // Registers any CDM plugins not registered by default.
|
| +#if defined(ENABLE_PEPPER_CDMS)
|
| virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
|
| - command_line->AppendSwitch(switches::kAllowFileAccessFromFiles);
|
| - RegisterPepperPlugin(command_line, kWidevineLibraryName,
|
| - kWidevineKeySystem);
|
| + RegisterPepperCdm(command_line, kWidevineCdmAdapterFileName,
|
| + kWidevineKeySystem);
|
| }
|
| +#endif // defined(ENABLE_PEPPER_CDMS)
|
| };
|
| #endif // defined(WIDEVINE_CDM_AVAILABLE)
|
|
|
| INSTANTIATE_TEST_CASE_P(ClearKey, EncryptedMediaTest,
|
| ::testing::Values(kClearKeyKeySystem));
|
|
|
| +// External Clear Key is currently only used on platforms that use Pepper CDMs.
|
| +#if defined(ENABLE_PEPPER_CDMS)
|
| INSTANTIATE_TEST_CASE_P(ExternalClearKey, EncryptedMediaTest,
|
| ::testing::Values(kExternalClearKeyKeySystem));
|
| +#endif
|
|
|
| IN_PROC_BROWSER_TEST_F(EncryptedMediaTest, InvalidKeySystem) {
|
| const string16 kExpected = ASCIIToUTF16(
|
|
|