Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6339)

Unified Diff: chrome/browser/media/encrypted_media_browsertest.cc

Issue 79903002: Add decrypt-only external clear key browser tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 1998c93f9154aae7db0eea564dcda065c4409781..282f770d4e7ae06bedb008a0f7de5ef8227f798e 100644
--- a/chrome/browser/media/encrypted_media_browsertest.cc
+++ b/chrome/browser/media/encrypted_media_browsertest.cc
@@ -11,6 +11,7 @@
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/common/chrome_switches.h"
#include "content/public/test/browser_test_utils.h"
+#include "media/cdm/key_system_names.h"
xhwang 2013/11/22 07:44:26 We could use key system names defined in this file
ddorwin 2013/11/22 18:04:01 I hope to remove that file - at least for non-test
xhwang 2013/11/22 18:18:22 SG, removed.
#if defined(OS_ANDROID)
#include "base/android/build_info.h"
#endif
@@ -33,8 +34,11 @@ const char kClearKeyCdmPluginMimeType[] = "application/x-ppapi-clearkey-cdm";
// Available key systems.
const char kClearKeyKeySystem[] = "webkit-org.w3.clearkey";
-const char kExternalClearKeyKeySystem[] =
- "org.chromium.externalclearkey";
+const char kExternalClearKeyKeySystem[] = "org.chromium.externalclearkey";
+const char kExternalClearKeyDecryptOnlyKeySystem[] =
+ "org.chromium.externalclearkey.decryptonly";
+const char kExternalClearKeyInitializeFailKeySystem[] =
+ "org.chromium.externalclearkey.initializefail";
// Supported media types.
const char kWebMAudioOnly[] = "audio/webm; codecs=\"vorbis\"";
@@ -71,13 +75,9 @@ class EncryptedMediaTestBase : public MediaBrowserTest {
public:
EncryptedMediaTestBase() : is_pepper_cdm_registered_(false) {}
- bool IsExternalClearKey(const char* key_system) {
- return (strcmp(key_system, kExternalClearKeyKeySystem) == 0);
- }
-
#if defined(WIDEVINE_CDM_AVAILABLE)
- bool IsWidevine(const char* key_system) {
- return (strcmp(key_system, kWidevineKeySystem) == 0);
+ bool IsWidevine(const std::string& key_system) {
+ return key_system == kWidevineKeySystem;
}
#endif // defined(WIDEVINE_CDM_AVAILABLE)
@@ -147,14 +147,12 @@ class EncryptedMediaTestBase : public MediaBrowserTest {
void SetUpCommandLineForKeySystem(const char* key_system,
CommandLine* command_line) {
#if defined(ENABLE_PEPPER_CDMS)
- if (IsExternalClearKey(key_system)) {
- RegisterPepperCdm(command_line, kClearKeyCdmAdapterFileName,
- kExternalClearKeyKeySystem);
+ if (media::IsExternalClearKey(key_system)) {
ddorwin 2013/11/22 18:04:01 Since I want to get rid of that file, I'm not sure
xhwang 2013/11/22 18:18:22 Done.
+ RegisterPepperCdm(command_line, kClearKeyCdmAdapterFileName, key_system);
}
#if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT)
else if (IsWidevine(key_system)) {
- RegisterPepperCdm(command_line, kWidevineCdmAdapterFileName,
- kWidevineKeySystem);
+ RegisterPepperCdm(command_line, kWidevineCdmAdapterFileName, key_system);
}
#endif // defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT)
#endif // defined(ENABLE_PEPPER_CDMS)
@@ -187,10 +185,10 @@ class EncryptedMediaTestBase : public MediaBrowserTest {
// Adapted from key_systems.cc.
std::string GetPepperType(const std::string& key_system) {
- if (key_system == kExternalClearKeyKeySystem)
+ if (media::IsExternalClearKey(key_system))
return kClearKeyCdmPluginMimeType;
#if defined(WIDEVINE_CDM_AVAILABLE)
- if (key_system == kWidevineKeySystem)
+ if (IsWidevine(key_system))
return kWidevineCdmPluginMimeType;
#endif // WIDEVINE_CDM_AVAILABLE
@@ -203,7 +201,8 @@ class EncryptedMediaTestBase : public MediaBrowserTest {
};
#if defined(ENABLE_PEPPER_CDMS)
-// Tests encrypted media playback using ExternalClearKey key system.
+// Tests encrypted media playback using ExternalClearKey key system in
+// decrypt-and-decode mode.
class ECKEncryptedMediaTest : public EncryptedMediaTestBase {
protected:
virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
@@ -300,6 +299,9 @@ INSTANTIATE_TEST_CASE_P(SRC_ExternalClearKey, EncryptedMediaTest,
Combine(Values(kExternalClearKeyKeySystem), Values(SRC)));
INSTANTIATE_TEST_CASE_P(MSE_ExternalClearKey, EncryptedMediaTest,
Combine(Values(kExternalClearKeyKeySystem), Values(MSE)));
+// To reduce test time, only run ExternalClearKeyDecryptOnly with MSE.
+INSTANTIATE_TEST_CASE_P(MSE_ExternalClearKeyDecryptOnly, EncryptedMediaTest,
+ Combine(Values(kExternalClearKeyDecryptOnlyKeySystem), Values(MSE)));
#endif // defined(ENABLE_PEPPER_CDMS)
#if defined(WIDEVINE_CDM_AVAILABLE)
@@ -381,7 +383,7 @@ IN_PROC_BROWSER_TEST_F(ECKEncryptedMediaTest,
RunEncryptedMediaTest("encrypted_media_player.html",
"bear-a-enc_a.webm",
kWebMAudioOnly,
- "org.chromium.externalclearkey.initializefail",
+ kExternalClearKeyInitializeFailKeySystem,
SRC,
kEmeKeyError);
}

Powered by Google App Engine
This is Rietveld 408576698