OLD | NEW |
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.h" | 5 #include "chrome/browser/chromeos/drive/file_system.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "chrome/browser/chromeos/drive/change_list_loader.h" | 10 #include "chrome/browser/chromeos/drive/change_list_loader.h" |
(...skipping 675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
686 } | 686 } |
687 DCHECK(about_resource); | 687 DCHECK(about_resource); |
688 | 688 |
689 callback.Run(FILE_ERROR_OK, | 689 callback.Run(FILE_ERROR_OK, |
690 about_resource->quota_bytes_total(), | 690 about_resource->quota_bytes_total(), |
691 about_resource->quota_bytes_used()); | 691 about_resource->quota_bytes_used()); |
692 } | 692 } |
693 | 693 |
694 void FileSystem::GetShareUrl(const base::FilePath& file_path, | 694 void FileSystem::GetShareUrl(const base::FilePath& file_path, |
695 const GURL& embed_origin, | 695 const GURL& embed_origin, |
696 const GetShareUrlCallback& callback) { | 696 const GetUrlCallback& callback) { |
697 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 697 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
698 DCHECK(!callback.is_null()); | 698 DCHECK(!callback.is_null()); |
699 | 699 |
700 // Resolve the resource id. | 700 // Resolve the resource id. |
701 ResourceEntry* entry = new ResourceEntry; | 701 ResourceEntry* entry = new ResourceEntry; |
702 base::PostTaskAndReplyWithResult( | 702 base::PostTaskAndReplyWithResult( |
703 blocking_task_runner_.get(), | 703 blocking_task_runner_.get(), |
704 FROM_HERE, | 704 FROM_HERE, |
705 base::Bind(&internal::ResourceMetadata::GetResourceEntryByPath, | 705 base::Bind(&internal::ResourceMetadata::GetResourceEntryByPath, |
706 base::Unretained(resource_metadata_), | 706 base::Unretained(resource_metadata_), |
707 file_path, | 707 file_path, |
708 entry), | 708 entry), |
709 base::Bind(&FileSystem::GetShareUrlAfterGetResourceEntry, | 709 base::Bind(&FileSystem::GetShareUrlAfterGetResourceEntry, |
710 weak_ptr_factory_.GetWeakPtr(), | 710 weak_ptr_factory_.GetWeakPtr(), |
711 file_path, | 711 file_path, |
712 embed_origin, | 712 embed_origin, |
713 callback, | 713 callback, |
714 base::Owned(entry))); | 714 base::Owned(entry))); |
715 } | 715 } |
716 | 716 |
717 void FileSystem::GetShareUrlAfterGetResourceEntry( | 717 void FileSystem::GetShareUrlAfterGetResourceEntry( |
718 const base::FilePath& file_path, | 718 const base::FilePath& file_path, |
719 const GURL& embed_origin, | 719 const GURL& embed_origin, |
720 const GetShareUrlCallback& callback, | 720 const GetUrlCallback& callback, |
721 ResourceEntry* entry, | 721 ResourceEntry* entry, |
722 FileError error) { | 722 FileError error) { |
723 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 723 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
724 DCHECK(!callback.is_null()); | 724 DCHECK(!callback.is_null()); |
725 | 725 |
726 if (error != FILE_ERROR_OK) { | 726 if (error != FILE_ERROR_OK) { |
727 callback.Run(error, GURL()); | 727 callback.Run(error, GURL()); |
728 return; | 728 return; |
729 } | 729 } |
730 if (entry->resource_id().empty()) { | 730 if (entry->resource_id().empty()) { |
731 // This entry does not exist on the server. Just return. | 731 // This entry does not exist on the server. Just return. |
732 callback.Run(FILE_ERROR_FAILED, GURL()); | 732 callback.Run(FILE_ERROR_FAILED, GURL()); |
733 return; | 733 return; |
734 } | 734 } |
735 | 735 |
736 scheduler_->GetShareUrl( | 736 scheduler_->GetShareUrl( |
737 entry->resource_id(), | 737 entry->resource_id(), |
738 embed_origin, | 738 embed_origin, |
739 ClientContext(USER_INITIATED), | 739 ClientContext(USER_INITIATED), |
740 base::Bind(&FileSystem::OnGetResourceEntryForGetShareUrl, | 740 base::Bind(&FileSystem::OnGetResourceEntryForGetShareUrl, |
741 weak_ptr_factory_.GetWeakPtr(), | 741 weak_ptr_factory_.GetWeakPtr(), |
742 callback)); | 742 callback)); |
743 } | 743 } |
744 | 744 |
745 void FileSystem::OnGetResourceEntryForGetShareUrl( | 745 void FileSystem::OnGetResourceEntryForGetShareUrl( |
746 const GetShareUrlCallback& callback, | 746 const GetUrlCallback& callback, |
747 google_apis::GDataErrorCode status, | 747 google_apis::GDataErrorCode status, |
748 const GURL& share_url) { | 748 const GURL& share_url) { |
749 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 749 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
750 DCHECK(!callback.is_null()); | 750 DCHECK(!callback.is_null()); |
751 | 751 |
752 FileError error = GDataToFileError(status); | 752 FileError error = GDataToFileError(status); |
753 if (error != FILE_ERROR_OK) { | 753 if (error != FILE_ERROR_OK) { |
754 callback.Run(error, GURL()); | 754 callback.Run(error, GURL()); |
755 return; | 755 return; |
756 } | 756 } |
757 | 757 |
758 if (share_url.is_empty()) { | 758 if (share_url.is_empty()) { |
759 callback.Run(FILE_ERROR_FAILED, GURL()); | 759 callback.Run(FILE_ERROR_FAILED, GURL()); |
760 return; | 760 return; |
761 } | 761 } |
762 | 762 |
763 callback.Run(FILE_ERROR_OK, share_url); | 763 callback.Run(FILE_ERROR_OK, share_url); |
764 } | 764 } |
765 | 765 |
| 766 void FileSystem::GetDownloadUrl(const base::FilePath& file_path, |
| 767 const GetUrlCallback& callback) { |
| 768 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 769 DCHECK(!callback.is_null()); |
| 770 |
| 771 // Resolve the resource id. |
| 772 ResourceEntry* entry = new ResourceEntry; |
| 773 base::PostTaskAndReplyWithResult( |
| 774 blocking_task_runner_.get(), |
| 775 FROM_HERE, |
| 776 base::Bind(&internal::ResourceMetadata::GetResourceEntryByPath, |
| 777 base::Unretained(resource_metadata_), |
| 778 file_path, |
| 779 entry), |
| 780 base::Bind(&FileSystem::GetDownloadUrlAfterGetResourceEntry, |
| 781 weak_ptr_factory_.GetWeakPtr(), |
| 782 file_path, |
| 783 callback, |
| 784 base::Owned(entry))); |
| 785 } |
| 786 |
| 787 void FileSystem::GetDownloadUrlAfterGetResourceEntry( |
| 788 const base::FilePath& file_path, |
| 789 const GetUrlCallback& callback, |
| 790 ResourceEntry* entry, |
| 791 FileError error) { |
| 792 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 793 DCHECK(!callback.is_null()); |
| 794 |
| 795 if (error != FILE_ERROR_OK) { |
| 796 callback.Run(error, GURL()); |
| 797 return; |
| 798 } |
| 799 if (entry->resource_id().empty()) { |
| 800 // This entry does not exist on the server. Just return. |
| 801 callback.Run(FILE_ERROR_FAILED, GURL()); |
| 802 return; |
| 803 } |
| 804 |
| 805 scheduler_->GetFileResource( |
| 806 entry->resource_id(), |
| 807 base::Bind(&FileSystem::OnGetFileResourceForGetDownloadUrl, |
| 808 weak_ptr_factory_.GetWeakPtr(), |
| 809 callback)); |
| 810 } |
| 811 |
| 812 void FileSystem::OnGetFileResourceForGetDownloadUrl( |
| 813 const GetUrlCallback& callback, |
| 814 google_apis::GDataErrorCode status, |
| 815 scoped_ptr<google_apis::FileResource> file_resource) { |
| 816 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 817 DCHECK(!callback.is_null()); |
| 818 |
| 819 FileError error = GDataToFileError(status); |
| 820 if (error != FILE_ERROR_OK) { |
| 821 callback.Run(error, GURL()); |
| 822 return; |
| 823 } |
| 824 |
| 825 if (file_resource->download_url().is_empty()) { |
| 826 callback.Run(FILE_ERROR_FAILED, GURL()); |
| 827 return; |
| 828 } |
| 829 |
| 830 callback.Run(FILE_ERROR_OK, file_resource->download_url()); |
| 831 } |
| 832 |
766 void FileSystem::Search(const std::string& search_query, | 833 void FileSystem::Search(const std::string& search_query, |
767 const GURL& next_link, | 834 const GURL& next_link, |
768 const SearchCallback& callback) { | 835 const SearchCallback& callback) { |
769 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 836 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
770 DCHECK(!callback.is_null()); | 837 DCHECK(!callback.is_null()); |
771 search_operation_->Search(search_query, next_link, callback); | 838 search_operation_->Search(search_query, next_link, callback); |
772 } | 839 } |
773 | 840 |
774 void FileSystem::SearchMetadata(const std::string& query, | 841 void FileSystem::SearchMetadata(const std::string& query, |
775 int options, | 842 int options, |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
984 FROM_HERE, | 1051 FROM_HERE, |
985 base::Bind(&GetPathFromResourceIdOnBlockingPool, | 1052 base::Bind(&GetPathFromResourceIdOnBlockingPool, |
986 resource_metadata_, | 1053 resource_metadata_, |
987 resource_id, | 1054 resource_id, |
988 file_path), | 1055 file_path), |
989 base::Bind(&GetPathFromResourceIdAfterGetPath, | 1056 base::Bind(&GetPathFromResourceIdAfterGetPath, |
990 base::Owned(file_path), | 1057 base::Owned(file_path), |
991 callback)); | 1058 callback)); |
992 } | 1059 } |
993 } // namespace drive | 1060 } // namespace drive |
OLD | NEW |