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 } 14 15 MimeRegistryMessageFilter::~MimeRegistryMessageFilter() { 16 } 17 18 void MimeRegistryMessageFilter::OverrideThreadForMessage( 19 const IPC::Message& message, 20 BrowserThread::ID* thread) { 21 if (IPC_MESSAGE_CLASS(message) == MimeRegistryMsgStart) 22 *thread = BrowserThread::FILE; 23 } 24 25 bool MimeRegistryMessageFilter::OnMessageReceived(const IPC::Message& message, 26 bool* message_was_ok) { 27 bool handled = true; 28 IPC_BEGIN_MESSAGE_MAP_EX(MimeRegistryMessageFilter, message, *message_was_ok) 29 IPC_MESSAGE_HANDLER(MimeRegistryMsg_GetMimeTypeFromExtension, 30 OnGetMimeTypeFromExtension) 31 IPC_MESSAGE_HANDLER(MimeRegistryMsg_GetMimeTypeFromFile, 32 OnGetMimeTypeFromFile) 33 IPC_MESSAGE_HANDLER(MimeRegistryMsg_GetPreferredExtensionForMimeType, 34 OnGetPreferredExtensionForMimeType) 35 IPC_MESSAGE_UNHANDLED(handled = false) 36 IPC_END_MESSAGE_MAP() 37 return handled; 38 } 39 40 void MimeRegistryMessageFilter::OnGetMimeTypeFromExtension( 41 const base::FilePath::StringType& ext, std::string* mime_type) { 42 net::GetMimeTypeFromExtension(ext, mime_type); 43 } 44 45 void MimeRegistryMessageFilter::OnGetMimeTypeFromFile( 46 const base::FilePath& file_path, std::string* mime_type) { 47 net::GetMimeTypeFromFile(file_path, mime_type); 48 } 49 50 void MimeRegistryMessageFilter::OnGetPreferredExtensionForMimeType( 51 const std::string& mime_type, base::FilePath::StringType* extension) { 52 net::GetPreferredExtensionForMimeType(mime_type, extension); 53 } 54 55 } // namespace content 56