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

Unified Diff: chrome/browser/download/save_package_file_picker_chromeos.cc

Issue 10069014: Save Page As MHTML (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cros Created 8 years, 8 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 side-by-side diff with in-line comments
Download patch
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;
-}

Powered by Google App Engine
This is Rietveld 408576698