diff options
Diffstat (limited to 'chrome/browser/mime_registry_dispatcher.cc')
-rw-r--r-- | chrome/browser/mime_registry_dispatcher.cc | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/chrome/browser/mime_registry_dispatcher.cc b/chrome/browser/mime_registry_dispatcher.cc deleted file mode 100644 index bc8653f..0000000 --- a/chrome/browser/mime_registry_dispatcher.cc +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/mime_registry_dispatcher.h" - -#include "chrome/browser/browser_thread.h" -#include "chrome/common/render_messages.h" -#include "net/base/mime_util.h" - -MimeRegistryDispatcher::MimeRegistryDispatcher(IPC::Message::Sender* sender) - : message_sender_(sender) { - DCHECK(message_sender_); -} - -MimeRegistryDispatcher::~MimeRegistryDispatcher() { -} - -void MimeRegistryDispatcher::Shutdown() { - message_sender_ = NULL; -} - -bool MimeRegistryDispatcher::OnMessageReceived(const IPC::Message& message) { - // On Windows MIME registry requests may access the Windows Registry so - // they need to run on the FILE thread. - if (!BrowserThread::CurrentlyOn(BrowserThread::FILE)) { - // Return false if the message is not for us. - if (message.type() != ViewHostMsg_GetMimeTypeFromExtension::ID && - message.type() != ViewHostMsg_GetMimeTypeFromFile::ID && - message.type() != ViewHostMsg_GetPreferredExtensionForMimeType::ID) - return false; - - BrowserThread::PostTask( - BrowserThread::FILE, FROM_HERE, - NewRunnableMethod( - this, &MimeRegistryDispatcher::OnMessageReceived, message)); - return true; - } - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); - - bool handled = true; - IPC_BEGIN_MESSAGE_MAP(MimeRegistryDispatcher, message) - IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_GetMimeTypeFromExtension, - OnGetMimeTypeFromExtension) - IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_GetMimeTypeFromFile, - OnGetMimeTypeFromFile) - IPC_MESSAGE_HANDLER_DELAY_REPLY( - ViewHostMsg_GetPreferredExtensionForMimeType, - OnGetPreferredExtensionForMimeType) - IPC_MESSAGE_UNHANDLED((handled = false)) - IPC_END_MESSAGE_MAP() - return handled; -} - -void MimeRegistryDispatcher::OnGetMimeTypeFromExtension( - const FilePath::StringType& ext, IPC::Message* reply_msg) { - std::string mime_type; - net::GetMimeTypeFromExtension(ext, &mime_type); - ViewHostMsg_GetMimeTypeFromExtension::WriteReplyParams(reply_msg, mime_type); - Send(reply_msg); -} - -void MimeRegistryDispatcher::OnGetMimeTypeFromFile( - const FilePath& file_path, IPC::Message* reply_msg) { - std::string mime_type; - net::GetMimeTypeFromFile(file_path, &mime_type); - ViewHostMsg_GetMimeTypeFromFile::WriteReplyParams(reply_msg, mime_type); - Send(reply_msg); -} - -void MimeRegistryDispatcher::OnGetPreferredExtensionForMimeType( - const std::string& mime_type, IPC::Message* reply_msg) { - FilePath::StringType ext; - net::GetPreferredExtensionForMimeType(mime_type, &ext); - ViewHostMsg_GetPreferredExtensionForMimeType::WriteReplyParams( - reply_msg, ext); - Send(reply_msg); -} - -void MimeRegistryDispatcher::Send(IPC::Message* message) { - if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { - if (!BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, NewRunnableMethod( - this, &MimeRegistryDispatcher::Send, message))) { - // The IO thread is dead. - delete message; - } - return; - } - - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); - if (message_sender_) - message_sender_->Send(message); - else - delete message; -} |