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 f9f8ab11eef504795d498440f5e2c513f7639534..31a4f6460fead9636716c79dedf8ca2114c1cd30 100644 |
--- a/chrome/browser/download/save_package_file_picker_chromeos.cc |
+++ b/chrome/browser/download/save_package_file_picker_chromeos.cc |
@@ -27,6 +27,7 @@ bool g_should_prompt_for_filename = true; |
// Trampoline callback between SubstituteDriveDownloadPath() and |callback|. |
void ContinueSettingUpDriveDownload( |
const content::SavePackagePathPickedCallback& callback, |
+ bool is_html, |
Profile* profile, |
const base::FilePath& drive_path, |
const base::FilePath& drive_tmp_download_path) { |
@@ -34,7 +35,10 @@ void ContinueSettingUpDriveDownload( |
return; |
callback.Run( |
- drive_tmp_download_path, content::SAVE_PAGE_TYPE_AS_MHTML, |
+ drive_tmp_download_path, |
+ (is_html ? |
+ content::SAVE_PAGE_TYPE_AS_MHTML : |
+ content::SAVE_PAGE_TYPE_AS_ONLY_HTML), |
base::Bind(&drive::DriveDownloadHandler::SetDownloadParams, |
base::Unretained( |
drive::DriveDownloadHandler::GetForProfile(profile)), |
@@ -46,9 +50,14 @@ void ContinueSettingUpDriveDownload( |
SavePackageFilePickerChromeOS::SavePackageFilePickerChromeOS( |
content::WebContents* web_contents, |
const base::FilePath& suggested_path, |
+ bool is_html, |
const content::SavePackagePathPickedCallback& callback) |
: content::WebContentsObserver(web_contents), |
- callback_(callback) { |
+ callback_(callback), |
+ is_html_(is_html) { |
+ base::FilePath suggested_path_copy(is_html_ ? |
+ suggested_path.ReplaceExtension("mhtml") : |
+ suggested_path); |
if (g_should_prompt_for_filename) { |
select_file_dialog_ = ui::SelectFileDialog::Create( |
this, new ChromeSelectFilePolicy(web_contents)); |
@@ -57,14 +66,14 @@ SavePackageFilePickerChromeOS::SavePackageFilePickerChromeOS( |
select_file_dialog_->SelectFile( |
ui::SelectFileDialog::SELECT_SAVEAS_FILE, |
string16(), |
- suggested_path.ReplaceExtension("mhtml"), |
+ suggested_path_copy, |
&file_types, |
0, |
- "mhtml", |
+ suggested_path_copy.Extension(), |
platform_util::GetTopLevel(web_contents->GetView()->GetNativeView()), |
NULL); |
} else { |
- FileSelected(suggested_path.ReplaceExtension("mhtml"), 0, NULL); |
+ FileSelected(suggested_path_copy, 0, NULL); |
} |
} |
@@ -112,10 +121,14 @@ void SavePackageFilePickerChromeOS::FileSelectedWithExtraInfo( |
SubstituteDriveDownloadPath(selected_path, NULL, |
base::Bind(&ContinueSettingUpDriveDownload, |
callback_, |
+ is_html_, |
profile, |
selected_path)); |
} else { |
- callback_.Run(selected_path, content::SAVE_PAGE_TYPE_AS_MHTML, |
+ callback_.Run(selected_path, |
+ (is_html_ ? |
+ content::SAVE_PAGE_TYPE_AS_MHTML : |
+ content::SAVE_PAGE_TYPE_AS_ONLY_HTML), |
content::SavePackageDownloadCreatedCallback()); |
} |
delete this; |