Chromium Code Reviews| 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..e67532fc81eab19efe84b5997034d94220020401 100644 |
| --- a/chrome/browser/load_library_perf_test.cc |
| +++ b/chrome/browser/load_library_perf_test.cc |
| @@ -14,12 +14,22 @@ |
| #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) { |
| +void MeasureSizeAndTimeToLoadNativeLibrary(const base::FilePath& library_dir, |
|
ddorwin
2016/05/19 00:04:26
s/dir/relative_path/?
xhwang
2016/05/20 00:22:35
Done.
|
| + const base::FilePath& library_name) { |
| base::FilePath output_dir; |
| ASSERT_TRUE(PathService::Get(base::DIR_MODULE, &output_dir)); |
| + output_dir = output_dir.Append(library_dir); |
| base::FilePath library_path = output_dir.Append(library_name); |
| ASSERT_TRUE(base::PathExists(library_path)) << library_path.value(); |
| @@ -47,42 +57,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) |