Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/extensions/file_manager/private_api_drive.h" | 5 #include "chrome/browser/chromeos/extensions/file_manager/private_api_drive.h" |
| 6 | 6 |
| 7 #include "chrome/browser/browser_process.h" | 7 #include "chrome/browser/browser_process.h" |
| 8 #include "chrome/browser/chromeos/drive/drive_integration_service.h" | 8 #include "chrome/browser/chromeos/drive/drive_integration_service.h" |
| 9 #include "chrome/browser/chromeos/drive/drive_readonly_token_fetcher.h" | |
| 9 #include "chrome/browser/chromeos/extensions/file_manager/private_api_util.h" | 10 #include "chrome/browser/chromeos/extensions/file_manager/private_api_util.h" |
| 10 #include "chrome/browser/chromeos/file_manager/file_tasks.h" | 11 #include "chrome/browser/chromeos/file_manager/file_tasks.h" |
| 11 #include "chrome/browser/chromeos/file_manager/fileapi_util.h" | 12 #include "chrome/browser/chromeos/file_manager/fileapi_util.h" |
| 12 #include "chrome/browser/chromeos/file_manager/url_util.h" | 13 #include "chrome/browser/chromeos/file_manager/url_util.h" |
| 13 #include "chrome/browser/chromeos/fileapi/file_system_backend.h" | 14 #include "chrome/browser/chromeos/fileapi/file_system_backend.h" |
| 14 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 15 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| 15 #include "chrome/browser/drive/drive_app_registry.h" | 16 #include "chrome/browser/drive/drive_app_registry.h" |
| 16 #include "chrome/browser/drive/event_logger.h" | 17 #include "chrome/browser/drive/event_logger.h" |
| 17 #include "chrome/browser/profiles/profile.h" | 18 #include "chrome/browser/profiles/profile.h" |
| 18 #include "chrome/browser/profiles/profile_manager.h" | 19 #include "chrome/browser/profiles/profile_manager.h" |
| 19 #include "chrome/common/extensions/api/file_browser_private.h" | 20 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" |
| 21 #include "chrome/browser/signin/signin_manager_factory.h" | |
| 22 #include "components/signin/core/browser/profile_oauth2_token_service.h" | |
| 23 #include "components/signin/core/browser/signin_manager.h" | |
| 20 #include "content/public/browser/browser_thread.h" | 24 #include "content/public/browser/browser_thread.h" |
| 21 #include "webkit/common/fileapi/file_system_info.h" | 25 #include "webkit/common/fileapi/file_system_info.h" |
| 22 #include "webkit/common/fileapi/file_system_util.h" | 26 #include "webkit/common/fileapi/file_system_util.h" |
| 23 | 27 |
| 24 using content::BrowserThread; | 28 using content::BrowserThread; |
| 25 | 29 |
| 26 using file_manager::util::EntryDefinition; | 30 using file_manager::util::EntryDefinition; |
| 27 using file_manager::util::EntryDefinitionCallback; | 31 using file_manager::util::EntryDefinitionCallback; |
| 28 using file_manager::util::EntryDefinitionList; | 32 using file_manager::util::EntryDefinitionList; |
| 29 using file_manager::util::EntryDefinitionListCallback; | 33 using file_manager::util::EntryDefinitionListCallback; |
| (...skipping 850 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 880 base::Bind(&FileBrowserPrivateRequestDriveShareFunction::OnAddPermission, | 884 base::Bind(&FileBrowserPrivateRequestDriveShareFunction::OnAddPermission, |
| 881 this)); | 885 this)); |
| 882 return true; | 886 return true; |
| 883 } | 887 } |
| 884 | 888 |
| 885 void FileBrowserPrivateRequestDriveShareFunction::OnAddPermission( | 889 void FileBrowserPrivateRequestDriveShareFunction::OnAddPermission( |
| 886 drive::FileError error) { | 890 drive::FileError error) { |
| 887 SendResponse(error == drive::FILE_ERROR_OK); | 891 SendResponse(error == drive::FILE_ERROR_OK); |
| 888 } | 892 } |
| 889 | 893 |
| 894 bool FileBrowserPrivateGetDownloadUrlFunction::RunAsync() { | |
| 895 using extensions::api::file_browser_private::GetShareUrl::Params; | |
| 896 const scoped_ptr<Params> params(Params::Create(*args_)); | |
| 897 EXTENSION_FUNCTION_VALIDATE(params); | |
| 898 | |
| 899 const base::FilePath path = file_manager::util::GetLocalPathFromURL( | |
| 900 render_view_host(), GetProfile(), GURL(params->url)); | |
| 901 DCHECK(drive::util::IsUnderDriveMountPoint(path)); | |
| 902 | |
| 903 file_path_ = drive::util::ExtractDrivePath(path); | |
| 904 | |
| 905 drive::FileSystemInterface* const file_system = | |
| 906 drive::util::GetFileSystemByProfile(GetProfile()); | |
| 907 if (!file_system) { | |
| 908 // |file_system| is NULL if Drive is disabled. | |
| 909 return false; | |
| 910 } | |
| 911 | |
| 912 file_system->GetDownloadUrl( | |
| 913 file_path_, | |
| 914 base::Bind(&FileBrowserPrivateGetDownloadUrlFunction::OnGetDownloadUrl, | |
| 915 this)); | |
| 916 return true; | |
| 917 } | |
| 918 | |
| 919 void FileBrowserPrivateGetDownloadUrlFunction::OnGetDownloadUrl( | |
| 920 drive::FileError error, | |
| 921 const GURL& download_url) { | |
| 922 if (error != drive::FILE_ERROR_OK) { | |
| 923 SetError("Download Url for this item is not available."); | |
| 924 SendResponse(false); | |
| 925 return; | |
| 926 } | |
| 927 | |
| 928 drive::DriveServiceInterface* const drive_service = | |
|
kinaba
2014/07/09 06:02:47
Looks unused.
yoshiki
2014/07/11 13:48:50
Done.
| |
| 929 drive::util::GetDriveServiceByProfile(GetProfile()); | |
| 930 if (!drive_service) { | |
| 931 // DriveService is not available. | |
| 932 SetResult(new base::StringValue("")); | |
| 933 SendResponse(true); | |
| 934 } | |
| 935 | |
| 936 download_url_ = download_url.spec(); | |
| 937 | |
| 938 ProfileOAuth2TokenService* oauth2_token_service = | |
| 939 ProfileOAuth2TokenServiceFactory::GetForProfile(GetProfile()); | |
| 940 SigninManagerBase* signin_manager = | |
| 941 SigninManagerFactory::GetForProfile(GetProfile()); | |
| 942 const std::string& account_id = signin_manager->GetAuthenticatedAccountId(); | |
| 943 | |
| 944 new drive::DriveReadonlyTokenFetcher( | |
| 945 account_id, | |
| 946 oauth2_token_service, | |
| 947 base::Bind(&FileBrowserPrivateGetDownloadUrlFunction::OnTokenFetched, | |
| 948 this)); | |
| 949 } | |
| 950 | |
| 951 void FileBrowserPrivateGetDownloadUrlFunction::OnTokenFetched( | |
| 952 google_apis::GDataErrorCode code, | |
| 953 const std::string& access_token) { | |
|
kinaba
2014/07/09 06:02:47
Please check the error |code|.
yoshiki
2014/07/11 13:48:50
Done.
| |
| 954 const std::string url = download_url_ + "&access_token=" + access_token; | |
| 955 SetResult(new base::StringValue(url)); | |
| 956 | |
| 957 SendResponse(true); | |
| 958 } | |
| 959 | |
| 890 } // namespace extensions | 960 } // namespace extensions |
| OLD | NEW |