simple_webmimeregistry_impl.cc revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "content/child/simple_webmimeregistry_impl.h" 6 7#include "base/files/file_path.h" 8#include "base/strings/string_util.h" 9#include "base/strings/sys_string_conversions.h" 10#include "base/strings/utf_string_conversions.h" 11#include "net/base/mime_util.h" 12#include "third_party/WebKit/public/platform/WebString.h" 13 14using blink::WebString; 15using blink::WebMimeRegistry; 16 17namespace content { 18 19//static 20std::string SimpleWebMimeRegistryImpl::ToASCIIOrEmpty(const WebString& string) { 21 return IsStringASCII(string) ? UTF16ToASCII(string) : std::string(); 22} 23 24WebMimeRegistry::SupportsType SimpleWebMimeRegistryImpl::supportsMIMEType( 25 const WebString& mime_type) { 26 return net::IsSupportedMimeType(ToASCIIOrEmpty(mime_type)) ? 27 WebMimeRegistry::IsSupported : WebMimeRegistry::IsNotSupported; 28} 29 30WebMimeRegistry::SupportsType SimpleWebMimeRegistryImpl::supportsImageMIMEType( 31 const WebString& mime_type) { 32 return net::IsSupportedImageMimeType(ToASCIIOrEmpty(mime_type)) ? 33 WebMimeRegistry::IsSupported : WebMimeRegistry::IsNotSupported; 34} 35 36WebMimeRegistry::SupportsType 37 SimpleWebMimeRegistryImpl::supportsJavaScriptMIMEType( 38 const WebString& mime_type) { 39 return net::IsSupportedJavascriptMimeType(ToASCIIOrEmpty(mime_type)) ? 40 WebMimeRegistry::IsSupported : WebMimeRegistry::IsNotSupported; 41} 42 43// When debugging layout tests failures in the test shell, 44// see TestShellWebMimeRegistryImpl. 45WebMimeRegistry::SupportsType SimpleWebMimeRegistryImpl::supportsMediaMIMEType( 46 const WebString& mime_type, 47 const WebString& codecs, 48 const WebString& key_system) { 49 // Media features are only supported at the content/ layer. 50 return IsNotSupported; 51} 52 53bool SimpleWebMimeRegistryImpl::supportsMediaSourceMIMEType( 54 const WebString& mime_type, 55 const WebString& codecs) { 56 // Media features are only supported at the content/ layer. 57 return IsNotSupported; 58} 59 60WebMimeRegistry::SupportsType 61 SimpleWebMimeRegistryImpl::supportsNonImageMIMEType( 62 const WebString& mime_type) { 63 return net::IsSupportedNonImageMimeType(ToASCIIOrEmpty(mime_type)) ? 64 WebMimeRegistry::IsSupported : WebMimeRegistry::IsNotSupported; 65} 66 67WebString SimpleWebMimeRegistryImpl::mimeTypeForExtension( 68 const WebString& file_extension) { 69 std::string mime_type; 70 net::GetMimeTypeFromExtension( 71 base::FilePath::FromUTF16Unsafe(file_extension).value(), &mime_type); 72 return WebString::fromUTF8(mime_type); 73} 74 75WebString SimpleWebMimeRegistryImpl::wellKnownMimeTypeForExtension( 76 const WebString& file_extension) { 77 std::string mime_type; 78 net::GetWellKnownMimeTypeFromExtension( 79 base::FilePath::FromUTF16Unsafe(file_extension).value(), &mime_type); 80 return WebString::fromUTF8(mime_type); 81} 82 83WebString SimpleWebMimeRegistryImpl::mimeTypeFromFile( 84 const WebString& file_path) { 85 std::string mime_type; 86 net::GetMimeTypeFromFile(base::FilePath::FromUTF16Unsafe(file_path), 87 &mime_type); 88 return WebString::fromUTF8(mime_type); 89} 90 91} // namespace content 92