Index: chrome/browser/media/encrypted_media_istypesupported_browsertest.cc |
diff --git a/chrome/browser/media/encrypted_media_istypesupported_browsertest.cc b/chrome/browser/media/encrypted_media_istypesupported_browsertest.cc |
index 17f195ce844fb445b355f73a8866ab0438081d6e..fd684e22f3efb0f92681d1a83bcde55db83e6bc0 100644 |
--- a/chrome/browser/media/encrypted_media_istypesupported_browsertest.cc |
+++ b/chrome/browser/media/encrypted_media_istypesupported_browsertest.cc |
@@ -122,17 +122,24 @@ class EncryptedMediaIsTypeSupportedTest : public InProcessBrowserTest { |
avc3_codec_.push_back("avc3"); |
- avc3_extended_codec_.push_back("avc3.64001f"); |
+ avc3_extended_codec_.push_back("avc3.64001F"); |
- aac_codec_.push_back("mp4a"); |
+ aac_codec_.push_back("mp4a.40.2"); |
+ |
+ mp4a_invalid_no_extension_.push_back("mp4a"); |
avc1_and_aac_codecs_.push_back("avc1"); |
- avc1_and_aac_codecs_.push_back("mp4a"); |
+ avc1_and_aac_codecs_.push_back("mp4a.40.2"); |
+ |
+ avc3_and_aac_codecs_.push_back("avc3"); |
+ avc3_and_aac_codecs_.push_back("mp4a.40.2"); |
unknown_codec_.push_back("foo"); |
mixed_codecs_.push_back("vorbis"); |
mixed_codecs_.push_back("avc1"); |
+ |
+ vp8_invalid_extension_codec_.push_back("vp8.1"); |
} |
typedef std::vector<std::string> CodecVector; |
@@ -160,11 +167,20 @@ class EncryptedMediaIsTypeSupportedTest : public InProcessBrowserTest { |
return avc3_extended_codec_; |
} |
const CodecVector& aac_codec() const { return aac_codec_; } |
+ const CodecVector& mp4a_invalid_no_extension() const { |
+ return mp4a_invalid_no_extension_; |
+ } |
const CodecVector& avc1_and_aac_codecs() const { |
return avc1_and_aac_codecs_; |
} |
+ const CodecVector& avc3_and_aac_codecs() const { |
+ return avc3_and_aac_codecs_; |
+ } |
const CodecVector& unknown_codec() const { return unknown_codec_; } |
const CodecVector& mixed_codecs() const { return mixed_codecs_; } |
+ const CodecVector& vp8_invalid_extension_codec() const { |
+ return vp8_invalid_extension_codec_; |
+ } |
// Update the command line to load |adapter_name| for |
// |pepper_type_for_key_system|. |
@@ -274,9 +290,12 @@ class EncryptedMediaIsTypeSupportedTest : public InProcessBrowserTest { |
CodecVector avc3_codec_; |
CodecVector avc3_extended_codec_; |
CodecVector aac_codec_; |
+ CodecVector mp4a_invalid_no_extension_; |
CodecVector avc1_and_aac_codecs_; |
+ CodecVector avc3_and_aac_codecs_; |
CodecVector unknown_codec_; |
CodecVector mixed_codecs_; |
+ CodecVector vp8_invalid_extension_codec_; |
bool is_test_page_loaded_; |
bool is_pepper_cdm_registered_; |
}; |
@@ -456,9 +475,13 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedTest, |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/webm", avc1_codec(), kPrefixedClearKey)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "video/webm", avc3_codec(), kPrefixedClearKey)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/webm", unknown_codec(), kPrefixedClearKey)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/webm", mixed_codecs(), kPrefixedClearKey)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "video/webm", vp8_invalid_extension_codec(), kPrefixedClearKey)); |
// Valid audio types. |
EXPECT_TRUE(IsSupportedKeySystemWithMediaMimeType( |
@@ -496,6 +519,8 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedTest, |
EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", avc3_codec(), kPrefixedClearKey)); |
EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType( |
+ "video/mp4", avc3_and_aac_codecs(), kPrefixedClearKey)); |
+ EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", aac_codec(), kPrefixedClearKey)); |
// Extended codecs. |
@@ -504,19 +529,23 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedTest, |
EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", avc3_extended_codec(), kPrefixedClearKey)); |
- // Invalid codec format, but canPlayType() strips away the period. |
- EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType( |
+ // Invalid codec format: profile parameter must be present after the period. |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", avc1_dot_codec(), kPrefixedClearKey)); |
- // Non-MP4 codecs. |
+ // Invalid or Non-MP4 codecs. |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", avc2_codec(), kPrefixedClearKey)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "video/mp4", mp4a_invalid_no_extension(), kPrefixedClearKey)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", vp8_codec(), kPrefixedClearKey)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", unknown_codec(), kPrefixedClearKey)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", mixed_codecs(), kPrefixedClearKey)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "video/mp4", vp8_invalid_extension_codec(), kPrefixedClearKey)); |
// Valid audio types. |
EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType( |
@@ -532,9 +561,11 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedTest, |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"audio/mp4", avc3_codec(), kPrefixedClearKey)); |
- // Non-MP4 codec. |
+ // Invalid or Non-MP4 codec. |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"audio/mp4", vorbis_codec(), kPrefixedClearKey)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "audio/mp4", mp4a_invalid_no_extension(), kPrefixedClearKey)); |
} |
// |
@@ -641,9 +672,13 @@ IN_PROC_BROWSER_TEST_F( |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/webm", avc1_codec(), kExternalClearKey)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "video/webm", avc3_codec(), kExternalClearKey)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/webm", unknown_codec(), kExternalClearKey)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/webm", mixed_codecs(), kExternalClearKey)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "video/webm", vp8_invalid_extension_codec(), kExternalClearKey)); |
// Valid audio types. |
EXPECT_ECK(IsSupportedKeySystemWithMediaMimeType( |
@@ -682,6 +717,8 @@ IN_PROC_BROWSER_TEST_F( |
EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", avc3_codec(), kExternalClearKey)); |
EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType( |
+ "video/mp4", avc3_and_aac_codecs(), kExternalClearKey)); |
+ EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", aac_codec(), kExternalClearKey)); |
// Extended codecs. |
@@ -690,19 +727,23 @@ IN_PROC_BROWSER_TEST_F( |
EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", avc3_extended_codec(), kExternalClearKey)); |
- // Invalid codec format, but canPlayType() strips away the period. |
- EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType( |
+ // Invalid codec format: profile parameter must be present after the period. |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", avc1_dot_codec(), kExternalClearKey)); |
- // Non-MP4 codecs. |
+ // Invalid or Non-MP4 codecs. |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", avc2_codec(), kExternalClearKey)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "video/mp4", mp4a_invalid_no_extension(), kExternalClearKey)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", vp8_codec(), kExternalClearKey)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", unknown_codec(), kExternalClearKey)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", mixed_codecs(), kExternalClearKey)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "video/mp4", vp8_invalid_extension_codec(), kExternalClearKey)); |
// Valid audio types. |
EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType( |
@@ -717,10 +758,14 @@ IN_PROC_BROWSER_TEST_F( |
"audio/mp4", avc1_and_aac_codecs(), kExternalClearKey)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"audio/mp4", avc3_codec(), kExternalClearKey)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "audio/mp4", avc3_and_aac_codecs(), kExternalClearKey)); |
- // Non-MP4 codec. |
+ // Invalid or Non-MP4 codec. |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"audio/mp4", vorbis_codec(), kExternalClearKey)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "audio/mp4", mp4a_invalid_no_extension(), kExternalClearKey)); |
} |
// |
@@ -831,9 +876,13 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedWidevineTest, |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/webm", avc1_codec(), kWidevineAlpha)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "video/webm", avc3_codec(), kWidevineAlpha)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/webm", unknown_codec(), kWidevineAlpha)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/webm", mixed_codecs(), kWidevineAlpha)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "video/webm", vp8_invalid_extension_codec(), kWidevineAlpha)); |
// Valid audio types. |
EXPECT_WV(IsSupportedKeySystemWithMediaMimeType( |
@@ -870,6 +919,8 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedWidevineTest, |
EXPECT_WVAVC1(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", avc3_codec(), kWidevineAlpha)); |
EXPECT_WVAVC1AAC(IsSupportedKeySystemWithMediaMimeType( |
+ "video/mp4", avc3_and_aac_codecs(), kWidevineAlpha)); |
+ EXPECT_WVAVC1AAC(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", aac_codec(), kWidevineAlpha)); |
// Valid video types - parent key system. |
@@ -879,6 +930,10 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedWidevineTest, |
"video/mp4", avc1_codec(), kWidevine)); |
EXPECT_WVAVC1AAC(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", avc1_and_aac_codecs(), kWidevine)); |
+ EXPECT_WVAVC1(IsSupportedKeySystemWithMediaMimeType( |
+ "video/mp4", avc3_codec(), kWidevine)); |
+ EXPECT_WVAVC1AAC(IsSupportedKeySystemWithMediaMimeType( |
+ "video/mp4", avc3_and_aac_codecs(), kWidevine)); |
EXPECT_WVAVC1AAC(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", aac_codec(), kWidevine)); |
@@ -888,19 +943,23 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedWidevineTest, |
EXPECT_WVAVC1(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", avc3_extended_codec(), kWidevineAlpha)); |
- // Invalid codec format, but canPlayType() strips away the period. |
- EXPECT_WVAVC1(IsSupportedKeySystemWithMediaMimeType( |
+ // Invalid codec format: profile paramter must be present after the period. |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", avc1_dot_codec(), kWidevineAlpha)); |
- // Non-MP4 codecs. |
+ // Invalid or Non-MP4 codecs. |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", avc2_codec(), kWidevineAlpha)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "video/mp4", mp4a_invalid_no_extension(), kWidevineAlpha)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", vp8_codec(), kWidevineAlpha)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", unknown_codec(), kWidevineAlpha)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"video/mp4", mixed_codecs(), kWidevineAlpha)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "video/mp4", vp8_invalid_extension_codec(), kWidevineAlpha)); |
// Valid audio types. |
EXPECT_WVMP4(IsSupportedKeySystemWithMediaMimeType( |
@@ -921,10 +980,14 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedWidevineTest, |
"audio/mp4", avc1_and_aac_codecs(), kWidevineAlpha)); |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"audio/mp4", avc3_codec(), kWidevineAlpha)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "audio/mp4", avc3_and_aac_codecs(), kWidevineAlpha)); |
- // Non-MP4 codec. |
+ // Invalid or Non-MP4 codec. |
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
"audio/mp4", vorbis_codec(), kWidevineAlpha)); |
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType( |
+ "audio/mp4", mp4a_invalid_no_extension(), kWidevineAlpha)); |
} |
IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedWidevineTest, |