| 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 332fef625f8e6fbb9287b33534c9c48aedc80a9c..f18a2b853ce32feafa80977ba191b2a62c337676 100644
|
| --- a/content/browser/media/encrypted_media_browsertest.cc
|
| +++ b/content/browser/media/encrypted_media_browsertest.cc
|
| @@ -10,9 +10,11 @@
|
| #include "content/public/common/content_switches.h"
|
| #include "content/public/test/browser_test_utils.h"
|
| #include "content/shell/browser/shell.h"
|
| +
|
| #if defined(OS_ANDROID)
|
| #include "base/android/build_info.h"
|
| #include "media/base/media.h"
|
| +#include "media/base/media_switches.h"
|
| #endif
|
|
|
| #if defined(ENABLE_MOJO_RENDERER)
|
| @@ -24,6 +26,10 @@
|
| // Available key systems.
|
| const char kClearKeyKeySystem[] = "org.w3.clearkey";
|
|
|
| +#if defined(OS_ANDROID)
|
| +const char kExternalClearKeyKeySystem[] = "org.chromium.externalclearkey";
|
| +#endif
|
| +
|
| // Supported media types.
|
| const char kWebMVorbisAudioOnly[] = "audio/webm; codecs=\"vorbis\"";
|
| #if !defined(DISABLE_ENCRYPTED_MEDIA_PLAYBACK_TESTS)
|
| @@ -60,7 +66,9 @@ static bool IsMSESupported() {
|
|
|
| // Tests encrypted media playback with a combination of parameters:
|
| // - char*: Key system name.
|
| -// - bool: True to load media using MSE, otherwise use src.
|
| +// - SrcType: The type of video src used to load media, MSE or SRC.
|
| +// It is okay to run this test as a non-parameterized test, in this case,
|
| +// GetParam() should not be called.
|
| class EncryptedMediaTest : public content::MediaBrowserTest,
|
| public testing::WithParamInterface<std::tr1::tuple<const char*, SrcType> > {
|
| public:
|
| @@ -142,6 +150,10 @@ class EncryptedMediaTest : public content::MediaBrowserTest,
|
| void SetUpCommandLine(base::CommandLine* command_line) override {
|
| command_line->AppendSwitch(
|
| switches::kDisableGestureRequirementForMediaPlayback);
|
| +#if defined(OS_ANDROID)
|
| + command_line->AppendSwitchASCII(switches::kEnableFeatures,
|
| + media::kExternalClearKeyForTesting.name);
|
| +#endif
|
| }
|
| };
|
|
|
| @@ -215,4 +227,16 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaTest, UnknownKeySystemThrowsException) {
|
| kEmeNotSupportedError);
|
| }
|
|
|
| +#if defined(OS_ANDROID)
|
| +// On Android, External Clear Key is supported in //content/shell/ by using mojo
|
| +// CDM with AesDecryptor running in the GPU process.
|
| +// On other platforms, External Clear Key is supported in chrome/, so it is
|
| +// tested in browser_tests.
|
| +IN_PROC_BROWSER_TEST_F(EncryptedMediaTest, ExternalClearKeyPlayback) {
|
| + RunSimpleEncryptedMediaTest("bear-320x240-av_enc-av.webm",
|
| + kWebMVorbisAudioVP8Video,
|
| + kExternalClearKeyKeySystem, MSE);
|
| +}
|
| +#endif
|
| +
|
| } // namespace content
|
|
|