summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorddorwin@chromium.org <ddorwin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-16 21:45:54 +0000
committerddorwin@chromium.org <ddorwin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-16 21:45:54 +0000
commita52b80b79199915322220d8daa33ac16054cd449 (patch)
treea0d71424214ca6204baa28f2599b300c2a645f96 /net
parent543baea8ae1c8880d4eb8b1d17cfbeae8cd76928 (diff)
downloadchromium_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.cc69
-rw-r--r--net/base/mime_util.h9
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__