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

Side by Side Diff: chrome/browser/chromeos/gdata/gdata_file_system.cc

Issue 10832233: gdata: Fix bad function names in GDataFileSystem (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address comments Created 8 years, 4 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/gdata/gdata_file_system.h" 5 #include "chrome/browser/chromeos/gdata/gdata_file_system.h"
6 6
7 #include <set> 7 #include <set>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 1111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1122 FilePath new_file(file_name); 1122 FilePath new_file(file_name);
1123 if (new_file.Extension() == 1123 if (new_file.Extension() ==
1124 entry_proto->file_specific_info().document_extension()) { 1124 entry_proto->file_specific_info().document_extension()) {
1125 file_name = new_file.RemoveExtension().value(); 1125 file_name = new_file.RemoveExtension().value();
1126 } 1126 }
1127 } 1127 }
1128 1128
1129 documents_service_->RenameResource( 1129 documents_service_->RenameResource(
1130 GURL(entry_proto->edit_url()), 1130 GURL(entry_proto->edit_url()),
1131 file_name, 1131 file_name,
1132 base::Bind(&GDataFileSystem::RenameFileOnFileSystem, 1132 base::Bind(&GDataFileSystem::RenameEntryLocally,
1133 ui_weak_ptr_, 1133 ui_weak_ptr_,
1134 file_path, 1134 file_path,
1135 file_name, 1135 file_name,
1136 callback)); 1136 callback));
1137 } 1137 }
1138 1138
1139 void GDataFileSystem::Move(const FilePath& src_file_path, 1139 void GDataFileSystem::Move(const FilePath& src_file_path,
1140 const FilePath& dest_file_path, 1140 const FilePath& dest_file_path,
1141 const FileOperationCallback& callback) { 1141 const FileOperationCallback& callback) {
1142 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || 1142 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) ||
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1210 // 3. Adds the file to the parent directory of |dest_file_path|, which 1210 // 3. Adds the file to the parent directory of |dest_file_path|, which
1211 // effectively moves the file from the root directory to the parent 1211 // effectively moves the file from the root directory to the parent
1212 // directory of |dest_file_path|. 1212 // directory of |dest_file_path|.
1213 FileMoveCallback add_file_to_directory_callback = 1213 FileMoveCallback add_file_to_directory_callback =
1214 base::Bind(&GDataFileSystem::MoveEntryFromRootDirectory, 1214 base::Bind(&GDataFileSystem::MoveEntryFromRootDirectory,
1215 ui_weak_ptr_, 1215 ui_weak_ptr_,
1216 dest_file_path.DirName(), 1216 dest_file_path.DirName(),
1217 callback); 1217 callback);
1218 1218
1219 FileMoveCallback remove_file_from_directory_callback = 1219 FileMoveCallback remove_file_from_directory_callback =
1220 base::Bind(&GDataFileSystem::RemoveEntryFromDirectory, 1220 base::Bind(&GDataFileSystem::RemoveEntryFromNonRootDirectory,
1221 ui_weak_ptr_, 1221 ui_weak_ptr_,
1222 src_file_path.DirName(),
1223 add_file_to_directory_callback); 1222 add_file_to_directory_callback);
1224 1223
1225 Rename(src_file_path, dest_file_path.BaseName().value(), 1224 Rename(src_file_path, dest_file_path.BaseName().value(),
1226 remove_file_from_directory_callback); 1225 remove_file_from_directory_callback);
1227 } 1226 }
1228 1227
1229 void GDataFileSystem::MoveEntryFromRootDirectory( 1228 void GDataFileSystem::MoveEntryFromRootDirectory(
1230 const FilePath& dir_path, 1229 const FilePath& dir_path,
1231 const FileOperationCallback& callback, 1230 const FileOperationCallback& callback,
1232 GDataFileError error, 1231 GDataFileError error,
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1278 documents_service_->AddResourceToDirectory( 1277 documents_service_->AddResourceToDirectory(
1279 GURL(dir_proto->content_url()), 1278 GURL(dir_proto->content_url()),
1280 GURL(src_proto->edit_url()), 1279 GURL(src_proto->edit_url()),
1281 base::Bind(&GDataFileSystem::OnMoveEntryFromRootDirectoryCompleted, 1280 base::Bind(&GDataFileSystem::OnMoveEntryFromRootDirectoryCompleted,
1282 ui_weak_ptr_, 1281 ui_weak_ptr_,
1283 callback, 1282 callback,
1284 file_path, 1283 file_path,
1285 dir_path)); 1284 dir_path));
1286 } 1285 }
1287 1286
1288 void GDataFileSystem::RemoveEntryFromDirectory( 1287 void GDataFileSystem::RemoveEntryFromNonRootDirectory(
1289 const FilePath& dir_path,
1290 const FileMoveCallback& callback, 1288 const FileMoveCallback& callback,
1291 GDataFileError error, 1289 GDataFileError error,
1292 const FilePath& file_path) { 1290 const FilePath& file_path) {
1293 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1291 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
1292 DCHECK(!callback.is_null());
1294 1293
1294 const FilePath dir_path = file_path.DirName();
1295 GDataEntry* entry = directory_service_->FindEntryByPathSync(file_path); 1295 GDataEntry* entry = directory_service_->FindEntryByPathSync(file_path);
1296 GDataEntry* dir = directory_service_->FindEntryByPathSync(dir_path); 1296 GDataEntry* dir = directory_service_->FindEntryByPathSync(dir_path);
1297 if (error == GDATA_FILE_OK) { 1297 if (error == GDATA_FILE_OK) {
1298 if (!entry || !dir) { 1298 if (!entry || !dir) {
1299 error = GDATA_FILE_ERROR_NOT_FOUND; 1299 error = GDATA_FILE_ERROR_NOT_FOUND;
1300 } else { 1300 } else {
1301 if (!dir->AsGDataDirectory()) 1301 if (!dir->AsGDataDirectory())
1302 error = GDATA_FILE_ERROR_NOT_A_DIRECTORY; 1302 error = GDATA_FILE_ERROR_NOT_A_DIRECTORY;
1303 } 1303 }
1304 } 1304 }
1305 1305
1306 // Returns if there is an error or |dir_path| is the root directory. 1306 // Returns if there is an error or |dir_path| is the root directory.
1307 if (error != GDATA_FILE_OK || 1307 if (error != GDATA_FILE_OK ||
1308 dir->resource_id() == kGDataRootDirectoryResourceId) { 1308 dir->resource_id() == kGDataRootDirectoryResourceId) {
1309 if (!callback.is_null()) { 1309 callback.Run(error, file_path);
1310 MessageLoop::current()->PostTask(FROM_HERE,
1311 base::Bind(callback, error, file_path));
1312 }
1313 return; 1310 return;
1314 } 1311 }
1315 1312
1316 documents_service_->RemoveResourceFromDirectory( 1313 documents_service_->RemoveResourceFromDirectory(
1317 dir->content_url(), 1314 dir->content_url(),
1318 entry->edit_url(), 1315 entry->edit_url(),
1319 entry->resource_id(), 1316 entry->resource_id(),
1320 base::Bind(&GDataFileSystem::RemoveEntryFromDirectoryOnFileSystem, 1317 base::Bind(&GDataFileSystem::MoveEntryToRootDirectoryLocally,
1321 ui_weak_ptr_, 1318 ui_weak_ptr_,
1322 callback, 1319 callback,
1323 file_path, 1320 file_path,
1324 dir_path)); 1321 dir_path));
1325 } 1322 }
1326 1323
1327 void GDataFileSystem::Remove(const FilePath& file_path, 1324 void GDataFileSystem::Remove(const FilePath& file_path,
1328 bool is_recursive, 1325 bool is_recursive,
1329 const FileOperationCallback& callback) { 1326 const FileOperationCallback& callback) {
1330 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || 1327 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) ||
(...skipping 1193 matching lines...) Expand 10 before | Expand all | Expand 10 after
2524 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2521 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2525 DCHECK(!callback.is_null()); 2522 DCHECK(!callback.is_null());
2526 2523
2527 GDataFileError error = util::GDataToGDataFileError(status); 2524 GDataFileError error = util::GDataToGDataFileError(status);
2528 if (error == GDATA_FILE_OK) { 2525 if (error == GDATA_FILE_OK) {
2529 GDataEntry* entry = directory_service_->FindEntryByPathSync(file_path); 2526 GDataEntry* entry = directory_service_->FindEntryByPathSync(file_path);
2530 if (entry) { 2527 if (entry) {
2531 DCHECK_EQ(directory_service_->root(), entry->parent()); 2528 DCHECK_EQ(directory_service_->root(), entry->parent());
2532 directory_service_->MoveEntryToDirectory(dir_path, entry, 2529 directory_service_->MoveEntryToDirectory(dir_path, entry,
2533 base::Bind( 2530 base::Bind(
2534 &GDataFileSystem::OnMoveEntryToDirectoryWithFileOperationCallback, 2531 &GDataFileSystem::NotifyAndRunFileOperationCallback,
2535 ui_weak_ptr_, 2532 ui_weak_ptr_,
2536 callback)); 2533 callback));
2537 return; 2534 return;
2538 } else { 2535 } else {
2539 error = GDATA_FILE_ERROR_NOT_FOUND; 2536 error = GDATA_FILE_ERROR_NOT_FOUND;
2540 } 2537 }
2541 } 2538 }
2542 2539
2543 callback.Run(error); 2540 callback.Run(error);
2544 } 2541 }
2545 2542
2546 void GDataFileSystem::OnRemovedDocument( 2543 void GDataFileSystem::OnRemovedDocument(
2547 const FileOperationCallback& callback, 2544 const FileOperationCallback& callback,
2548 const FilePath& file_path, 2545 const FilePath& file_path,
2549 GDataErrorCode status, 2546 GDataErrorCode status,
2550 const GURL& document_url) { 2547 const GURL& document_url) {
2551 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2548 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2552 2549
2553 GDataFileError error = util::GDataToGDataFileError(status); 2550 GDataFileError error = util::GDataToGDataFileError(status);
2554 2551
2555 if (error == GDATA_FILE_OK) 2552 if (error == GDATA_FILE_OK)
2556 error = RemoveEntryFromFileSystem(file_path); 2553 error = RemoveEntryAndCacheLocally(file_path);
2557 2554
2558 if (!callback.is_null()) { 2555 if (!callback.is_null()) {
2559 callback.Run(error); 2556 callback.Run(error);
2560 } 2557 }
2561 } 2558 }
2562 2559
2563 void GDataFileSystem::OnFileDownloaded( 2560 void GDataFileSystem::OnFileDownloaded(
2564 const GetFileFromCacheParams& params, 2561 const GetFileFromCacheParams& params,
2565 GDataErrorCode status, 2562 GDataErrorCode status,
2566 const GURL& content_url, 2563 const GURL& content_url,
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
2659 } 2656 }
2660 } 2657 }
2661 2658
2662 void GDataFileSystem::OnDownloadStoredToCache(GDataFileError error, 2659 void GDataFileSystem::OnDownloadStoredToCache(GDataFileError error,
2663 const std::string& resource_id, 2660 const std::string& resource_id,
2664 const std::string& md5) { 2661 const std::string& md5) {
2665 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2662 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2666 // Nothing much to do here for now. 2663 // Nothing much to do here for now.
2667 } 2664 }
2668 2665
2669 void GDataFileSystem::RenameFileOnFileSystem( 2666 void GDataFileSystem::RenameEntryLocally(
2670 const FilePath& file_path, 2667 const FilePath& file_path,
2671 const FilePath::StringType& new_name, 2668 const FilePath::StringType& new_name,
2672 const FileMoveCallback& callback, 2669 const FileMoveCallback& callback,
2673 GDataErrorCode status, 2670 GDataErrorCode status,
2674 const GURL& document_url) { 2671 const GURL& document_url) {
2675 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2672 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2676 2673
2677 const GDataFileError error = util::GDataToGDataFileError(status); 2674 const GDataFileError error = util::GDataToGDataFileError(status);
2678 if (error != GDATA_FILE_OK) { 2675 if (error != GDATA_FILE_OK) {
2679 if (!callback.is_null()) 2676 if (!callback.is_null())
(...skipping 13 matching lines...) Expand all
2693 // After changing the title of the entry, call MoveEntryToDirectory() to 2690 // After changing the title of the entry, call MoveEntryToDirectory() to
2694 // remove the entry from its parent directory and then add it back in order to 2691 // remove the entry from its parent directory and then add it back in order to
2695 // go through the file name de-duplication. 2692 // go through the file name de-duplication.
2696 // TODO(achuith/satorux/zel): This code is fragile. The title has been 2693 // TODO(achuith/satorux/zel): This code is fragile. The title has been
2697 // changed, but not the file_name. MoveEntryToDirectory calls RemoveChild to 2694 // changed, but not the file_name. MoveEntryToDirectory calls RemoveChild to
2698 // remove the child based on the old file_name, and then re-adds the child by 2695 // remove the child based on the old file_name, and then re-adds the child by
2699 // first assigning the new title to file_name. http://crbug.com/30157 2696 // first assigning the new title to file_name. http://crbug.com/30157
2700 directory_service_->MoveEntryToDirectory( 2697 directory_service_->MoveEntryToDirectory(
2701 entry->parent()->GetFilePath(), 2698 entry->parent()->GetFilePath(),
2702 entry, 2699 entry,
2703 base::Bind(&GDataFileSystem::OnMoveEntryToDirectoryWithFileMoveCallback, 2700 base::Bind(&GDataFileSystem::NotifyAndRunFileMoveCallback,
2704 ui_weak_ptr_, 2701 ui_weak_ptr_,
2705 callback)); 2702 callback));
2706 } 2703 }
2707 2704
2708 void GDataFileSystem::RemoveEntryFromDirectoryOnFileSystem( 2705 void GDataFileSystem::MoveEntryToRootDirectoryLocally(
2709 const FileMoveCallback& callback, 2706 const FileMoveCallback& callback,
2710 const FilePath& file_path, 2707 const FilePath& file_path,
2711 const FilePath& dir_path, 2708 const FilePath& dir_path,
2712 GDataErrorCode status, 2709 GDataErrorCode status,
2713 const GURL& document_url) { 2710 const GURL& document_url) {
2714 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2711 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2712 DCHECK(!callback.is_null());
2715 2713
2716 const GDataFileError error = util::GDataToGDataFileError(status); 2714 const GDataFileError error = util::GDataToGDataFileError(status);
2717 if (error != GDATA_FILE_OK) { 2715 if (error != GDATA_FILE_OK) {
2718 if (!callback.is_null()) 2716 callback.Run(error, FilePath());
2719 callback.Run(error, FilePath());
2720 return; 2717 return;
2721 } 2718 }
2722 2719
2723 GDataEntry* entry = directory_service_->FindEntryByPathSync(file_path); 2720 GDataEntry* entry = directory_service_->FindEntryByPathSync(file_path);
2724 if (!entry) { 2721 if (!entry) {
2725 if (!callback.is_null()) 2722 callback.Run(GDATA_FILE_ERROR_NOT_FOUND, FilePath());
2726 callback.Run(GDATA_FILE_ERROR_NOT_FOUND, FilePath());
2727 return; 2723 return;
2728 } 2724 }
2729 2725
2730 directory_service_->MoveEntryToDirectory( 2726 directory_service_->MoveEntryToDirectory(
2731 directory_service_->root()->GetFilePath(), 2727 directory_service_->root()->GetFilePath(),
2732 entry, 2728 entry,
2733 base::Bind(&GDataFileSystem::OnMoveEntryToDirectoryWithFileMoveCallback, 2729 base::Bind(&GDataFileSystem::NotifyAndRunFileMoveCallback,
2734 ui_weak_ptr_, 2730 ui_weak_ptr_,
2735 callback)); 2731 callback));
2736 } 2732 }
2737 2733
2738 void GDataFileSystem::OnMoveEntryToDirectoryWithFileMoveCallback( 2734 void GDataFileSystem::NotifyAndRunFileMoveCallback(
2739 const FileMoveCallback& callback, 2735 const FileMoveCallback& callback,
2740 GDataFileError error, 2736 GDataFileError error,
2741 const FilePath& moved_file_path) { 2737 const FilePath& moved_file_path) {
2738 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2739 DCHECK(!callback.is_null());
2740
2742 if (error == GDATA_FILE_OK) 2741 if (error == GDATA_FILE_OK)
2743 OnDirectoryChanged(moved_file_path.DirName()); 2742 OnDirectoryChanged(moved_file_path.DirName());
2744 2743
2745 if (!callback.is_null()) 2744 callback.Run(error, moved_file_path);
2746 callback.Run(error, moved_file_path);
2747 } 2745 }
2748 2746
2749 void GDataFileSystem::OnMoveEntryToDirectoryWithFileOperationCallback( 2747 void GDataFileSystem::NotifyAndRunFileOperationCallback(
2750 const FileOperationCallback& callback, 2748 const FileOperationCallback& callback,
2751 GDataFileError error, 2749 GDataFileError error,
2752 const FilePath& moved_file_path) { 2750 const FilePath& moved_file_path) {
2751 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2753 DCHECK(!callback.is_null()); 2752 DCHECK(!callback.is_null());
2754 2753
2755 if (error == GDATA_FILE_OK) 2754 if (error == GDATA_FILE_OK)
2756 OnDirectoryChanged(moved_file_path.DirName()); 2755 OnDirectoryChanged(moved_file_path.DirName());
2757 2756
2758 callback.Run(error); 2757 callback.Run(error);
2759 } 2758 }
2760 2759
2761 GDataFileError GDataFileSystem::RemoveEntryFromFileSystem( 2760 GDataFileError GDataFileSystem::RemoveEntryAndCacheLocally(
2762 const FilePath& file_path) { 2761 const FilePath& file_path) {
2763 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2762 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2764 2763
2765 std::string resource_id; 2764 std::string resource_id;
2766 GDataFileError error = RemoveEntryFromGData(file_path, &resource_id); 2765 GDataFileError error = RemoveEntryLocally(file_path, &resource_id);
2767 if (error != GDATA_FILE_OK) 2766 if (error != GDATA_FILE_OK)
2768 return error; 2767 return error;
2769 2768
2770 // If resource_id is not empty, remove its corresponding file from cache. 2769 // If resource_id is not empty, remove its corresponding file from cache.
2771 if (!resource_id.empty()) 2770 if (!resource_id.empty())
2772 cache_->RemoveOnUIThread(resource_id, CacheOperationCallback()); 2771 cache_->RemoveOnUIThread(resource_id, CacheOperationCallback());
2773 2772
2774 return GDATA_FILE_OK; 2773 return GDATA_FILE_OK;
2775 } 2774 }
2776 2775
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
2882 return FOUND_INVALID; 2881 return FOUND_INVALID;
2883 } 2882 }
2884 } else { 2883 } else {
2885 *first_missing_parent_path = current_path; 2884 *first_missing_parent_path = current_path;
2886 return FOUND_MISSING; 2885 return FOUND_MISSING;
2887 } 2886 }
2888 } 2887 }
2889 return DIRECTORY_ALREADY_PRESENT; 2888 return DIRECTORY_ALREADY_PRESENT;
2890 } 2889 }
2891 2890
2892 GDataFileError GDataFileSystem::RemoveEntryFromGData( 2891 GDataFileError GDataFileSystem::RemoveEntryLocally(
2893 const FilePath& file_path, std::string* resource_id) { 2892 const FilePath& file_path, std::string* resource_id) {
2894 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2893 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2895 2894
2896 resource_id->clear(); 2895 resource_id->clear();
2897 2896
2898 // Find directory element within the cached file system snapshot. 2897 // Find directory element within the cached file system snapshot.
2899 GDataEntry* entry = directory_service_->FindEntryByPathSync(file_path); 2898 GDataEntry* entry = directory_service_->FindEntryByPathSync(file_path);
2900 2899
2901 if (!entry) 2900 if (!entry)
2902 return GDATA_FILE_ERROR_NOT_FOUND; 2901 return GDATA_FILE_ERROR_NOT_FOUND;
(...skipping 563 matching lines...) Expand 10 before | Expand all | Expand 10 after
3466 } 3465 }
3467 3466
3468 PlatformFileInfoProto entry_file_info; 3467 PlatformFileInfoProto entry_file_info;
3469 GDataEntry::ConvertPlatformFileInfoToProto(*file_info, &entry_file_info); 3468 GDataEntry::ConvertPlatformFileInfoToProto(*file_info, &entry_file_info);
3470 *entry_proto->mutable_file_info() = entry_file_info; 3469 *entry_proto->mutable_file_info() = entry_file_info;
3471 if (!callback.is_null()) 3470 if (!callback.is_null())
3472 callback.Run(GDATA_FILE_OK, entry_proto.Pass()); 3471 callback.Run(GDATA_FILE_OK, entry_proto.Pass());
3473 } 3472 }
3474 3473
3475 } // namespace gdata 3474 } // namespace gdata
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/gdata/gdata_file_system.h ('k') | chrome/browser/chromeos/gdata/gdata_file_system_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698