Index: chrome/browser/file_system/file_system_dispatcher_host.cc |
diff --git a/chrome/browser/file_system/file_system_dispatcher_host.cc b/chrome/browser/file_system/file_system_dispatcher_host.cc |
index 12b4d19c474beed209d4feb6bbe61e94703a137e..1d793703b05a77b1473ae06ea90a56219a12af0d 100644 |
--- a/chrome/browser/file_system/file_system_dispatcher_host.cc |
+++ b/chrome/browser/file_system/file_system_dispatcher_host.cc |
@@ -9,7 +9,6 @@ |
#include "base/time.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/browser_thread.h" |
-#include "chrome/browser/file_system/browser_file_system_callback_dispatcher.h" |
#include "chrome/browser/file_system/browser_file_system_context.h" |
#include "chrome/browser/host_content_settings_map.h" |
#include "chrome/browser/net/chrome_url_request_context.h" |
@@ -20,14 +19,67 @@ |
#include "chrome/common/render_messages_params.h" |
#include "googleurl/src/gurl.h" |
#include "net/url_request/url_request_context.h" |
+#include "webkit/fileapi/file_system_callback_dispatcher.h" |
#include "webkit/fileapi/file_system_operation.h" |
#include "webkit/fileapi/file_system_path_manager.h" |
#include "webkit/fileapi/file_system_quota_manager.h" |
#include "webkit/fileapi/sandboxed_file_system_operation.h" |
+using fileapi::FileSystemCallbackDispatcher; |
using fileapi::FileSystemQuotaManager; |
using fileapi::SandboxedFileSystemOperation; |
+class BrowserFileSystemCallbackDispatcher |
+ : public FileSystemCallbackDispatcher { |
+ public: |
+ BrowserFileSystemCallbackDispatcher( |
+ FileSystemDispatcherHost* dispatcher_host, int request_id) |
+ : dispatcher_host_(dispatcher_host), |
+ request_id_(request_id) { |
+ DCHECK(dispatcher_host_); |
+ } |
+ |
+ virtual ~BrowserFileSystemCallbackDispatcher() { |
+ dispatcher_host_->UnregisterOperation(request_id_); |
+ } |
+ |
+ virtual void DidSucceed() { |
+ dispatcher_host_->Send(new ViewMsg_FileSystem_DidSucceed(request_id_)); |
+ } |
+ |
+ virtual void DidReadMetadata(const base::PlatformFileInfo& info) { |
+ dispatcher_host_->Send(new ViewMsg_FileSystem_DidReadMetadata( |
+ request_id_, info)); |
+ } |
+ |
+ virtual void DidReadDirectory( |
+ const std::vector<base::FileUtilProxy::Entry>& entries, bool has_more) { |
+ dispatcher_host_->Send(new ViewMsg_FileSystem_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)); |
+ } |
+ |
+ virtual void DidFail(base::PlatformFileError error_code) { |
+ dispatcher_host_->Send(new ViewMsg_FileSystem_DidFail( |
+ request_id_, error_code)); |
+ } |
+ |
+ virtual void DidWrite(int64 bytes, bool complete) { |
+ dispatcher_host_->Send(new ViewMsg_FileSystem_DidWrite( |
+ request_id_, bytes, complete)); |
+ } |
+ |
+ private: |
+ scoped_refptr<FileSystemDispatcherHost> dispatcher_host_; |
+ int request_id_; |
+}; |
+ |
FileSystemDispatcherHost::FileSystemDispatcherHost( |
IPC::Message::Sender* sender, Profile* profile) |
: message_sender_(sender), |
@@ -217,7 +269,7 @@ SandboxedFileSystemOperation* FileSystemDispatcherHost::GetNewOperation( |
return operation; |
} |
-void FileSystemDispatcherHost::RemoveCompletedOperation(int request_id) { |
+void FileSystemDispatcherHost::UnregisterOperation(int request_id) { |
DCHECK(operations_.Lookup(request_id)); |
operations_.Remove(request_id); |
} |