Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Side by Side Diff: chrome/browser/file_system/file_system_dispatcher_host.cc

Issue 3440021: This is the IPC and bits of the browser backend for FileWriter. The rest of... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/file_system/file_system_dispatcher_host.h" 5 #include "chrome/browser/file_system/file_system_dispatcher_host.h"
6 6
7 #include "base/file_path.h" 7 #include "base/file_path.h"
8 #include "base/thread.h" 8 #include "base/thread.h"
9 #include "base/time.h" 9 #include "base/time.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 bool handled = true; 108 bool handled = true;
109 IPC_BEGIN_MESSAGE_MAP_EX(FileSystemDispatcherHost, message, *message_was_ok) 109 IPC_BEGIN_MESSAGE_MAP_EX(FileSystemDispatcherHost, message, *message_was_ok)
110 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenFileSystemRequest, OnOpenFileSystem) 110 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenFileSystemRequest, OnOpenFileSystem)
111 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Move, OnMove) 111 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Move, OnMove)
112 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Copy, OnCopy) 112 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Copy, OnCopy)
113 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Remove, OnRemove) 113 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Remove, OnRemove)
114 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_ReadMetadata, OnReadMetadata) 114 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_ReadMetadata, OnReadMetadata)
115 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Create, OnCreate) 115 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Create, OnCreate)
116 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Exists, OnExists) 116 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Exists, OnExists)
117 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_ReadDirectory, OnReadDirectory) 117 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_ReadDirectory, OnReadDirectory)
118 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Write, OnWrite)
119 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_Truncate, OnTruncate)
120 IPC_MESSAGE_HANDLER(ViewHostMsg_FileSystem_CancelWrite, OnCancel)
118 IPC_MESSAGE_UNHANDLED(handled = false) 121 IPC_MESSAGE_UNHANDLED(handled = false)
119 IPC_END_MESSAGE_MAP_EX() 122 IPC_END_MESSAGE_MAP_EX()
120 return handled; 123 return handled;
121 } 124 }
122 125
123 void FileSystemDispatcherHost::OnOpenFileSystem( 126 void FileSystemDispatcherHost::OnOpenFileSystem(
124 const ViewHostMsg_OpenFileSystemRequest_Params& params) { 127 const ViewHostMsg_OpenFileSystemRequest_Params& params) {
125 128
126 // TODO(kinuko): hook up ContentSettings cookies type checks. 129 // TODO(kinuko): hook up ContentSettings cookies type checks.
127 130
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 GetNewOperation(request_id)->FileExists(path); 202 GetNewOperation(request_id)->FileExists(path);
200 } 203 }
201 204
202 void FileSystemDispatcherHost::OnReadDirectory( 205 void FileSystemDispatcherHost::OnReadDirectory(
203 int request_id, const FilePath& path) { 206 int request_id, const FilePath& path) {
204 if (!CheckValidFileSystemPath(path, request_id)) 207 if (!CheckValidFileSystemPath(path, request_id))
205 return; 208 return;
206 GetNewOperation(request_id)->ReadDirectory(path); 209 GetNewOperation(request_id)->ReadDirectory(path);
207 } 210 }
208 211
212 void FileSystemDispatcherHost::OnWrite(
213 int request_id,
214 const FilePath& path,
215 const GURL& blob_url,
216 int64 offset) {
217 if (!CheckValidFileSystemPath(path, request_id))
218 return;
219 GetNewOperation(request_id)->Write(path, blob_url, offset);
220 }
221
222 void FileSystemDispatcherHost::OnTruncate(
223 int request_id,
224 const FilePath& path,
225 int64 length) {
226 if (!CheckValidFileSystemPath(path, request_id))
227 return;
228 GetNewOperation(request_id)->Truncate(path, length);
229 }
230
231 void FileSystemDispatcherHost::OnCancel(
232 int request_id,
233 int request_id_to_cancel) {
234 fileapi::FileSystemOperation* write =
235 operations_.Lookup(request_id_to_cancel);
236 if (write) {
237 write->Cancel();
238 Send(new ViewMsg_FileSystem_DidSucceed(request_id));
239 } else {
240 Send(new ViewMsg_FileSystem_DidFail(
241 request_id, base::PLATFORM_FILE_ERROR_INVALID_OPERATION));
242 }
243 }
244
209 void FileSystemDispatcherHost::Send(IPC::Message* message) { 245 void FileSystemDispatcherHost::Send(IPC::Message* message) {
210 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO)); 246 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
211 if (!shutdown_ && message_sender_) 247 if (!shutdown_ && message_sender_)
212 message_sender_->Send(message); 248 message_sender_->Send(message);
213 else 249 else
214 delete message; 250 delete message;
215 } 251 }
216 252
217 bool FileSystemDispatcherHost::CheckValidFileSystemPath( 253 bool FileSystemDispatcherHost::CheckValidFileSystemPath(
218 const FilePath& path, int request_id) { 254 const FilePath& path, int request_id) {
(...skipping 15 matching lines...) Expand all
234 dispatcher, 270 dispatcher,
235 ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE)); 271 ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE));
236 operations_.AddWithID(operation, request_id); 272 operations_.AddWithID(operation, request_id);
237 return operation; 273 return operation;
238 } 274 }
239 275
240 void FileSystemDispatcherHost::RemoveCompletedOperation(int request_id) { 276 void FileSystemDispatcherHost::RemoveCompletedOperation(int request_id) {
241 DCHECK(operations_.Lookup(request_id)); 277 DCHECK(operations_.Lookup(request_id));
242 operations_.Remove(request_id); 278 operations_.Remove(request_id);
243 } 279 }
OLDNEW
« no previous file with comments | « chrome/browser/file_system/file_system_dispatcher_host.h ('k') | chrome/common/render_messages_internal.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698