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 10 namespace content { 11 12 MimeRegistryMessageFilter::MimeRegistryMessageFilter() 13 : BrowserMessageFilter(MimeRegistryMsgStart) { 14 } 15 16 MimeRegistryMessageFilter::~MimeRegistryMessageFilter() { 17 } 18 19 void MimeRegistryMessageFilter::OverrideThreadForMessage( 20 const IPC::Message& message, 21 BrowserThread::ID* thread) { 22 if (IPC_MESSAGE_CLASS(message) == MimeRegistryMsgStart) 23 *thread = BrowserThread::FILE; 24 } 25 26 bool 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 38 void MimeRegistryMessageFilter::OnGetMimeTypeFromExtension( 39 const base::FilePath::StringType& ext, std::string* mime_type) { 40 net::GetMimeTypeFromExtension(ext, mime_type); 41 } 42 43 void 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