Chromium Code Reviews| Index: chrome/browser/download/save_package_file_picker_chromeos.cc |
| diff --git a/chrome/browser/download/save_package_file_picker_chromeos.cc b/chrome/browser/download/save_package_file_picker_chromeos.cc |
| index 6fea929ffb0ce265a009491933e0895795790c84..1c5b8abbd6a27f12cd6e3a78d566d00d6ab18590 100644 |
| --- a/chrome/browser/download/save_package_file_picker_chromeos.cc |
| +++ b/chrome/browser/download/save_package_file_picker_chromeos.cc |
| @@ -4,25 +4,16 @@ |
| #include "chrome/browser/download/save_package_file_picker_chromeos.h" |
| -#include "base/bind.h" |
| -#include "base/bind_helpers.h" |
| #include "base/i18n/file_util_icu.h" |
| -#include "base/threading/sequenced_worker_pool.h" |
| -#include "chrome/browser/chromeos/gdata/gdata_download_observer.h" |
| -#include "chrome/browser/chromeos/gdata/gdata_file_system.h" |
| -#include "chrome/browser/chromeos/gdata/gdata_system_service.h" |
| -#include "chrome/browser/chromeos/gdata/gdata_util.h" |
| #include "chrome/browser/platform_util.h" |
| -#include "chrome/browser/profiles/profile.h" |
| -#include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/web_contents.h" |
| -using content::BrowserThread; |
| - |
| SavePackageFilePickerChromeOS::SavePackageFilePickerChromeOS( |
| content::WebContents* web_contents, |
| - const FilePath& suggested_path) |
| - : content::WebContentsObserver(web_contents) { |
| + const FilePath& suggested_path, |
| + content::SaveFilePathPickedCallback callback) |
| + : content::WebContentsObserver(web_contents), |
| + callback_(callback) { |
| select_file_dialog_ = SelectFileDialog::Create(this); |
| select_file_dialog_->SelectFile(SelectFileDialog::SELECT_SAVEAS_FILE, |
| string16(), |
| @@ -42,87 +33,14 @@ SavePackageFilePickerChromeOS::~SavePackageFilePickerChromeOS() { |
| void SavePackageFilePickerChromeOS::FileSelected(const FilePath& selected_path, |
| int index, |
| void* params) { |
| - if (!web_contents()) { |
| - delete this; |
| - return; |
| - } |
| - |
| - FilePath path = selected_path; |
| - file_util::NormalizeFileNameEncoding(&path); |
| - |
| - gdata::GDataFileSystem* gdata_filesystem = GetGDataFileSystem(); |
| - if (gdata_filesystem && gdata::util::IsUnderGDataMountPoint(path)) { |
| - FilePath gdata_tmp_download_dir = |
| - gdata_filesystem->GetGDataTempDownloadFolderPath(); |
| - |
| - selected_path_ = path; |
| - FilePath* gdata_tmp_download_path = new FilePath(); |
| - BrowserThread::GetBlockingPool()->PostTaskAndReply(FROM_HERE, |
| - base::Bind(&gdata::GDataDownloadObserver::GetGDataTempDownloadPath, |
| - gdata_tmp_download_dir, |
| - gdata_tmp_download_path), |
| - base::Bind(&SavePackageFilePickerChromeOS::GenerateMHTML, |
| - base::Unretained(this), |
| - base::Owned(gdata_tmp_download_path))); |
| - } else { |
| - DVLOG(1) << "SavePackageFilePickerChromeOS non-gdata file"; |
| - GenerateMHTML(&path); |
| + if (web_contents()) { |
| + FilePath path = selected_path; |
| + file_util::NormalizeFileNameEncoding(&path); |
| + callback_.Run(path, content::SAVE_PAGE_TYPE_AS_MHTML); |
|
asanka
2012/04/18 18:34:59
How does the file get uploaded to GData if it was
benjhayden
2012/04/18 18:38:28
My understanding is that there's a DownloadManager
asanka
2012/04/18 18:50:24
It's not automatic. See DownloadFilePickerChromeOS
|
| } |
| -} |
| - |
| -void SavePackageFilePickerChromeOS::FileSelectionCanceled(void* params) { |
| delete this; |
| } |
| -void SavePackageFilePickerChromeOS::GenerateMHTML(const FilePath* mhtml_path) { |
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| - if (!web_contents()) { |
| - delete this; |
| - return; |
| - } |
| - |
| - DVLOG(1) << "GenerateMHTML " << mhtml_path->value(); |
| - web_contents()->GenerateMHTML(*mhtml_path, |
| - base::Bind(&SavePackageFilePickerChromeOS::OnMHTMLGenerated, |
| - base::Unretained(this))); |
| -} |
| - |
| -void SavePackageFilePickerChromeOS::OnMHTMLGenerated(const FilePath& src_path, |
| - int64 file_size) { |
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| - if (!web_contents()) { |
| - delete this; |
| - return; |
| - } |
| - |
| - gdata::GDataFileSystem* gdata_filesystem = GetGDataFileSystem(); |
| - if (gdata_filesystem && !selected_path_.empty()) { |
| - DVLOG(1) << "TransferFile from " << src_path.value() |
| - << " to " << selected_path_.value(); |
| - gdata_filesystem->TransferFile(src_path, |
| - gdata::util::ExtractGDataPath(selected_path_), |
| - base::Bind(&SavePackageFilePickerChromeOS::OnTransferFile, |
| - base::Unretained(this))); |
| - } else { |
| - delete this; |
| - } |
| -} |
| - |
| -void SavePackageFilePickerChromeOS::OnTransferFile( |
| - base::PlatformFileError error) { |
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| - DCHECK_EQ(error, base::PLATFORM_FILE_OK); |
| +void SavePackageFilePickerChromeOS::FileSelectionCanceled(void* params) { |
| delete this; |
| } |
| - |
| -gdata::GDataFileSystem* |
| -SavePackageFilePickerChromeOS::GetGDataFileSystem() { |
| - DCHECK(web_contents()); |
| - Profile* profile = Profile::FromBrowserContext( |
| - web_contents()->GetBrowserContext()); |
| - DCHECK(profile); |
| - gdata::GDataSystemService* system_service = |
| - gdata::GDataSystemServiceFactory::GetForProfile(profile); |
| - // system_service is NULL in incognito. |
| - return system_service ? system_service->file_system() : NULL; |
| -} |