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

Side by Side Diff: chrome/browser/chromeos/drive/file_system_proxy.cc

Issue 14472008: [FileAPI] Add file open ID and close callback (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 7 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 #include "chrome/browser/chromeos/drive/file_system_proxy.h" 5 #include "chrome/browser/chromeos/drive/file_system_proxy.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 15 matching lines...) Expand all
26 using base::MessageLoopProxy; 26 using base::MessageLoopProxy;
27 using content::BrowserThread; 27 using content::BrowserThread;
28 using fileapi::FileSystemURL; 28 using fileapi::FileSystemURL;
29 using fileapi::FileSystemOperation; 29 using fileapi::FileSystemOperation;
30 using webkit_blob::ShareableFileReference; 30 using webkit_blob::ShareableFileReference;
31 31
32 namespace drive { 32 namespace drive {
33 33
34 namespace { 34 namespace {
35 35
36 typedef fileapi::RemoteFileSystemProxyInterface::OpenFileCallback
37 OpenFileCallback;
38
36 const char kFeedField[] = "feed"; 39 const char kFeedField[] = "feed";
37 40
38 // Helper function to run reply on results of base::CreatePlatformFile() on 41 // Helper function to run reply on results of base::CreatePlatformFile() on
39 // IO thread. 42 // IO thread.
40 void OnPlatformFileOpened( 43 void OnPlatformFileOpened(
41 const FileSystemOperation::OpenFileCallback& callback, 44 const OpenFileCallback& callback,
42 base::ProcessHandle peer_handle, 45 base::ProcessHandle peer_handle,
43 base::PlatformFileError* open_error, 46 base::PlatformFileError* open_error,
44 base::PlatformFile platform_file) { 47 base::PlatformFile platform_file) {
45 callback.Run(*open_error, platform_file, peer_handle); 48 callback.Run(*open_error, platform_file, peer_handle);
46 } 49 }
47 50
48 // Helper function to run OpenFileCallback from 51 // Helper function to run OpenFileCallback from
49 // FileSystemProxy::OpenFile(). 52 // FileSystemProxy::OpenFile().
50 void OnGetFileByPathForOpen( 53 void OnGetFileByPathForOpen(
51 const FileSystemOperation::OpenFileCallback& callback, 54 const OpenFileCallback& callback,
52 int file_flags, 55 int file_flags,
53 base::ProcessHandle peer_handle, 56 base::ProcessHandle peer_handle,
54 FileError file_error, 57 FileError file_error,
55 const base::FilePath& local_path, 58 const base::FilePath& local_path,
56 const std::string& unused_mime_type, 59 const std::string& unused_mime_type,
57 DriveFileType file_type) { 60 DriveFileType file_type) {
58 base::PlatformFileError error = 61 base::PlatformFileError error =
59 FileErrorToPlatformError(file_error); 62 FileErrorToPlatformError(file_error);
60 if (error != base::PLATFORM_FILE_OK) { 63 if (error != base::PLATFORM_FILE_OK) {
61 callback.Run(error, base::kInvalidPlatformFileValue, peer_handle); 64 callback.Run(error, base::kInvalidPlatformFileValue, peer_handle);
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 base::Bind(&FileSystemProxy::OnFileOpenedForTruncate, 391 base::Bind(&FileSystemProxy::OnFileOpenedForTruncate,
389 this, 392 this,
390 file_path, 393 file_path,
391 length, 394 length,
392 callback)))); 395 callback))));
393 } 396 }
394 397
395 void FileSystemProxy::OnOpenFileForWriting( 398 void FileSystemProxy::OnOpenFileForWriting(
396 int file_flags, 399 int file_flags,
397 base::ProcessHandle peer_handle, 400 base::ProcessHandle peer_handle,
398 const FileSystemOperation::OpenFileCallback& callback, 401 const OpenFileCallback& callback,
399 FileError file_error, 402 FileError file_error,
400 const base::FilePath& local_cache_path) { 403 const base::FilePath& local_cache_path) {
401 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 404 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
402 405
403 base::PlatformFileError error = 406 base::PlatformFileError error =
404 FileErrorToPlatformError(file_error); 407 FileErrorToPlatformError(file_error);
405 408
406 if (error != base::PLATFORM_FILE_OK) { 409 if (error != base::PLATFORM_FILE_OK) {
407 callback.Run(error, base::kInvalidPlatformFileValue, peer_handle); 410 callback.Run(error, base::kInvalidPlatformFileValue, peer_handle);
408 return; 411 return;
(...skipping 13 matching lines...) Expand all
422 callback, 425 callback,
423 peer_handle, 426 peer_handle,
424 base::Owned(result))); 427 base::Owned(result)));
425 DCHECK(posted); 428 DCHECK(posted);
426 } 429 }
427 430
428 void FileSystemProxy::OnCreateFileForOpen( 431 void FileSystemProxy::OnCreateFileForOpen(
429 const base::FilePath& file_path, 432 const base::FilePath& file_path,
430 int file_flags, 433 int file_flags,
431 base::ProcessHandle peer_handle, 434 base::ProcessHandle peer_handle,
432 const FileSystemOperation::OpenFileCallback& callback, 435 const OpenFileCallback& callback,
433 FileError file_error) { 436 FileError file_error) {
434 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 437 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
435 base::PlatformFileError create_result = 438 base::PlatformFileError create_result =
436 FileErrorToPlatformError(file_error); 439 FileErrorToPlatformError(file_error);
437 440
438 if ((create_result == base::PLATFORM_FILE_OK) || 441 if ((create_result == base::PLATFORM_FILE_OK) ||
439 ((create_result == base::PLATFORM_FILE_ERROR_EXISTS) && 442 ((create_result == base::PLATFORM_FILE_ERROR_EXISTS) &&
440 (file_flags & base::PLATFORM_FILE_CREATE_ALWAYS))) { 443 (file_flags & base::PLATFORM_FILE_CREATE_ALWAYS))) {
441 // If we are trying to always create an existing file, then 444 // If we are trying to always create an existing file, then
442 // if it really exists open it as truncated. 445 // if it really exists open it as truncated.
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 google_apis::CreateRelayCallback( 506 google_apis::CreateRelayCallback(
504 base::Bind(&DidCloseFileForTruncate, 507 base::Bind(&DidCloseFileForTruncate,
505 callback, 508 callback,
506 truncate_result)))); 509 truncate_result))));
507 } 510 }
508 511
509 void FileSystemProxy::OpenFile( 512 void FileSystemProxy::OpenFile(
510 const FileSystemURL& file_url, 513 const FileSystemURL& file_url,
511 int file_flags, 514 int file_flags,
512 base::ProcessHandle peer_handle, 515 base::ProcessHandle peer_handle,
513 const FileSystemOperation::OpenFileCallback& callback) { 516 const OpenFileCallback& callback) {
514 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 517 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
515 518
516 base::FilePath file_path; 519 base::FilePath file_path;
517 if (!ValidateUrl(file_url, &file_path)) { 520 if (!ValidateUrl(file_url, &file_path)) {
518 MessageLoopProxy::current()->PostTask( 521 MessageLoopProxy::current()->PostTask(
519 FROM_HERE, 522 FROM_HERE,
520 base::Bind(callback, 523 base::Bind(callback,
521 base::PLATFORM_FILE_ERROR_NOT_FOUND, 524 base::PLATFORM_FILE_ERROR_NOT_FOUND,
522 base::kInvalidPlatformFileValue, 525 base::kInvalidPlatformFileValue,
523 peer_handle)); 526 peer_handle));
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 CallDriveFileSystemMethodOnUIThread( 829 CallDriveFileSystemMethodOnUIThread(
827 base::Bind(&DriveFileSystemInterface::CloseFile, 830 base::Bind(&DriveFileSystemInterface::CloseFile,
828 base::Unretained(file_system_), 831 base::Unretained(file_system_),
829 virtual_path, 832 virtual_path,
830 google_apis::CreateRelayCallback( 833 google_apis::CreateRelayCallback(
831 base::Bind(&EmitDebugLogForCloseFile, 834 base::Bind(&EmitDebugLogForCloseFile,
832 virtual_path)))); 835 virtual_path))));
833 } 836 }
834 837
835 } // namespace drive 838 } // namespace drive
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/drive/file_system_proxy.h ('k') | content/browser/fileapi/fileapi_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698