1// Copyright (c) 2011 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/browser/mime_registry_message_filter.h"
6
7#include "content/common/mime_registry_messages.h"
8#include "net/base/mime_util.h"
9
10namespace content {
11
12MimeRegistryMessageFilter::MimeRegistryMessageFilter()
13    : BrowserMessageFilter(MimeRegistryMsgStart) {
14}
15
16MimeRegistryMessageFilter::~MimeRegistryMessageFilter() {
17}
18
19void MimeRegistryMessageFilter::OverrideThreadForMessage(
20    const IPC::Message& message,
21    BrowserThread::ID* thread) {
22  if (IPC_MESSAGE_CLASS(message) == MimeRegistryMsgStart)
23    *thread = BrowserThread::FILE;
24}
25
26bool MimeRegistryMessageFilter::OnMessageReceived(const IPC::Message& message) {
27  bool handled = true;
28  IPC_BEGIN_MESSAGE_MAP(MimeRegistryMessageFilter, message)
29    IPC_MESSAGE_HANDLER(MimeRegistryMsg_GetMimeTypeFromExtension,
30                        OnGetMimeTypeFromExtension)
31    IPC_MESSAGE_HANDLER(MimeRegistryMsg_GetMimeTypeFromFile,
32                        OnGetMimeTypeFromFile)
33    IPC_MESSAGE_UNHANDLED(handled = false)
34  IPC_END_MESSAGE_MAP()
35  return handled;
36}
37
38void MimeRegistryMessageFilter::OnGetMimeTypeFromExtension(
39    const base::FilePath::StringType& ext, std::string* mime_type) {
40  net::GetMimeTypeFromExtension(ext, mime_type);
41}
42
43void MimeRegistryMessageFilter::OnGetMimeTypeFromFile(
44    const base::FilePath& file_path, std::string* mime_type) {
45  net::GetMimeTypeFromFile(file_path, mime_type);
46}
47
48}  // namespace content
49