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#ifndef CONTENT_CHILD_SIMPLE_WEBMIMEREGISTRY_IMPL_H_
6#define CONTENT_CHILD_SIMPLE_WEBMIMEREGISTRY_IMPL_H_
7
8#include <string>
9
10#include "base/compiler_specific.h"
11#include "content/common/content_export.h"
12#include "third_party/WebKit/public/platform/WebMimeRegistry.h"
13
14namespace content {
15
16class CONTENT_EXPORT SimpleWebMimeRegistryImpl :
17    NON_EXPORTED_BASE(public blink::WebMimeRegistry) {
18 public:
19  SimpleWebMimeRegistryImpl() {}
20  virtual ~SimpleWebMimeRegistryImpl() {}
21
22  // Convert a WebString to ASCII, falling back on an empty string in the case
23  // of a non-ASCII string.
24  static std::string ToASCIIOrEmpty(const blink::WebString& string);
25
26  // WebMimeRegistry methods:
27  virtual blink::WebMimeRegistry::SupportsType supportsMIMEType(
28      const blink::WebString&);
29  virtual blink::WebMimeRegistry::SupportsType supportsImageMIMEType(
30      const blink::WebString&);
31  virtual blink::WebMimeRegistry::SupportsType supportsImagePrefixedMIMEType(
32      const blink::WebString&);
33  virtual blink::WebMimeRegistry::SupportsType supportsJavaScriptMIMEType(
34      const blink::WebString&);
35  virtual blink::WebMimeRegistry::SupportsType supportsMediaMIMEType(
36      const blink::WebString&,
37      const blink::WebString&,
38      const blink::WebString&);
39  virtual bool supportsMediaSourceMIMEType(const blink::WebString&,
40                                           const blink::WebString&);
41  virtual bool supportsEncryptedMediaMIMEType(const blink::WebString&,
42                                              const blink::WebString&,
43                                              const blink::WebString&);
44  virtual blink::WebMimeRegistry::SupportsType supportsNonImageMIMEType(
45      const blink::WebString&);
46  virtual blink::WebString mimeTypeForExtension(const blink::WebString&);
47  virtual blink::WebString wellKnownMimeTypeForExtension(
48      const blink::WebString&);
49  virtual blink::WebString mimeTypeFromFile(const blink::WebString&);
50};
51
52}  // namespace content
53
54#endif  // CONTENT_CHILD_SIMPLE_WEBMIMEREGISTRY_IMPL_H_
55