Chromium Code Reviews| Index: chrome/browser/download/save_package_file_picker.cc |
| diff --git a/chrome/browser/download/save_package_file_picker.cc b/chrome/browser/download/save_package_file_picker.cc |
| index e56c1bbf05a4e91ced5a14f18d55f5a77c3bdbb8..7234be8a5e627934aa8038342935f3d3a2d7f7bb 100644 |
| --- a/chrome/browser/download/save_package_file_picker.cc |
| +++ b/chrome/browser/download/save_package_file_picker.cc |
| @@ -4,6 +4,7 @@ |
| #include "chrome/browser/download/save_package_file_picker.h" |
| +#include "base/metrics/histogram.h" |
| #include "base/utf_string_conversions.h" |
| #include "chrome/browser/download/download_prefs.h" |
| #include "chrome/browser/platform_util.h" |
| @@ -33,6 +34,7 @@ const SavePageType kIndexToSaveType[] = { |
| content::SAVE_PAGE_TYPE_UNKNOWN, |
| content::SAVE_PAGE_TYPE_AS_ONLY_HTML, |
| content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML, |
| + content::SAVE_PAGE_TYPE_AS_MHTML, |
| }; |
| int SavePackageTypeToIndex(SavePageType type) { |
| @@ -48,10 +50,14 @@ int SavePackageTypeToIndex(SavePageType type) { |
| // the user chooses when picking a save type. |
| const int kSelectFileHtmlOnlyIndex = 1; |
| const int kSelectFileCompleteIndex = 2; |
| +const int kSelectFileCompleteSingleFileIndex = 3; |
| // Used for mapping between the IDS_ string identifiers and the indexes above. |
| const int kIndexToIDS[] = { |
| - 0, IDS_SAVE_PAGE_DESC_HTML_ONLY, IDS_SAVE_PAGE_DESC_COMPLETE, |
| + 0, |
| + IDS_SAVE_PAGE_DESC_HTML_ONLY, |
| + IDS_SAVE_PAGE_DESC_COMPLETE, |
| + IDS_SAVE_PAGE_DESC_COMPLETE_SINGLE_FILE, |
| }; |
| } |
| @@ -83,31 +89,42 @@ SavePackageFilePicker::SavePackageFilePicker( |
| extra_extension = suggested_path.Extension().substr(1); |
| } |
| - file_type_info.extensions.resize(2); |
| + file_type_info.extensions.resize(3); |
|
Randy Smith (Not in Mondays)
2012/04/16 17:45:47
nit, suggestion (i.e. up to you), while you're her
benjhayden
2012/04/16 19:08:06
Done.
|
| + |
|
Randy Smith (Not in Mondays)
2012/04/16 17:45:47
nit, while you're here: Could you put in a comment
benjhayden
2012/04/16 19:08:06
Done.
|
| + file_type_info.extension_description_overrides.push_back( |
| + l10n_util::GetStringUTF16(kIndexToIDS[kSelectFileHtmlOnlyIndex])); |
|
Randy Smith (Not in Mondays)
2012/04/16 17:45:47
nit, suggestion, while you're here: We're dealing
benjhayden
2012/04/16 19:08:06
Done.
|
| file_type_info.extensions[kSelectFileHtmlOnlyIndex - 1].push_back( |
| FILE_PATH_LITERAL("htm")); |
| file_type_info.extensions[kSelectFileHtmlOnlyIndex - 1].push_back( |
| FILE_PATH_LITERAL("html")); |
| - |
| if (add_extra_extension) { |
| file_type_info.extensions[kSelectFileHtmlOnlyIndex - 1].push_back( |
| extra_extension); |
| } |
| file_type_info.extension_description_overrides.push_back( |
| - l10n_util::GetStringUTF16(kIndexToIDS[kSelectFileCompleteIndex - 1])); |
| + l10n_util::GetStringUTF16(kIndexToIDS[kSelectFileCompleteIndex])); |
| file_type_info.extensions[kSelectFileCompleteIndex - 1].push_back( |
| FILE_PATH_LITERAL("htm")); |
| file_type_info.extensions[kSelectFileCompleteIndex - 1].push_back( |
| FILE_PATH_LITERAL("html")); |
| - |
| if (add_extra_extension) { |
| file_type_info.extensions[kSelectFileCompleteIndex - 1].push_back( |
| extra_extension); |
| } |
| file_type_info.extension_description_overrides.push_back( |
| - l10n_util::GetStringUTF16(kIndexToIDS[kSelectFileCompleteIndex])); |
| + l10n_util::GetStringUTF16(kIndexToIDS[ |
| + kSelectFileCompleteSingleFileIndex])); |
| + file_type_info.extensions[kSelectFileCompleteSingleFileIndex - 1].push_back( |
| + FILE_PATH_LITERAL("mht")); |
| + file_type_info.extensions[kSelectFileCompleteSingleFileIndex - 1].push_back( |
| + FILE_PATH_LITERAL("mhtml")); |
| + if (add_extra_extension) { |
| + file_type_info.extensions[ |
| + kSelectFileCompleteSingleFileIndex - 1].push_back(extra_extension); |
| + } |
| + |
| file_type_info.include_all_files = false; |
| } else { |
| file_type_info.extensions.resize(1); |
| @@ -153,11 +170,13 @@ void SavePackageFilePicker::FileSelected(const FilePath& path, |
| void* params) { |
| // The option index is not zero-based. |
| DCHECK(index >= kSelectFileHtmlOnlyIndex && |
| - index <= kSelectFileCompleteIndex); |
| + index <= kSelectFileCompleteSingleFileIndex); |
| RenderProcessHost* process = RenderProcessHost::FromID(render_process_id_); |
| if (process) { |
| SavePageType save_type = kIndexToSaveType[index]; |
| + UMA_HISTOGRAM_ENUMERATION( |
| + "Download.SavePageType", save_type, content::SAVE_PAGE_TYPE_MAX); |
| Profile* profile = |
| Profile::FromBrowserContext(process->GetBrowserContext()); |
| PrefService* prefs = profile->GetPrefs(); |