| Index: net/base/mime_util.cc
|
| diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc
|
| index ddcfc4ba06d6b57792c5caf6cc799a4d205471c6..d95c02964feb70c1a5f4c606b5d19770a5eb6035 100644
|
| --- a/net/base/mime_util.cc
|
| +++ b/net/base/mime_util.cc
|
| @@ -9,8 +9,8 @@
|
| #include "net/base/platform_mime_util.h"
|
|
|
| #include "base/hash_tables.h"
|
| +#include "base/lazy_instance.h"
|
| #include "base/logging.h"
|
| -#include "base/singleton.h"
|
| #include "base/string_split.h"
|
| #include "base/string_util.h"
|
| #include "base/utf_string_conversions.h"
|
| @@ -51,7 +51,7 @@ class MimeUtil : public PlatformMimeUtil {
|
| const std::vector<std::string>& codecs) const;
|
|
|
| private:
|
| - friend struct DefaultSingletonTraits<MimeUtil>;
|
| + friend struct base::DefaultLazyInstanceTraits<MimeUtil>;
|
| MimeUtil() {
|
| InitializeMimeTypeMaps();
|
| }
|
| @@ -71,6 +71,8 @@ class MimeUtil : public PlatformMimeUtil {
|
| StrictMappings strict_format_map_;
|
| }; // class MimeUtil
|
|
|
| +static base::LazyInstance<MimeUtil> g_mime_util(base::LINKER_INITIALIZED);
|
| +
|
| struct MimeInfo {
|
| const char* mime_type;
|
| const char* extensions; // comma separated list
|
| @@ -473,70 +475,67 @@ bool MimeUtil::IsSupportedStrictMediaMimeType(const std::string& mime_type,
|
| // Wrappers for the singleton
|
| //----------------------------------------------------------------------------
|
|
|
| -static MimeUtil* GetMimeUtil() {
|
| - return Singleton<MimeUtil>::get();
|
| -}
|
| -
|
| bool GetMimeTypeFromExtension(const FilePath::StringType& ext,
|
| std::string* mime_type) {
|
| - return GetMimeUtil()->GetMimeTypeFromExtension(ext, mime_type);
|
| + return g_mime_util.Get().GetMimeTypeFromExtension(ext, mime_type);
|
| }
|
|
|
| bool GetMimeTypeFromFile(const FilePath& file_path, std::string* mime_type) {
|
| - return GetMimeUtil()->GetMimeTypeFromFile(file_path, mime_type);
|
| + return g_mime_util.Get().GetMimeTypeFromFile(file_path, mime_type);
|
| }
|
|
|
| bool GetPreferredExtensionForMimeType(const std::string& mime_type,
|
| FilePath::StringType* extension) {
|
| - return GetMimeUtil()->GetPreferredExtensionForMimeType(mime_type, extension);
|
| + return g_mime_util.Get().GetPreferredExtensionForMimeType(mime_type,
|
| + extension);
|
| }
|
|
|
| bool IsSupportedImageMimeType(const char* mime_type) {
|
| - return GetMimeUtil()->IsSupportedImageMimeType(mime_type);
|
| + return g_mime_util.Get().IsSupportedImageMimeType(mime_type);
|
| }
|
|
|
| bool IsSupportedMediaMimeType(const char* mime_type) {
|
| - return GetMimeUtil()->IsSupportedMediaMimeType(mime_type);
|
| + return g_mime_util.Get().IsSupportedMediaMimeType(mime_type);
|
| }
|
|
|
| bool IsSupportedNonImageMimeType(const char* mime_type) {
|
| - return GetMimeUtil()->IsSupportedNonImageMimeType(mime_type);
|
| + return g_mime_util.Get().IsSupportedNonImageMimeType(mime_type);
|
| }
|
|
|
| bool IsSupportedJavascriptMimeType(const char* mime_type) {
|
| - return GetMimeUtil()->IsSupportedJavascriptMimeType(mime_type);
|
| + return g_mime_util.Get().IsSupportedJavascriptMimeType(mime_type);
|
| }
|
|
|
| bool IsViewSourceMimeType(const char* mime_type) {
|
| - return GetMimeUtil()->IsViewSourceMimeType(mime_type);
|
| + return g_mime_util.Get().IsViewSourceMimeType(mime_type);
|
| }
|
|
|
| bool IsSupportedMimeType(const std::string& mime_type) {
|
| - return GetMimeUtil()->IsSupportedMimeType(mime_type);
|
| + return g_mime_util.Get().IsSupportedMimeType(mime_type);
|
| }
|
|
|
| bool MatchesMimeType(const std::string &mime_type_pattern,
|
| const std::string &mime_type) {
|
| - return GetMimeUtil()->MatchesMimeType(mime_type_pattern, mime_type);
|
| + return g_mime_util.Get().MatchesMimeType(mime_type_pattern, mime_type);
|
| }
|
|
|
| bool AreSupportedMediaCodecs(const std::vector<std::string>& codecs) {
|
| - return GetMimeUtil()->AreSupportedMediaCodecs(codecs);
|
| + return g_mime_util.Get().AreSupportedMediaCodecs(codecs);
|
| }
|
|
|
| bool IsStrictMediaMimeType(const std::string& mime_type) {
|
| - return GetMimeUtil()->IsStrictMediaMimeType(mime_type);
|
| + return g_mime_util.Get().IsStrictMediaMimeType(mime_type);
|
| }
|
|
|
| bool IsSupportedStrictMediaMimeType(const std::string& mime_type,
|
| const std::vector<std::string>& codecs) {
|
| - return GetMimeUtil()->IsSupportedStrictMediaMimeType(mime_type, codecs);
|
| + return g_mime_util.Get().IsSupportedStrictMediaMimeType(mime_type, codecs);
|
| }
|
|
|
| void ParseCodecString(const std::string& codecs,
|
| std::vector<std::string>* codecs_out,
|
| const bool strip) {
|
| - GetMimeUtil()->ParseCodecString(codecs, codecs_out, strip);
|
| + g_mime_util.Get().ParseCodecString(codecs, codecs_out, strip);
|
| }
|
|
|
| namespace {
|
|
|