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

Side by Side Diff: chrome/browser/download/save_package_file_picker.cc

Issue 12662032: Merge SavePackageFilePicker{,ChromeOS} (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: @r196175 Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/download/save_package_file_picker.h" 5 #include "chrome/browser/download/save_package_file_picker.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/prefs/pref_member.h" 9 #include "base/prefs/pref_member.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 CommandLine::ForCurrentProcess()->HasSwitch( 72 CommandLine::ForCurrentProcess()->HasSwitch(
73 switches::kSavePageAsMHTML); 73 switches::kSavePageAsMHTML);
74 } 74 }
75 75
76 SavePackageFilePicker::SavePackageFilePicker( 76 SavePackageFilePicker::SavePackageFilePicker(
77 content::WebContents* web_contents, 77 content::WebContents* web_contents,
78 const base::FilePath& suggested_path_const, 78 const base::FilePath& suggested_path_const,
79 const base::FilePath::StringType& default_extension_const, 79 const base::FilePath::StringType& default_extension_const,
80 bool can_save_as_complete, 80 bool can_save_as_complete,
81 DownloadPrefs* download_prefs, 81 DownloadPrefs* download_prefs,
82 const base::Callback<void(const base::FilePath&)>& on_chosen,
82 const content::SavePackagePathPickedCallback& callback) 83 const content::SavePackagePathPickedCallback& callback)
83 : render_process_id_(web_contents->GetRenderProcessHost()->GetID()), 84 : render_process_id_(web_contents->GetRenderProcessHost()->GetID()),
84 can_save_as_complete_(can_save_as_complete), 85 can_save_as_complete_(can_save_as_complete),
86 on_chosen_(on_chosen),
85 callback_(callback) { 87 callback_(callback) {
86 base::FilePath suggested_path = suggested_path_const; 88 base::FilePath suggested_path = suggested_path_const;
87 base::FilePath::StringType default_extension = default_extension_const; 89 base::FilePath::StringType default_extension = default_extension_const;
88 int file_type_index = SavePackageTypeToIndex( 90 int file_type_index = SavePackageTypeToIndex(
89 static_cast<SavePageType>(download_prefs->save_file_type())); 91 static_cast<SavePageType>(download_prefs->save_file_type()));
90 DCHECK_NE(-1, file_type_index); 92 DCHECK_NE(-1, file_type_index);
91 93
92 ui::SelectFileDialog::FileTypeInfo file_type_info; 94 ui::SelectFileDialog::FileTypeInfo file_type_info;
93 95
94 // TODO(benjhayden): Merge the first branch with the second when all of the 96 // TODO(benjhayden): Merge the first branch with the second when all of the
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 save_type = kIndexToSaveType[index]; 202 save_type = kIndexToSaveType[index];
201 if (select_file_dialog_ && 203 if (select_file_dialog_ &&
202 select_file_dialog_->HasMultipleFileTypeChoices()) 204 select_file_dialog_->HasMultipleFileTypeChoices())
203 prefs->SetInteger(prefs::kSaveFileType, save_type); 205 prefs->SetInteger(prefs::kSaveFileType, save_type);
204 } 206 }
205 207
206 UMA_HISTOGRAM_ENUMERATION("Download.SavePageType", 208 UMA_HISTOGRAM_ENUMERATION("Download.SavePageType",
207 save_type, 209 save_type,
208 content::SAVE_PAGE_TYPE_MAX); 210 content::SAVE_PAGE_TYPE_MAX);
209 211
210 StringPrefMember save_file_path; 212 on_chosen_.Run(path);
211 save_file_path.Init(prefs::kSaveFileDefaultDirectory, prefs);
212 #if defined(OS_POSIX)
213 std::string path_string = path.DirName().value();
214 #elif defined(OS_WIN)
215 std::string path_string = WideToUTF8(path.DirName().value());
216 #endif
217 // If user change the default saving directory, we will remember it just
218 // like IE and FireFox.
219 if (!process->GetBrowserContext()->IsOffTheRecord() &&
220 save_file_path.GetValue() != path_string)
221 save_file_path.SetValue(path_string);
222
223 callback_.Run(path, save_type, base::Bind(&OnSavePackageDownloadCreated)); 213 callback_.Run(path, save_type, base::Bind(&OnSavePackageDownloadCreated));
224 } 214 }
225 215
226 delete this; 216 delete this;
227 } 217 }
228 218
229 void SavePackageFilePicker::FileSelectionCanceled(void* unused_params) { 219 void SavePackageFilePicker::FileSelectionCanceled(void* unused_params) {
230 delete this; 220 delete this;
231 } 221 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698