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