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

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

Issue 1712903002: Remove prefixed EME. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix isRenewalMessage() in browser tests. Created 4 years, 10 months 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
« no previous file with comments | « chrome/browser/about_flags.cc ('k') | content/child/runtime_features.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 738b6d85088225c80aedb3141f040068a0b8dd9a..21d2bb4fe15da4bbe316f4275e904ca34c020c65 100644
--- a/chrome/browser/media/encrypted_media_browsertest.cc
+++ b/chrome/browser/media/encrypted_media_browsertest.cc
@@ -41,7 +41,6 @@ const char kClearKeyCdmPluginMimeType[] = "application/x-ppapi-clearkey-cdm";
// Available key systems.
const char kClearKeyKeySystem[] = "org.w3.clearkey";
-const char kPrefixedClearKeyKeySystem[] = "webkit-org.w3.clearkey";
const char kExternalClearKeyKeySystem[] = "org.chromium.externalclearkey";
const char kExternalClearKeyFileIOTestKeySystem[] =
"org.chromium.externalclearkey.fileiotest";
@@ -74,9 +73,7 @@ const char kEmeLoadFailed[] = "EME_LOAD_FAILED";
const char kEmeUpdateFailed[] = "EME_UPDATE_FAILED";
const char kEmeErrorEvent[] = "EME_ERROR_EVENT";
const char kEmeMessageUnexpectedType[] = "EME_MESSAGE_UNEXPECTED_TYPE";
-const char kPrefixedEmeRenewalMissingHeader[] =
- "PREFIXED_EME_RENEWAL_MISSING_HEADER";
-const char kPrefixedEmeErrorEvent[] = "PREFIXED_EME_ERROR_EVENT";
+const char kEmeRenewalMissingHeader[] = "EME_RENEWAL_MISSING_HEADER";
const char kDefaultEmePlayer[] = "eme_player.html";
@@ -86,12 +83,6 @@ enum SrcType {
MSE
};
-// Whether to use prefixed or unprefixed EME.
-enum EmeVersion {
- PREFIXED,
- UNPREFIXED
-};
-
// Whether the video should be played once or twice.
enum class PlayTwice { NO, YES };
@@ -159,7 +150,6 @@ class EncryptedMediaTestBase : public MediaBrowserTest {
const std::string& media_type,
const std::string& key_system,
SrcType src_type,
- EmeVersion eme_version,
const std::string& session_to_load,
bool force_invalid_response,
PlayTwice play_twice,
@@ -174,8 +164,6 @@ class EncryptedMediaTestBase : public MediaBrowserTest {
query_params.push_back(std::make_pair("keySystem", key_system));
if (src_type == MSE)
query_params.push_back(std::make_pair("useMSE", "1"));
- if (eme_version == PREFIXED)
- query_params.push_back(std::make_pair("usePrefixedEME", "1"));
if (force_invalid_response)
query_params.push_back(std::make_pair("forceInvalidResponse", "1"));
if (!session_to_load.empty())
@@ -189,18 +177,15 @@ class EncryptedMediaTestBase : public MediaBrowserTest {
void RunSimpleEncryptedMediaTest(const std::string& media_file,
const std::string& media_type,
const std::string& key_system,
- SrcType src_type,
- EmeVersion eme_version) {
+ SrcType src_type) {
std::string expected_title = kEnded;
if (!IsPlayBackPossible(key_system)) {
- expected_title = (eme_version == EmeVersion::UNPREFIXED)
- ? kEmeUpdateFailed
- : kPrefixedEmeErrorEvent;
+ expected_title = kEmeUpdateFailed;
}
RunEncryptedMediaTest(kDefaultEmePlayer, media_file, media_type, key_system,
- src_type, eme_version, kNoSessionToLoad, false,
- PlayTwice::NO, expected_title);
+ src_type, kNoSessionToLoad, false, PlayTwice::NO,
+ expected_title);
// Check KeyMessage received for all key systems.
bool receivedKeyMessage = false;
EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
@@ -260,15 +245,12 @@ class EncryptedMediaTestBase : public MediaBrowserTest {
title_watcher->AlsoWaitForTitle(
base::ASCIIToUTF16(kEmeMessageUnexpectedType));
title_watcher->AlsoWaitForTitle(
- base::ASCIIToUTF16(kPrefixedEmeRenewalMissingHeader));
- title_watcher->AlsoWaitForTitle(base::ASCIIToUTF16(kPrefixedEmeErrorEvent));
+ base::ASCIIToUTF16(kEmeRenewalMissingHeader));
}
void SetUpCommandLine(base::CommandLine* command_line) override {
command_line->AppendSwitch(
switches::kDisableGestureRequirementForMediaPlayback);
- // For simplicity with respect to parameterized tests, enable for all tests.
- command_line->AppendSwitch(switches::kEnablePrefixedEncryptedMedia);
}
void SetUpCommandLineForKeySystem(const std::string& key_system,
@@ -344,46 +326,16 @@ class ECKEncryptedMediaTest : public EncryptedMediaTestBase {
const std::string& expected_title) {
// Since we do not test playback, arbitrarily choose a test file and source
// type.
- RunEncryptedMediaTest(
- kDefaultEmePlayer, "bear-a_enc-a.webm", kWebMAudioOnly, key_system, SRC,
- UNPREFIXED, kNoSessionToLoad, false, PlayTwice::NO, expected_title);
- }
-
- void TestPlaybackCase(const std::string& session_to_load,
- const std::string& expected_title) {
- RunEncryptedMediaTest(kDefaultEmePlayer, "bear-320x240-v_enc-v.webm",
- kWebMVideoOnly, kExternalClearKeyKeySystem, SRC,
- UNPREFIXED, session_to_load, false, PlayTwice::NO,
- expected_title);
- }
-
- protected:
- void SetUpCommandLine(base::CommandLine* command_line) override {
- EncryptedMediaTestBase::SetUpCommandLine(command_line);
- SetUpCommandLineForKeySystem(kExternalClearKeyKeySystem, command_line);
- }
-};
-
-// Tests encrypted media playback using ExternalClearKey key system in
-// decrypt-and-decode mode for prefixed EME.
-class ECKPrefixedEncryptedMediaTest : public EncryptedMediaTestBase {
- public:
- // We use special |key_system| names to do non-playback related tests, e.g.
- // kExternalClearKeyFileIOTestKeySystem is used to test file IO.
- void TestNonPlaybackCases(const std::string& key_system,
- const std::string& expected_title) {
- // Since we do not test playback, arbitrarily choose a test file and source
- // type.
- RunEncryptedMediaTest(
- kDefaultEmePlayer, "bear-a_enc-a.webm", kWebMAudioOnly, key_system, SRC,
- PREFIXED, kNoSessionToLoad, false, PlayTwice::NO, expected_title);
+ RunEncryptedMediaTest(kDefaultEmePlayer, "bear-a_enc-a.webm",
+ kWebMAudioOnly, key_system, SRC, kNoSessionToLoad,
+ false, PlayTwice::NO, expected_title);
}
void TestPlaybackCase(const std::string& session_to_load,
const std::string& expected_title) {
RunEncryptedMediaTest(kDefaultEmePlayer, "bear-320x240-v_enc-v.webm",
kWebMVideoOnly, kExternalClearKeyKeySystem, SRC,
- PREFIXED, session_to_load, false, PlayTwice::NO,
+ session_to_load, false, PlayTwice::NO,
expected_title);
}
@@ -410,15 +362,13 @@ class WVEncryptedMediaTest : public EncryptedMediaTestBase {
// Tests encrypted media playback with a combination of parameters:
// - char*: Key system name.
// - SrcType: Use MSE or SRC.
-// - EmeVersion: Use PREFIXED or UNPREFIXED EME.
//
// Note: Only parameterized (*_P) tests can be used. Non-parameterized (*_F)
// tests will crash at GetParam(). To add non-parameterized tests, use
// EncryptedMediaTestBase or one of its subclasses (e.g. WVEncryptedMediaTest).
-class EncryptedMediaTest
- : public EncryptedMediaTestBase,
- public testing::WithParamInterface<
- std::tr1::tuple<const char*, SrcType, EmeVersion> > {
+class EncryptedMediaTest : public EncryptedMediaTestBase,
+ public testing::WithParamInterface<
+ std::tr1::tuple<const char*, SrcType>> {
public:
std::string CurrentKeySystem() {
return std::tr1::get<0>(GetParam());
@@ -428,17 +378,10 @@ class EncryptedMediaTest
return std::tr1::get<1>(GetParam());
}
- EmeVersion CurrentEmeVersion() {
- return std::tr1::get<2>(GetParam());
- }
-
void TestSimplePlayback(const std::string& encrypted_media,
const std::string& media_type) {
- RunSimpleEncryptedMediaTest(encrypted_media,
- media_type,
- CurrentKeySystem(),
- CurrentSourceType(),
- CurrentEmeVersion());
+ RunSimpleEncryptedMediaTest(encrypted_media, media_type, CurrentKeySystem(),
+ CurrentSourceType());
}
void TestMultiplePlayback(const std::string& encrypted_media,
@@ -446,26 +389,21 @@ class EncryptedMediaTest
DCHECK(IsPlayBackPossible(CurrentKeySystem()));
RunEncryptedMediaTest(kDefaultEmePlayer, encrypted_media, media_type,
CurrentKeySystem(), CurrentSourceType(),
- CurrentEmeVersion(), kNoSessionToLoad, false,
- PlayTwice::YES, kEnded);
+ kNoSessionToLoad, false, PlayTwice::YES, kEnded);
}
void RunInvalidResponseTest() {
- std::string expected_response =
- (CurrentEmeVersion() == EmeVersion::UNPREFIXED)
- ? kEmeUpdateFailed
- : kPrefixedEmeErrorEvent;
- RunEncryptedMediaTest(
- kDefaultEmePlayer, "bear-320x240-av_enc-av.webm", kWebMAudioVideo,
- CurrentKeySystem(), CurrentSourceType(), CurrentEmeVersion(),
- kNoSessionToLoad, true, PlayTwice::NO, expected_response);
+ RunEncryptedMediaTest(kDefaultEmePlayer, "bear-320x240-av_enc-av.webm",
+ kWebMAudioVideo, CurrentKeySystem(),
+ CurrentSourceType(), kNoSessionToLoad, true,
+ PlayTwice::NO, kEmeUpdateFailed);
}
void TestFrameSizeChange() {
- RunEncryptedMediaTest(
- "encrypted_frame_size_change.html", "frame_size_change-av_enc-v.webm",
- kWebMAudioVideo, CurrentKeySystem(), CurrentSourceType(),
- CurrentEmeVersion(), kNoSessionToLoad, false, PlayTwice::NO, kEnded);
+ RunEncryptedMediaTest("encrypted_frame_size_change.html",
+ "frame_size_change-av_enc-v.webm", kWebMAudioVideo,
+ CurrentKeySystem(), CurrentSourceType(),
+ kNoSessionToLoad, false, PlayTwice::NO, kEnded);
}
void TestConfigChange() {
@@ -473,8 +411,6 @@ class EncryptedMediaTest
base::StringPairs query_params;
query_params.push_back(std::make_pair("keySystem", CurrentKeySystem()));
query_params.push_back(std::make_pair("runEncrypted", "1"));
- if (CurrentEmeVersion() == PREFIXED)
- query_params.push_back(std::make_pair("usePrefixedEME", "1"));
RunEncryptedMediaTestPage("mse_config_change.html",
CurrentKeySystem(),
query_params,
@@ -499,7 +435,6 @@ class EncryptedMediaTest
void TestDifferentContainers(EncryptedContainer video_format,
EncryptedContainer audio_format) {
DCHECK(IsMSESupported());
- DCHECK_NE(CurrentEmeVersion(), PREFIXED);
base::StringPairs query_params;
query_params.push_back(std::make_pair("keySystem", CurrentKeySystem()));
query_params.push_back(std::make_pair("runEncrypted", "1"));
@@ -522,93 +457,42 @@ using ::testing::Combine;
using ::testing::Values;
#if !defined(OS_ANDROID)
-INSTANTIATE_TEST_CASE_P(SRC_ClearKey_Prefixed,
- EncryptedMediaTest,
- Combine(Values(kPrefixedClearKeyKeySystem),
- Values(SRC),
- Values(PREFIXED)));
-
INSTANTIATE_TEST_CASE_P(SRC_ClearKey,
EncryptedMediaTest,
- Combine(Values(kClearKeyKeySystem),
- Values(SRC),
- Values(UNPREFIXED)));
+ Combine(Values(kClearKeyKeySystem), Values(SRC)));
#endif // !defined(OS_ANDROID)
-INSTANTIATE_TEST_CASE_P(MSE_ClearKey_Prefixed,
- EncryptedMediaTest,
- Combine(Values(kPrefixedClearKeyKeySystem),
- Values(MSE),
- Values(PREFIXED)));
INSTANTIATE_TEST_CASE_P(MSE_ClearKey,
EncryptedMediaTest,
- Combine(Values(kClearKeyKeySystem),
- Values(MSE),
- Values(UNPREFIXED)));
+ Combine(Values(kClearKeyKeySystem), Values(MSE)));
// External Clear Key is currently only used on platforms that use Pepper CDMs.
#if defined(ENABLE_PEPPER_CDMS)
-INSTANTIATE_TEST_CASE_P(SRC_ExternalClearKey_Prefixed,
- EncryptedMediaTest,
- Combine(Values(kExternalClearKeyKeySystem),
- Values(SRC),
- Values(PREFIXED)));
INSTANTIATE_TEST_CASE_P(SRC_ExternalClearKey,
EncryptedMediaTest,
Combine(Values(kExternalClearKeyKeySystem),
- Values(SRC),
- Values(UNPREFIXED)));
+ Values(SRC)));
-INSTANTIATE_TEST_CASE_P(MSE_ExternalClearKey_Prefixed,
- EncryptedMediaTest,
- Combine(Values(kExternalClearKeyKeySystem),
- Values(MSE),
- Values(PREFIXED)));
INSTANTIATE_TEST_CASE_P(MSE_ExternalClearKey,
EncryptedMediaTest,
Combine(Values(kExternalClearKeyKeySystem),
- Values(MSE),
- Values(UNPREFIXED)));
+ Values(MSE)));
const char kExternalClearKeyDecryptOnlyKeySystem[] =
"org.chromium.externalclearkey.decryptonly";
// To reduce test time, only run ExternalClearKeyDecryptOnly with MSE.
-INSTANTIATE_TEST_CASE_P(MSE_ExternalClearKeyDecryptOnly_Prefixed,
- EncryptedMediaTest,
- Combine(Values(kExternalClearKeyDecryptOnlyKeySystem),
- Values(MSE),
- Values(PREFIXED)));
INSTANTIATE_TEST_CASE_P(MSE_ExternalClearKeyDecryptOnly,
EncryptedMediaTest,
Combine(Values(kExternalClearKeyDecryptOnlyKeySystem),
- Values(MSE),
- Values(UNPREFIXED)));
+ Values(MSE)));
#endif // defined(ENABLE_PEPPER_CDMS)
#if defined(WIDEVINE_CDM_AVAILABLE)
-
-// Prefixed Widevine tests fail in Chrome OS official builds due to the request
-// for permissions. Since prefixed EME is deprecated and will be removed soon,
-// don't run these tests. http://crbug.com/430711
-#if !(defined(OS_CHROMEOS) && defined(OFFICIAL_BUILD))
-
-// This test doesn't fully test playback with Widevine. So we only run Widevine
-// test with MSE (no SRC) to reduce test time. Also, on Android EME only works
-// with MSE and we cannot run this test with SRC.
-INSTANTIATE_TEST_CASE_P(MSE_Widevine_Prefixed,
- EncryptedMediaTest,
- Combine(Values(kWidevineKeySystem),
- Values(MSE),
- Values(PREFIXED)));
-#endif // !(defined(OS_CHROMEOS) && defined(OFFICIAL_BUILD))
-
#if !defined(OS_CHROMEOS)
INSTANTIATE_TEST_CASE_P(MSE_Widevine,
EncryptedMediaTest,
- Combine(Values(kWidevineKeySystem),
- Values(MSE),
- Values(UNPREFIXED)));
+ Combine(Values(kWidevineKeySystem), Values(MSE)));
#endif // !defined(OS_CHROMEOS)
#endif // defined(WIDEVINE_CDM_AVAILABLE)
@@ -711,10 +595,6 @@ IN_PROC_BROWSER_TEST_P(EncryptedMediaTest,
DVLOG(0) << "Skipping test; Can only play MP4 encrypted streams by MSE.";
return;
}
- if (CurrentEmeVersion() != UNPREFIXED) {
- DVLOG(0) << "Skipping test; Only supported by unprefixed EME";
- return;
- }
if (!IsPlayBackPossible(CurrentKeySystem())) {
DVLOG(0) << "Skipping test - Test requires video playback.";
return;
@@ -730,10 +610,6 @@ IN_PROC_BROWSER_TEST_P(EncryptedMediaTest,
DVLOG(0) << "Skipping test; Can only play MP4 encrypted streams by MSE.";
return;
}
- if (CurrentEmeVersion() != UNPREFIXED) {
- DVLOG(0) << "Skipping test; Only supported by unprefixed EME";
- return;
- }
if (!IsPlayBackPossible(CurrentKeySystem())) {
DVLOG(0) << "Skipping test - Test requires video playback.";
return;
@@ -749,10 +625,6 @@ IN_PROC_BROWSER_TEST_P(EncryptedMediaTest,
DVLOG(0) << "Skipping test; Can only play MP4 encrypted streams by MSE.";
return;
}
- if (CurrentEmeVersion() != UNPREFIXED) {
- DVLOG(0) << "Skipping test; Only supported by unprefixed EME";
- return;
- }
if (!IsPlayBackPossible(CurrentKeySystem())) {
DVLOG(0) << "Skipping test - Test requires video playback.";
return;
@@ -763,18 +635,11 @@ IN_PROC_BROWSER_TEST_P(EncryptedMediaTest,
#endif // defined(USE_PROPRIETARY_CODECS)
#if defined(WIDEVINE_CDM_AVAILABLE)
-// The parent key system cannot be used in generateKeyRequest.
-IN_PROC_BROWSER_TEST_F(WVEncryptedMediaTest, ParentThrowsException_Prefixed) {
- RunEncryptedMediaTest(kDefaultEmePlayer, "bear-a_enc-a.webm", kWebMAudioOnly,
- "com.widevine", MSE, PREFIXED, kNoSessionToLoad, false,
- PlayTwice::NO, kEmeNotSupportedError);
-}
-
// The parent key system cannot be used when creating MediaKeys.
IN_PROC_BROWSER_TEST_F(WVEncryptedMediaTest, ParentThrowsException) {
RunEncryptedMediaTest(kDefaultEmePlayer, "bear-a_enc-a.webm", kWebMAudioOnly,
- "com.widevine", MSE, UNPREFIXED, kNoSessionToLoad,
- false, PlayTwice::NO, kEmeNotSupportedError);
+ "com.widevine", MSE, kNoSessionToLoad, false,
+ PlayTwice::NO, kEmeNotSupportedError);
}
#endif // defined(WIDEVINE_CDM_AVAILABLE)
@@ -813,39 +678,4 @@ IN_PROC_BROWSER_TEST_F(ECKEncryptedMediaTest, LoadUnknownSession) {
TestPlaybackCase(kUnknownSession, kEmeSessionNotFound);
}
-IN_PROC_BROWSER_TEST_F(ECKPrefixedEncryptedMediaTest, InitializeCDMFail) {
- TestNonPlaybackCases(kExternalClearKeyInitializeFailKeySystem,
- kPrefixedEmeErrorEvent);
-}
-
-// When CDM crashes, we should still get a decode error.
-// crbug.com/386657
-IN_PROC_BROWSER_TEST_F(ECKPrefixedEncryptedMediaTest,
- DISABLED_CDMCrashDuringDecode) {
- IgnorePluginCrash();
- TestNonPlaybackCases(kExternalClearKeyCrashKeySystem, kError);
-}
-
-// Testing that the media browser test does fail on plugin crash.
-// crbug.com/386657
-IN_PROC_BROWSER_TEST_F(ECKPrefixedEncryptedMediaTest,
- DISABLED_CDMExpectedCrash) {
- // Plugin crash is not ignored by default, the test is expected to fail.
- EXPECT_NONFATAL_FAILURE(
- TestNonPlaybackCases(kExternalClearKeyCrashKeySystem, kError),
- "plugin crash");
-}
-
-IN_PROC_BROWSER_TEST_F(ECKPrefixedEncryptedMediaTest, FileIOTest) {
- TestNonPlaybackCases(kExternalClearKeyFileIOTestKeySystem,
- kFileIOTestSuccess);
-}
-
-IN_PROC_BROWSER_TEST_F(ECKPrefixedEncryptedMediaTest, LoadLoadableSession) {
- TestPlaybackCase(kLoadableSession, kEnded);
-}
-
-IN_PROC_BROWSER_TEST_F(ECKPrefixedEncryptedMediaTest, LoadUnknownSession) {
- TestPlaybackCase(kUnknownSession, kPrefixedEmeErrorEvent);
-}
#endif // defined(ENABLE_PEPPER_CDMS)
« no previous file with comments | « chrome/browser/about_flags.cc ('k') | content/child/runtime_features.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698