diff options
author | ddorwin@chromium.org <ddorwin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-16 21:45:54 +0000 |
---|---|---|
committer | ddorwin@chromium.org <ddorwin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-16 21:45:54 +0000 |
commit | a52b80b79199915322220d8daa33ac16054cd449 (patch) | |
tree | a0d71424214ca6204baa28f2599b300c2a645f96 /net | |
parent | 543baea8ae1c8880d4eb8b1d17cfbeae8cd76928 (diff) | |
download | chromium_src-a52b80b79199915322220d8daa33ac16054cd449.zip chromium_src-a52b80b79199915322220d8daa33ac16054cd449.tar.gz chromium_src-a52b80b79199915322220d8daa33ac16054cd449.tar.bz2 |
Changed TestShellWebMimeRegistryImpl to blacklist rather than whitelist containers and codecs.
New expected results for four tests need to be committed in WebKit.
BUG=119667
TEST=WebM tests in LayoutTests/media/W3C/video/canPlayType/ now say "probably" or "maybe".
Review URL: http://codereview.chromium.org/9969061
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132463 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/base/mime_util.cc | 69 | ||||
-rw-r--r-- | net/base/mime_util.h | 9 |
2 files changed, 64 insertions, 14 deletions
diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc index 85f5d15..ab505b0 100644 --- a/net/base/mime_util.cc +++ b/net/base/mime_util.cc @@ -234,7 +234,8 @@ static const char* const supported_image_types[] = { // A list of media types: http://en.wikipedia.org/wiki/Internet_media_type // A comprehensive mime type list: http://plugindoc.mozdev.org/winmime.php -static const char* const supported_media_types[] = { +// This set of codecs is supported by all variations of Chromium. +static const char* const common_media_types[] = { // Ogg. "audio/ogg", "application/ogg", @@ -247,8 +248,10 @@ static const char* const supported_media_types[] = { "audio/webm", "audio/wav", "audio/x-wav", +}; -#if defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS) +// List of proprietary types only supported by Google Chrome. +static const char* const proprietary_media_types[] = { // MPEG-4. "video/mp4", "video/x-m4v", @@ -259,21 +262,17 @@ static const char* const supported_media_types[] = { "audio/mp3", "audio/x-mp3", "audio/mpeg", -#endif }; // List of supported codecs when passed in with <source type="...">. +// This set of codecs is supported by all variations of Chromium. // // Refer to http://wiki.whatwg.org/wiki/Video_type_parameters#Browser_Support // for more information. // // The codecs for WAV are integers as defined in Appendix A of RFC2361: // http://tools.ietf.org/html/rfc2361 -static const char* const supported_media_codecs[] = { -#if defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS) - "avc1", - "mp4a", -#endif +static const char* const common_media_codecs[] = { #if defined(ENABLE_MEDIA_CODEC_THEORA) "theora", #endif @@ -282,6 +281,12 @@ static const char* const supported_media_codecs[] = { "1" // WAVE_FORMAT_PCM. }; +// List of proprietary codecs only supported by Google Chrome. +static const char* const proprietary_media_codecs[] = { + "avc1", + "mp4a" +}; + // Note: does not include javascript types list (see supported_javascript_types) static const char* const supported_non_image_types[] = { "text/cache-manifest", @@ -376,12 +381,20 @@ void MimeUtil::InitializeMimeTypeMaps() { non_image_map_.insert(supported_non_image_types[i]); for (size_t i = 0; i < arraysize(supported_javascript_types); ++i) non_image_map_.insert(supported_javascript_types[i]); - for (size_t i = 0; i < arraysize(supported_media_types); ++i) - non_image_map_.insert(supported_media_types[i]); + for (size_t i = 0; i < arraysize(common_media_types); ++i) + non_image_map_.insert(common_media_types[i]); +#if defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS) + for (size_t i = 0; i < arraysize(proprietary_media_types); ++i) + non_image_map_.insert(proprietary_media_types[i]); +#endif // Initialize the supported media types. - for (size_t i = 0; i < arraysize(supported_media_types); ++i) - media_map_.insert(supported_media_types[i]); + for (size_t i = 0; i < arraysize(common_media_types); ++i) + media_map_.insert(common_media_types[i]); +#if defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS) + for (size_t i = 0; i < arraysize(proprietary_media_types); ++i) + media_map_.insert(proprietary_media_types[i]); +#endif for (size_t i = 0; i < arraysize(supported_javascript_types); ++i) javascript_map_.insert(supported_javascript_types[i]); @@ -389,8 +402,12 @@ void MimeUtil::InitializeMimeTypeMaps() { for (size_t i = 0; i < arraysize(view_source_types); ++i) view_source_map_.insert(view_source_types[i]); - for (size_t i = 0; i < arraysize(supported_media_codecs); ++i) - codecs_map_.insert(supported_media_codecs[i]); + for (size_t i = 0; i < arraysize(common_media_codecs); ++i) + codecs_map_.insert(common_media_codecs[i]); +#if defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS) + for (size_t i = 0; i < arraysize(proprietary_media_codecs); ++i) + codecs_map_.insert(proprietary_media_codecs[i]); +#endif // Initialize the strict supported media types. for (size_t i = 0; i < arraysize(format_codec_mappings); ++i) { @@ -748,4 +765,28 @@ void GetExtensionsForMimeType(const std::string& mime_type, HashSetToVector(&unique_extensions, extensions); } +void GetMediaTypesBlacklistedForTests(std::vector<std::string>* types) { + types->clear(); + +// Unless/until WebM files are added to the media layout tests, we need to avoid +// blacklisting mp4 and H.264 when Theora is not supported (and proprietary +// codecs are) so that the media tests can still run. +#if defined(ENABLE_MEDIA_CODEC_THEORA) || !defined(USE_PROPRIETARY_CODECS) + for (size_t i = 0; i < arraysize(proprietary_media_types); ++i) + types->push_back(proprietary_media_types[i]); +#endif +} + +void GetMediaCodecsBlacklistedForTests(std::vector<std::string>* codecs) { + codecs->clear(); + +// Unless/until WebM files are added to the media layout tests, we need to avoid +// blacklisting mp4 and H.264 when Theora is not supported (and proprietary +// codecs are) so that the media tests can still run. +#if defined(ENABLE_MEDIA_CODEC_THEORA) || !defined(USE_PROPRIETARY_CODECS) + for (size_t i = 0; i < arraysize(proprietary_media_codecs); ++i) + codecs->push_back(proprietary_media_codecs[i]); +#endif +} + } // namespace net diff --git a/net/base/mime_util.h b/net/base/mime_util.h index adff518..ba3e25d 100644 --- a/net/base/mime_util.h +++ b/net/base/mime_util.h @@ -110,6 +110,15 @@ NET_EXPORT void GetExtensionsForMimeType( const std::string& mime_type, std::vector<FilePath::StringType>* extensions); +// Test only methods that return lists of proprietary media types and codecs +// that are not supported by all variations of Chromium. +// These types and codecs must be blacklisted to ensure consistent layout test +// results across all Chromium variations. +NET_EXPORT void GetMediaTypesBlacklistedForTests( + std::vector<std::string>* types); +NET_EXPORT void GetMediaCodecsBlacklistedForTests( + std::vector<std::string>* codecs); + } // namespace net #endif // NET_BASE_MIME_UTIL_H__ |