| Index: content/worker/worker_webkitplatformsupport_impl.cc
|
| ===================================================================
|
| --- content/worker/worker_webkitplatformsupport_impl.cc (revision 186267)
|
| +++ content/worker/worker_webkitplatformsupport_impl.cc (working copy)
|
| @@ -13,6 +13,7 @@
|
| #include "content/common/file_utilities_messages.h"
|
| #include "content/common/indexed_db/proxy_webidbfactory_impl.h"
|
| #include "content/common/mime_registry_messages.h"
|
| +#include "content/common/thread_safe_sender.h"
|
| #include "content/common/webmessageportchannel_impl.h"
|
| #include "content/worker/worker_thread.h"
|
| #include "ipc/ipc_sync_message_filter.h"
|
| @@ -45,25 +46,20 @@
|
| class WorkerWebKitPlatformSupportImpl::FileUtilities
|
| : public webkit_glue::WebFileUtilitiesImpl {
|
| public:
|
| + explicit FileUtilities(ThreadSafeSender* sender)
|
| + : thread_safe_sender_(sender) {}
|
| virtual bool getFileInfo(const WebString& path, WebFileInfo& result);
|
| + private:
|
| + scoped_refptr<ThreadSafeSender> thread_safe_sender_;
|
| };
|
|
|
| -static bool SendSyncMessageFromAnyThread(IPC::SyncMessage* msg) {
|
| - WorkerThread* worker_thread = WorkerThread::current();
|
| - if (worker_thread)
|
| - return worker_thread->Send(msg);
|
| -
|
| - scoped_refptr<IPC::SyncMessageFilter> sync_msg_filter(
|
| - ChildThread::current()->sync_message_filter());
|
| - return sync_msg_filter->Send(msg);
|
| -}
|
| -
|
| bool WorkerWebKitPlatformSupportImpl::FileUtilities::getFileInfo(
|
| const WebString& path,
|
| WebFileInfo& web_file_info) {
|
| base::PlatformFileInfo file_info;
|
| base::PlatformFileError status;
|
| - if (!SendSyncMessageFromAnyThread(new FileUtilitiesMsg_GetFileInfo(
|
| + if (!thread_safe_sender_.get() ||
|
| + !thread_safe_sender_->Send(new FileUtilitiesMsg_GetFileInfo(
|
| webkit_base::WebStringToFilePath(path), &file_info, &status)) ||
|
| status != base::PLATFORM_FILE_OK) {
|
| return false;
|
| @@ -75,7 +71,9 @@
|
|
|
| //------------------------------------------------------------------------------
|
|
|
| -WorkerWebKitPlatformSupportImpl::WorkerWebKitPlatformSupportImpl() {
|
| +WorkerWebKitPlatformSupportImpl::WorkerWebKitPlatformSupportImpl(
|
| + ThreadSafeSender* sender)
|
| + : thread_safe_sender_(sender) {
|
| }
|
|
|
| WorkerWebKitPlatformSupportImpl::~WorkerWebKitPlatformSupportImpl() {
|
| @@ -98,7 +96,7 @@
|
|
|
| WebFileUtilities* WorkerWebKitPlatformSupportImpl::fileUtilities() {
|
| if (!file_utilities_.get()) {
|
| - file_utilities_.reset(new FileUtilities);
|
| + file_utilities_.reset(new FileUtilities(thread_safe_sender_));
|
| file_utilities_->set_sandbox_enabled(sandboxEnabled());
|
| }
|
| return file_utilities_.get();
|
| @@ -245,7 +243,7 @@
|
| WebString WorkerWebKitPlatformSupportImpl::mimeTypeForExtension(
|
| const WebString& file_extension) {
|
| std::string mime_type;
|
| - SendSyncMessageFromAnyThread(new MimeRegistryMsg_GetMimeTypeFromExtension(
|
| + thread_safe_sender_->Send(new MimeRegistryMsg_GetMimeTypeFromExtension(
|
| webkit_base::WebStringToFilePathString(file_extension), &mime_type));
|
| return ASCIIToUTF16(mime_type);
|
| }
|
| @@ -261,24 +259,25 @@
|
| WebString WorkerWebKitPlatformSupportImpl::mimeTypeFromFile(
|
| const WebString& file_path) {
|
| std::string mime_type;
|
| - SendSyncMessageFromAnyThread(new MimeRegistryMsg_GetMimeTypeFromFile(
|
| - base::FilePath(webkit_base::WebStringToFilePathString(file_path)),
|
| - &mime_type));
|
| + thread_safe_sender_->Send(
|
| + new MimeRegistryMsg_GetMimeTypeFromFile(
|
| + base::FilePath(webkit_base::WebStringToFilePathString(file_path)),
|
| + &mime_type));
|
| return ASCIIToUTF16(mime_type);
|
| }
|
|
|
| WebString WorkerWebKitPlatformSupportImpl::preferredExtensionForMIMEType(
|
| const WebString& mime_type) {
|
| base::FilePath::StringType file_extension;
|
| - SendSyncMessageFromAnyThread(
|
| + thread_safe_sender_->Send(
|
| new MimeRegistryMsg_GetPreferredExtensionForMimeType(
|
| UTF16ToASCII(mime_type), &file_extension));
|
| return webkit_base::FilePathStringToWebString(file_extension);
|
| }
|
|
|
| WebBlobRegistry* WorkerWebKitPlatformSupportImpl::blobRegistry() {
|
| - if (!blob_registry_.get())
|
| - blob_registry_.reset(new WebBlobRegistryImpl(WorkerThread::current()));
|
| + if (!blob_registry_.get() && thread_safe_sender_.get())
|
| + blob_registry_.reset(new WebBlobRegistryImpl(thread_safe_sender_));
|
| return blob_registry_.get();
|
| }
|
|
|
|
|