| Index: net/base/platform_mime_util_mac.mm
|
| diff --git a/net/base/platform_mime_util_mac.mm b/net/base/platform_mime_util_mac.mm
|
| deleted file mode 100644
|
| index cf5b2625a5814db59edd2ff1d2edc441157b3584..0000000000000000000000000000000000000000
|
| --- a/net/base/platform_mime_util_mac.mm
|
| +++ /dev/null
|
| @@ -1,105 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "net/base/platform_mime_util.h"
|
| -
|
| -#import <Foundation/Foundation.h>
|
| -
|
| -#include <string>
|
| -
|
| -#include "base/mac/foundation_util.h"
|
| -#include "base/mac/scoped_cftyperef.h"
|
| -#include "base/strings/sys_string_conversions.h"
|
| -
|
| -#if defined(OS_IOS)
|
| -#include <MobileCoreServices/MobileCoreServices.h>
|
| -#else
|
| -#include <CoreServices/CoreServices.h>
|
| -#endif // defined(OS_IOS)
|
| -
|
| -#if !defined(OS_IOS)
|
| -// SPI declaration; see the commentary in GetPlatformExtensionsForMimeType.
|
| -// iOS must not use any private API, per Apple guideline.
|
| -
|
| -@interface NSURLFileTypeMappings : NSObject
|
| -+ (NSURLFileTypeMappings*)sharedMappings;
|
| -- (NSArray*)extensionsForMIMEType:(NSString*)mimeType;
|
| -@end
|
| -#endif // !defined(OS_IOS)
|
| -
|
| -namespace net {
|
| -
|
| -bool PlatformMimeUtil::GetPlatformMimeTypeFromExtension(
|
| - const base::FilePath::StringType& ext, std::string* result) const {
|
| - std::string ext_nodot = ext;
|
| - if (ext_nodot.length() >= 1 && ext_nodot[0] == L'.')
|
| - ext_nodot.erase(ext_nodot.begin());
|
| - base::ScopedCFTypeRef<CFStringRef> ext_ref(
|
| - base::SysUTF8ToCFStringRef(ext_nodot));
|
| - if (!ext_ref)
|
| - return false;
|
| - base::ScopedCFTypeRef<CFStringRef> uti(UTTypeCreatePreferredIdentifierForTag(
|
| - kUTTagClassFilenameExtension, ext_ref, NULL));
|
| - if (!uti)
|
| - return false;
|
| - base::ScopedCFTypeRef<CFStringRef> mime_ref(
|
| - UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType));
|
| - if (!mime_ref)
|
| - return false;
|
| -
|
| - *result = base::SysCFStringRefToUTF8(mime_ref);
|
| - return true;
|
| -}
|
| -
|
| -bool PlatformMimeUtil::GetPreferredExtensionForMimeType(
|
| - const std::string& mime_type, base::FilePath::StringType* ext) const {
|
| - base::ScopedCFTypeRef<CFStringRef> mime_ref(
|
| - base::SysUTF8ToCFStringRef(mime_type));
|
| - if (!mime_ref)
|
| - return false;
|
| - base::ScopedCFTypeRef<CFStringRef> uti(UTTypeCreatePreferredIdentifierForTag(
|
| - kUTTagClassMIMEType, mime_ref, NULL));
|
| - if (!uti)
|
| - return false;
|
| - base::ScopedCFTypeRef<CFStringRef> ext_ref(
|
| - UTTypeCopyPreferredTagWithClass(uti, kUTTagClassFilenameExtension));
|
| - if (!ext_ref)
|
| - return false;
|
| -
|
| - *ext = base::SysCFStringRefToUTF8(ext_ref);
|
| - return true;
|
| -}
|
| -
|
| -void PlatformMimeUtil::GetPlatformExtensionsForMimeType(
|
| - const std::string& mime_type,
|
| - base::hash_set<base::FilePath::StringType>* extensions) const {
|
| -#if defined(OS_IOS)
|
| - NSArray* extensions_list = nil;
|
| -#else
|
| - // There is no API for this that uses UTIs. The WebKitSystemInterface call
|
| - // WKGetExtensionsForMIMEType() is a thin wrapper around
|
| - // [[NSURLFileTypeMappings sharedMappings] extensionsForMIMEType:], which is
|
| - // used by Firefox as well.
|
| - //
|
| - // See:
|
| - // http://mxr.mozilla.org/mozilla-central/search?string=extensionsForMIMEType
|
| - // http://www.openradar.me/11384153
|
| - // rdar://11384153
|
| - NSArray* extensions_list =
|
| - [[NSURLFileTypeMappings sharedMappings]
|
| - extensionsForMIMEType:base::SysUTF8ToNSString(mime_type)];
|
| -#endif // defined(OS_IOS)
|
| -
|
| - if (extensions_list) {
|
| - for (NSString* extension in extensions_list)
|
| - extensions->insert(base::SysNSStringToUTF8(extension));
|
| - } else {
|
| - // Huh? Give up.
|
| - base::FilePath::StringType ext;
|
| - if (GetPreferredExtensionForMimeType(mime_type, &ext))
|
| - extensions->insert(ext);
|
| - }
|
| -}
|
| -
|
| -} // namespace net
|
|
|