| Index: chrome/browser/load_library_perf_test.cc
|
| diff --git a/chrome/browser/load_library_perf_test.cc b/chrome/browser/load_library_perf_test.cc
|
| index 5b4fe125709d5d136d0e78b2e267e49a927e52ec..6d30b2f4cf32c9445cc76d8b3e4ddc6ff8d2888d 100644
|
| --- a/chrome/browser/load_library_perf_test.cc
|
| +++ b/chrome/browser/load_library_perf_test.cc
|
| @@ -14,12 +14,24 @@
|
| #include "build/build_config.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "testing/perf/perf_test.h"
|
| +
|
| #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR.
|
|
|
| +#if defined(ENABLE_PEPPER_CDMS)
|
| +#include "chrome/browser/media/pepper_cdm_test_helper.h"
|
| +#include "media/cdm/cdm_paths.h"
|
| +#endif
|
| +
|
| +namespace {
|
| +
|
| // Measures the size (bytes) and time to load (sec) of a native library.
|
| -void MeasureSizeAndTimeToLoadNativeLibrary(const base::FilePath& library_name) {
|
| +// |library_relative_dir| is the relative path based on DIR_MODULE.
|
| +void MeasureSizeAndTimeToLoadNativeLibrary(
|
| + const base::FilePath& library_relative_dir,
|
| + const base::FilePath& library_name) {
|
| base::FilePath output_dir;
|
| ASSERT_TRUE(PathService::Get(base::DIR_MODULE, &output_dir));
|
| + output_dir = output_dir.Append(library_relative_dir);
|
| base::FilePath library_path = output_dir.Append(library_name);
|
| ASSERT_TRUE(base::PathExists(library_path)) << library_path.value();
|
|
|
| @@ -47,42 +59,48 @@ void MeasureSizeAndTimeToLoadNativeLibrary(const base::FilePath& library_name) {
|
| true);
|
| }
|
|
|
| -// Use the base name of the library to dynamically get the platform specific
|
| -// name. See base::GetNativeLibraryName() for details.
|
| -void MeasureSizeAndTimeToLoadNativeLibraryByBaseName(
|
| - const std::string& base_library_name) {
|
| - MeasureSizeAndTimeToLoadNativeLibrary(base::FilePath::FromUTF16Unsafe(
|
| - base::GetNativeLibraryName(base::ASCIIToUTF16(base_library_name))));
|
| +#if defined(ENABLE_PEPPER_CDMS)
|
| +
|
| +// File name of the ClearKey CDM on different platforms.
|
| +// TODO(xhwang): Consolidate this with external_clear_key_test_helper.cc.
|
| +const char kClearKeyCdmFileName[] =
|
| +#if defined(OS_MACOSX)
|
| + "libclearkeycdm.dylib";
|
| +#elif defined(OS_WIN)
|
| + "clearkeycdm.dll";
|
| +#else // OS_LINUX, etc.
|
| + "libclearkeycdm.so";
|
| +#endif
|
| +
|
| +void MeasureSizeAndTimeToLoadCdm(const std::string& cdm_base_dir,
|
| + const std::string& cdm_name) {
|
| + MeasureSizeAndTimeToLoadNativeLibrary(
|
| + media::GetPlatformSpecificDirectory(cdm_base_dir),
|
| + base::FilePath::FromUTF8Unsafe(cdm_name));
|
| }
|
|
|
| +#endif // defined(ENABLE_PEPPER_CDMS)
|
| +
|
| +} // namespace
|
| +
|
| #if defined(ENABLE_PEPPER_CDMS)
|
| #if defined(WIDEVINE_CDM_AVAILABLE)
|
| TEST(LoadCDMPerfTest, Widevine) {
|
| - MeasureSizeAndTimeToLoadNativeLibrary(
|
| - base::FilePath::FromUTF8Unsafe(kWidevineCdmFileName));
|
| + MeasureSizeAndTimeToLoadCdm(kWidevineCdmBaseDirectory, kWidevineCdmFileName);
|
| }
|
|
|
| TEST(LoadCDMPerfTest, WidevineAdapter) {
|
| - MeasureSizeAndTimeToLoadNativeLibrary(
|
| - base::FilePath::FromUTF8Unsafe(kWidevineCdmAdapterFileName));
|
| + MeasureSizeAndTimeToLoadCdm(kWidevineCdmBaseDirectory,
|
| + kWidevineCdmAdapterFileName);
|
| }
|
| #endif // defined(WIDEVINE_CDM_AVAILABLE)
|
|
|
| TEST(LoadCDMPerfTest, ExternalClearKey) {
|
| -#if defined(OS_MACOSX)
|
| - MeasureSizeAndTimeToLoadNativeLibrary(
|
| - base::FilePath::FromUTF8Unsafe("libclearkeycdm.dylib"));
|
| -#else
|
| - MeasureSizeAndTimeToLoadNativeLibraryByBaseName("clearkeycdm");
|
| -#endif // defined(OS_MACOSX)
|
| + MeasureSizeAndTimeToLoadCdm(kClearKeyCdmBaseDirectory, kClearKeyCdmFileName);
|
| }
|
|
|
| TEST(LoadCDMPerfTest, ExternalClearKeyAdapter) {
|
| -#if defined(OS_MACOSX)
|
| - MeasureSizeAndTimeToLoadNativeLibrary(
|
| - base::FilePath::FromUTF8Unsafe("clearkeycdmadapter.plugin"));
|
| -#else
|
| - MeasureSizeAndTimeToLoadNativeLibraryByBaseName("clearkeycdmadapter");
|
| -#endif // defined(OS_MACOSX)
|
| + MeasureSizeAndTimeToLoadCdm(kClearKeyCdmBaseDirectory,
|
| + kClearKeyCdmAdapterFileName);
|
| }
|
| #endif // defined(ENABLE_PEPPER_CDMS)
|
|
|