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

Side by Side Diff: webkit/fileapi/file_system_operation.h

Issue 10008047: FileWriterDelegate should not call URLRequest::Start() after Cancel(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixing.. Created 8 years, 8 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_H_ 5 #ifndef WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_H_
6 #define WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_H_ 6 #define WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 int64 usage, int64 quota); 168 int64 usage, int64 quota);
169 169
170 // The 'body' methods that perform the actual work (i.e. posting the 170 // The 'body' methods that perform the actual work (i.e. posting the
171 // file task on proxy_) after the quota check. 171 // file task on proxy_) after the quota check.
172 void DoCreateFile(const StatusCallback& callback, bool exclusive); 172 void DoCreateFile(const StatusCallback& callback, bool exclusive);
173 void DoCreateDirectory(const StatusCallback& callback, 173 void DoCreateDirectory(const StatusCallback& callback,
174 bool exclusive, 174 bool exclusive,
175 bool recursive); 175 bool recursive);
176 void DoCopy(const StatusCallback& callback); 176 void DoCopy(const StatusCallback& callback);
177 void DoMove(const StatusCallback& callback); 177 void DoMove(const StatusCallback& callback);
178 void DoWrite(); 178 void DoWrite(const GURL& blob_url,
179 const net::URLRequestContext* request_context);
179 void DoTruncate(const StatusCallback& callback, int64 length); 180 void DoTruncate(const StatusCallback& callback, int64 length);
180 void DoOpenFile(const OpenFileCallback& callback, int file_flags); 181 void DoOpenFile(const OpenFileCallback& callback, int file_flags);
181 182
182 // Callback for CreateFile for |exclusive|=true cases. 183 // Callback for CreateFile for |exclusive|=true cases.
183 void DidEnsureFileExistsExclusive(const StatusCallback& callback, 184 void DidEnsureFileExistsExclusive(const StatusCallback& callback,
184 base::PlatformFileError rv, 185 base::PlatformFileError rv,
185 bool created); 186 bool created);
186 187
187 // Callback for CreateFile for |exclusive|=false cases. 188 // Callback for CreateFile for |exclusive|=false cases.
188 void DidEnsureFileExistsNonExclusive(const StatusCallback& callback, 189 void DidEnsureFileExistsNonExclusive(const StatusCallback& callback,
(...skipping 24 matching lines...) Expand all
213 int64 bytes, 214 int64 bytes,
214 bool complete); 215 bool complete);
215 void DidTouchFile(const StatusCallback& callback, 216 void DidTouchFile(const StatusCallback& callback,
216 base::PlatformFileError rv); 217 base::PlatformFileError rv);
217 void DidOpenFile(const OpenFileCallback& callback, 218 void DidOpenFile(const OpenFileCallback& callback,
218 base::PlatformFileError rv, 219 base::PlatformFileError rv,
219 base::PassPlatformFile file, 220 base::PassPlatformFile file,
220 bool created); 221 bool created);
221 222
222 // Helper for Write(). 223 // Helper for Write().
223 void OnFileOpenedForWrite(base::PlatformFileError rv, 224 void OnFileOpenedForWrite(const GURL& blob_url,
225 const net::URLRequestContext* request_context,
226 base::PlatformFileError rv,
224 base::PassPlatformFile file, 227 base::PassPlatformFile file,
225 bool created); 228 bool created);
226 229
227 // Checks the validity of a given |path_url| and and populates 230 // Checks the validity of a given |path_url| and and populates
228 // |path| and |file_util| for |mode|. 231 // |path| and |file_util| for |mode|.
229 base::PlatformFileError SetUpFileSystemPath( 232 base::PlatformFileError SetUpFileSystemPath(
230 const GURL& path_url, 233 const GURL& path_url,
231 FileSystemPath* file_system_path, 234 FileSystemPath* file_system_path,
232 FileSystemFileUtil** file_util, 235 FileSystemFileUtil** file_util,
233 SetUpPathMode mode); 236 SetUpPathMode mode);
(...skipping 13 matching lines...) Expand all
247 250
248 // This is set before any write operations. The destructor of 251 // This is set before any write operations. The destructor of
249 // ScopedQuotaNotifier sends notification to the QuotaManager 252 // ScopedQuotaNotifier sends notification to the QuotaManager
250 // to tell the update is done; so that we can make sure notify 253 // to tell the update is done; so that we can make sure notify
251 // the manager after any write operations are done. 254 // the manager after any write operations are done.
252 scoped_ptr<ScopedQuotaNotifier> scoped_quota_notifier_; 255 scoped_ptr<ScopedQuotaNotifier> scoped_quota_notifier_;
253 256
254 // These are all used only by Write(). 257 // These are all used only by Write().
255 friend class FileWriterDelegate; 258 friend class FileWriterDelegate;
256 scoped_ptr<FileWriterDelegate> file_writer_delegate_; 259 scoped_ptr<FileWriterDelegate> file_writer_delegate_;
257 scoped_ptr<net::URLRequest> blob_request_;
258 260
259 // write_callback is kept in this class for so that we can dispatch it when 261 // write_callback is kept in this class for so that we can dispatch it when
260 // the operation is cancelled. calcel_callback is kept for canceling a 262 // the operation is cancelled. calcel_callback is kept for canceling a
261 // Truncate() operation. We can't actually stop Truncate in another thread; 263 // Truncate() operation. We can't actually stop Truncate in another thread;
262 // after it resumed from the working thread, cancellation takes place. 264 // after it resumed from the working thread, cancellation takes place.
263 WriteCallback write_callback_; 265 WriteCallback write_callback_;
264 StatusCallback cancel_callback_; 266 StatusCallback cancel_callback_;
265 void set_write_callback(const WriteCallback& write_callback) { 267 void set_write_callback(const WriteCallback& write_callback) {
266 write_callback_ = write_callback; 268 write_callback_ = write_callback;
267 } 269 }
268 270
269 // Used only by OpenFile, in order to clone the file handle back to the 271 // Used only by OpenFile, in order to clone the file handle back to the
270 // requesting process. 272 // requesting process.
271 base::ProcessHandle peer_handle_; 273 base::ProcessHandle peer_handle_;
272 274
273 // A flag to make sure we call operation only once per instance. 275 // A flag to make sure we call operation only once per instance.
274 OperationType pending_operation_; 276 OperationType pending_operation_;
275 277
276 DISALLOW_COPY_AND_ASSIGN(FileSystemOperation); 278 DISALLOW_COPY_AND_ASSIGN(FileSystemOperation);
277 }; 279 };
278 280
279 } // namespace fileapi 281 } // namespace fileapi
280 282
281 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_H_ 283 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_H_
OLDNEW
« no previous file with comments | « no previous file | webkit/fileapi/file_system_operation.cc » ('j') | webkit/fileapi/file_system_operation.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698