diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-07 21:58:16 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-07 21:58:16 +0000 |
commit | 172f155f817cc56e1ca36bee6aeeca7f8f95bb64 (patch) | |
tree | 7a07e985bf2452ee3d24428b6b533ae695916361 /content | |
parent | 69d88ce83594e791dbbde1de900f993710f034c2 (diff) | |
download | chromium_src-172f155f817cc56e1ca36bee6aeeca7f8f95bb64.zip chromium_src-172f155f817cc56e1ca36bee6aeeca7f8f95bb64.tar.gz chromium_src-172f155f817cc56e1ca36bee6aeeca7f8f95bb64.tar.bz2 |
Put file_system messages in their own file and move them to content, in preparation of moving child_thread.
TBR=avi
Review URL: http://codereview.chromium.org/6624066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77193 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r-- | content/browser/file_system/file_system_dispatcher_host.cc | 47 | ||||
-rw-r--r-- | content/browser/file_system/file_system_dispatcher_host.h | 14 | ||||
-rw-r--r-- | content/common/common_param_traits.cc | 43 | ||||
-rw-r--r-- | content/common/common_param_traits.h | 14 | ||||
-rw-r--r-- | content/common/content_message_generator.h | 1 | ||||
-rw-r--r-- | content/common/file_system_messages.h | 123 | ||||
-rw-r--r-- | content/content_common.gypi | 1 |
7 files changed, 211 insertions, 32 deletions
diff --git a/content/browser/file_system/file_system_dispatcher_host.cc b/content/browser/file_system/file_system_dispatcher_host.cc index 051762a..0847c2b 100644 --- a/content/browser/file_system/file_system_dispatcher_host.cc +++ b/content/browser/file_system/file_system_dispatcher_host.cc @@ -15,8 +15,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/renderer_host/browser_render_process_host.h" #include "chrome/common/net/url_request_context_getter.h" -#include "chrome/common/render_messages.h" -#include "chrome/common/render_messages_params.h" +#include "content/common/file_system_messages.h" #include "googleurl/src/gurl.h" #include "net/url_request/url_request_context.h" #include "webkit/fileapi/file_system_callback_dispatcher.h" @@ -43,34 +42,32 @@ class BrowserFileSystemCallbackDispatcher } virtual void DidSucceed() { - dispatcher_host_->Send(new ViewMsg_FileSystem_DidSucceed(request_id_)); + dispatcher_host_->Send(new FileSystemMsg_DidSucceed(request_id_)); } virtual void DidReadMetadata(const base::PlatformFileInfo& info) { - dispatcher_host_->Send(new ViewMsg_FileSystem_DidReadMetadata( + dispatcher_host_->Send(new FileSystemMsg_DidReadMetadata( request_id_, info)); } virtual void DidReadDirectory( const std::vector<base::FileUtilProxy::Entry>& entries, bool has_more) { - dispatcher_host_->Send(new ViewMsg_FileSystem_DidReadDirectory( + dispatcher_host_->Send(new FileSystemMsg_DidReadDirectory( request_id_, entries, has_more)); } virtual void DidOpenFileSystem(const std::string& name, const FilePath& path) { dispatcher_host_->Send( - new ViewMsg_OpenFileSystemRequest_Complete( - request_id_, !path.empty(), name, path)); + new FileSystemMsg_OpenComplete(request_id_, !path.empty(), name, path)); } virtual void DidFail(base::PlatformFileError error_code) { - dispatcher_host_->Send(new ViewMsg_FileSystem_DidFail( - request_id_, error_code)); + dispatcher_host_->Send(new FileSystemMsg_DidFail(request_id_, error_code)); } virtual void DidWrite(int64 bytes, bool complete) { - dispatcher_host_->Send(new ViewMsg_FileSystem_DidWrite( + dispatcher_host_->Send(new FileSystemMsg_DidWrite( request_id_, bytes, complete)); } @@ -110,24 +107,24 @@ bool FileSystemDispatcherHost::OnMessageReceived( *message_was_ok = true; bool handled = true; IPC_BEGIN_MESSAGE_MAP_EX(FileSystemDispatcherHost, message, *message_was_ok) - IPC_MESSAGE_HANDLER(ViewHostMsg_OpenFileSystemRequest, OnOpenFileSystem) - IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Move, OnMove) - IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Copy, OnCopy) - IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Remove, OnRemove) - IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_ReadMetadata, OnReadMetadata) - IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Create, OnCreate) - IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Exists, OnExists) - IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_ReadDirectory, OnReadDirectory) - IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Write, OnWrite) - IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Truncate, OnTruncate) - IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_TouchFile, OnTouchFile) - IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_CancelWrite, OnCancel) + IPC_MESSAGE_HANDLER(FileSystemHostMsg_Open, OnOpen) + IPC_MESSAGE_HANDLER(FileSystemHostMsg_Move, OnMove) + IPC_MESSAGE_HANDLER(FileSystemHostMsg_Copy, OnCopy) + IPC_MESSAGE_HANDLER(FileSystemMsg_Remove, OnRemove) + IPC_MESSAGE_HANDLER(FileSystemHostMsg_ReadMetadata, OnReadMetadata) + IPC_MESSAGE_HANDLER(FileSystemHostMsg_Create, OnCreate) + IPC_MESSAGE_HANDLER(FileSystemHostMsg_Exists, OnExists) + IPC_MESSAGE_HANDLER(FileSystemHostMsg_ReadDirectory, OnReadDirectory) + IPC_MESSAGE_HANDLER(FileSystemHostMsg_Write, OnWrite) + IPC_MESSAGE_HANDLER(FileSystemHostMsg_Truncate, OnTruncate) + IPC_MESSAGE_HANDLER(FileSystemHostMsg_TouchFile, OnTouchFile) + IPC_MESSAGE_HANDLER(FileSystemHostMsg_CancelWrite, OnCancel) IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP_EX() return handled; } -void FileSystemDispatcherHost::OnOpenFileSystem( +void FileSystemDispatcherHost::OnOpen( int request_id, const GURL& origin_url, fileapi::FileSystemType type, int64 requested_size, bool create) { ContentSetting content_setting = @@ -139,7 +136,7 @@ void FileSystemDispatcherHost::OnOpenFileSystem( if (content_setting == CONTENT_SETTING_BLOCK) { // TODO(kinuko): Need to notify the UI thread to indicate that // there's a blocked content. - Send(new ViewMsg_OpenFileSystemRequest_Complete( + Send(new FileSystemMsg_OpenComplete( request_id, false, std::string(), FilePath())); return; } @@ -225,7 +222,7 @@ void FileSystemDispatcherHost::OnCancel( write->Cancel(GetNewOperation(request_id)); } else { // The write already finished; report that we failed to stop it. - Send(new ViewMsg_FileSystem_DidFail( + Send(new FileSystemMsg_DidFail( request_id, base::PLATFORM_FILE_ERROR_INVALID_OPERATION)); } } diff --git a/content/browser/file_system/file_system_dispatcher_host.h b/content/browser/file_system/file_system_dispatcher_host.h index 728720e..c5bbafe 100644 --- a/content/browser/file_system/file_system_dispatcher_host.h +++ b/content/browser/file_system/file_system_dispatcher_host.h @@ -47,12 +47,14 @@ class FileSystemDispatcherHost : public BrowserMessageFilter { virtual bool OnMessageReceived(const IPC::Message& message, bool* message_was_ok); + void UnregisterOperation(int request_id); - void OnOpenFileSystem(int request_id, - const GURL& origin_url, - fileapi::FileSystemType type, - int64 requested_size, - bool create); + private: + void OnOpen(int request_id, + const GURL& origin_url, + fileapi::FileSystemType type, + int64 requested_size, + bool create); void OnMove(int request_id, const FilePath& src_path, const FilePath& dest_path); @@ -78,9 +80,7 @@ class FileSystemDispatcherHost : public BrowserMessageFilter { const base::Time& last_access_time, const base::Time& last_modified_time); void OnCancel(int request_id, int request_to_cancel); - void UnregisterOperation(int request_id); - private: // Creates a new FileSystemOperation. fileapi::FileSystemOperation* GetNewOperation(int request_id); diff --git a/content/common/common_param_traits.cc b/content/common/common_param_traits.cc index fe92765..b5ba062 100644 --- a/content/common/common_param_traits.cc +++ b/content/common/common_param_traits.cc @@ -427,4 +427,47 @@ void ParamTraits<scoped_refptr<webkit_glue::ResourceDevToolsInfo> >::Log( l->append(")"); } +void ParamTraits<base::PlatformFileInfo>::Write( + Message* m, const param_type& p) { + WriteParam(m, p.size); + WriteParam(m, p.is_directory); + WriteParam(m, p.last_modified.ToDoubleT()); + WriteParam(m, p.last_accessed.ToDoubleT()); + WriteParam(m, p.creation_time.ToDoubleT()); +} + +bool ParamTraits<base::PlatformFileInfo>::Read( + const Message* m, void** iter, param_type* p) { + double last_modified; + double last_accessed; + double creation_time; + bool result = + ReadParam(m, iter, &p->size) && + ReadParam(m, iter, &p->is_directory) && + ReadParam(m, iter, &last_modified) && + ReadParam(m, iter, &last_accessed) && + ReadParam(m, iter, &creation_time); + if (result) { + p->last_modified = base::Time::FromDoubleT(last_modified); + p->last_accessed = base::Time::FromDoubleT(last_accessed); + p->creation_time = base::Time::FromDoubleT(creation_time); + } + return result; +} + +void ParamTraits<base::PlatformFileInfo>::Log( + const param_type& p, std::string* l) { + l->append("("); + LogParam(p.size, l); + l->append(","); + LogParam(p.is_directory, l); + l->append(","); + LogParam(p.last_modified.ToDoubleT(), l); + l->append(","); + LogParam(p.last_accessed.ToDoubleT(), l); + l->append(","); + LogParam(p.creation_time.ToDoubleT(), l); + l->append(")"); +} + } // namespace IPC diff --git a/content/common/common_param_traits.h b/content/common/common_param_traits.h index 1ecb5bb..f6f79b6 100644 --- a/content/common/common_param_traits.h +++ b/content/common/common_param_traits.h @@ -14,6 +14,7 @@ #define CONTENT_COMMON_COMMON_PARAM_TRAITS_H_ #pragma once +#include "base/platform_file.h" #include "base/ref_counted.h" #include "googleurl/src/gurl.h" #include "ipc/ipc_message_utils.h" @@ -108,6 +109,19 @@ struct ParamTraits<scoped_refptr<webkit_glue::ResourceDevToolsInfo> > { static void Log(const param_type& p, std::string* l); }; +template <> +struct ParamTraits<base::PlatformFileInfo> { + typedef base::PlatformFileInfo param_type; + static void Write(Message* m, const param_type& p); + static bool Read(const Message* m, void** iter, param_type* r); + static void Log(const param_type& p, std::string* l); +}; + +template <> +struct SimilarTypeTraits<base::PlatformFileError> { + typedef int Type; +}; + } // namespace IPC #endif // CONTENT_COMMON_COMMON_PARAM_TRAITS_H_ diff --git a/content/common/content_message_generator.h b/content/common/content_message_generator.h index ac64b0d..c363be5 100644 --- a/content/common/content_message_generator.h +++ b/content/common/content_message_generator.h @@ -4,6 +4,7 @@ // Multiply-included file, hence no include guard. +#include "content/common/file_system_messages.h" #include "content/common/p2p_messages.h" #include "content/common/resource_messages.h" #include "content/common/socket_stream_messages.h" diff --git a/content/common/file_system_messages.h b/content/common/file_system_messages.h new file mode 100644 index 0000000..6965abe --- /dev/null +++ b/content/common/file_system_messages.h @@ -0,0 +1,123 @@ +// Copyright (c) 2011 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. + +// IPC messages for the file system. +// Multiply-included message file, hence no include guard. + +#include "base/file_util_proxy.h" +#include "ipc/ipc_message_macros.h" +#include "webkit/fileapi/file_system_types.h" + +#define IPC_MESSAGE_START FileSystemMsgStart + +IPC_STRUCT_TRAITS_BEGIN(base::FileUtilProxy::Entry) + IPC_STRUCT_TRAITS_MEMBER(name) + IPC_STRUCT_TRAITS_MEMBER(is_directory) +IPC_STRUCT_TRAITS_END() + +IPC_ENUM_TRAITS(fileapi::FileSystemType) + +// File system messages sent from the browser to the child process. + +// WebFrameClient::openFileSystem response messages. +IPC_MESSAGE_CONTROL4(FileSystemMsg_OpenComplete, + int /* request_id */, + bool /* accepted */, + std::string /* name */, + FilePath /* root_path */) + +// WebFileSystem response messages. +IPC_MESSAGE_CONTROL1(FileSystemMsg_DidSucceed, + int /* request_id */) +IPC_MESSAGE_CONTROL2(FileSystemMsg_DidReadMetadata, + int /* request_id */, + base::PlatformFileInfo) +IPC_MESSAGE_CONTROL3(FileSystemMsg_DidReadDirectory, + int /* request_id */, + std::vector<base::FileUtilProxy::Entry> /* entries */, + bool /* has_more */) +IPC_MESSAGE_CONTROL3(FileSystemMsg_DidWrite, + int /* request_id */, + int64 /* byte count */, + bool /* complete */) +IPC_MESSAGE_CONTROL2(FileSystemMsg_DidFail, + int /* request_id */, + base::PlatformFileError /* error_code */) + +// File system messages sent from the child process to the browser. + +// WebFrameClient::openFileSystem() message. +IPC_MESSAGE_CONTROL5(FileSystemHostMsg_Open, + int /* request_id */, + GURL /* origin_url */, + fileapi::FileSystemType /* type */, + int64 /* requested_size */, + bool /* create */) + +// WebFileSystem::move() message. +IPC_MESSAGE_CONTROL3(FileSystemHostMsg_Move, + int /* request_id */, + FilePath /* src path */, + FilePath /* dest path */) + +// WebFileSystem::copy() message. +IPC_MESSAGE_CONTROL3(FileSystemHostMsg_Copy, + int /* request_id */, + FilePath /* src path */, + FilePath /* dest path */) + +// WebFileSystem::remove() message. +IPC_MESSAGE_CONTROL3(FileSystemMsg_Remove, + int /* request_id */, + FilePath /* path */, + bool /* recursive */) + +// WebFileSystem::readMetadata() message. +IPC_MESSAGE_CONTROL2(FileSystemHostMsg_ReadMetadata, + int /* request_id */, + FilePath /* path */) + +// WebFileSystem::create() message. +IPC_MESSAGE_CONTROL5(FileSystemHostMsg_Create, + int /* request_id */, + FilePath /* path */, + bool /* exclusive */, + bool /* is_directory */, + bool /* recursive */) + +// WebFileSystem::exists() messages. +IPC_MESSAGE_CONTROL3(FileSystemHostMsg_Exists, + int /* request_id */, + FilePath /* path */, + bool /* is_directory */) + +// WebFileSystem::readDirectory() message. +IPC_MESSAGE_CONTROL2(FileSystemHostMsg_ReadDirectory, + int /* request_id */, + FilePath /* path */) + +// WebFileWriter::write() message. +IPC_MESSAGE_CONTROL4(FileSystemHostMsg_Write, + int /* request id */, + FilePath /* file path */, + GURL /* blob URL */, + int64 /* position */) + +// WebFileWriter::truncate() message. +IPC_MESSAGE_CONTROL3(FileSystemHostMsg_Truncate, + int /* request id */, + FilePath /* file path */, + int64 /* length */) + +// Pepper's Touch() message. +IPC_MESSAGE_CONTROL4(FileSystemHostMsg_TouchFile, + int /* request_id */, + FilePath /* path */, + base::Time /* last_access_time */, + base::Time /* last_modified_time */) + +// WebFileWriter::cancel() message. +IPC_MESSAGE_CONTROL2(FileSystemHostMsg_CancelWrite, + int /* request id */, + int /* id of request to cancel */) diff --git a/content/content_common.gypi b/content/content_common.gypi index b253e05..b11c701 100644 --- a/content/content_common.gypi +++ b/content/content_common.gypi @@ -22,6 +22,7 @@ 'common/content_constants.h', 'common/content_switches.cc', 'common/content_switches.h', + 'common/file_system_messages.h', 'common/message_router.cc', 'common/message_router.h', 'common/notification_details.cc', |