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

Side by Side Diff: chrome/browser/user_data_manager.cc

Issue 293013: Deprecate PathService::Get(..., wstring*) and use FilePath instead. (Closed)
Patch Set: Created 11 years, 2 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
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #include "chrome/browser/user_data_manager.h" 7 #include "chrome/browser/user_data_manager.h"
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 11 matching lines...) Expand all
22 #include "chrome/installer/util/browser_distribution.h" 22 #include "chrome/installer/util/browser_distribution.h"
23 #include "grit/chromium_strings.h" 23 #include "grit/chromium_strings.h"
24 24
25 #if defined(OS_WIN) 25 #if defined(OS_WIN)
26 #include <windows.h> 26 #include <windows.h>
27 #include "chrome/installer/util/shell_util.h" 27 #include "chrome/installer/util/shell_util.h"
28 #endif 28 #endif
29 29
30 namespace { 30 namespace {
31 31
32 // TODO: don't use wstrings in all this code. :(
Evan Stade 2009/10/19 22:54:31 TODO(evan)
33 // But I'm not fixing it right now since this code is reported to be going
34 // away.
35 void DeprecatedPathServiceGet(int key, std::wstring* str) {
36 FilePath path;
37 PathService::Get(key, &path);
38 *str = path.ToWStringHack();
39 }
40
32 // Helper to start chrome for a given profile index. The helper takes care of 41 // Helper to start chrome for a given profile index. The helper takes care of
33 // enumerating profiles on the file thread and then it launches Chrome for the 42 // enumerating profiles on the file thread and then it launches Chrome for the
34 // appropriate profile on the original thread. 43 // appropriate profile on the original thread.
35 // An instance of this class should always be created on the heap, and it will 44 // An instance of this class should always be created on the heap, and it will
36 // delete itself when the launch is done. 45 // delete itself when the launch is done.
37 class LaunchChromeForProfileIndexHelper : GetProfilesHelper::Delegate { 46 class LaunchChromeForProfileIndexHelper : GetProfilesHelper::Delegate {
38 public: 47 public:
39 // Creates an instance with the given data manager and to launch chrome for 48 // Creates an instance with the given data manager and to launch chrome for
40 // the profile with the given index. 49 // the profile with the given index.
41 LaunchChromeForProfileIndexHelper(const UserDataManager* manager, int index); 50 LaunchChromeForProfileIndexHelper(const UserDataManager* manager, int index);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 // For e.g. a folder for the profile "Joe" would be named "User Data-Joe". 97 // For e.g. a folder for the profile "Joe" would be named "User Data-Joe".
89 static const wchar_t kProfileFolderSeparator[] = L"-"; 98 static const wchar_t kProfileFolderSeparator[] = L"-";
90 99
91 // static 100 // static
92 UserDataManager* UserDataManager::instance_ = NULL; 101 UserDataManager* UserDataManager::instance_ = NULL;
93 102
94 // static 103 // static
95 UserDataManager* UserDataManager::Create() { 104 UserDataManager* UserDataManager::Create() {
96 DCHECK(!instance_); 105 DCHECK(!instance_);
97 std::wstring user_data; 106 std::wstring user_data;
98 PathService::Get(chrome::DIR_USER_DATA, &user_data); 107 DeprecatedPathServiceGet(chrome::DIR_USER_DATA, &user_data);
99 instance_ = new UserDataManager(user_data); 108 instance_ = new UserDataManager(user_data);
100 return instance_; 109 return instance_;
101 } 110 }
102 111
103 // static 112 // static
104 UserDataManager* UserDataManager::Get() { 113 UserDataManager* UserDataManager::Get() {
105 DCHECK(instance_); 114 DCHECK(instance_);
106 return instance_; 115 return instance_;
107 } 116 }
108 117
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 std::wstring folder_name = GetFolderNameFromProfileName(profile_name); 182 std::wstring folder_name = GetFolderNameFromProfileName(profile_name);
174 std::wstring folder_path(user_data_root_); 183 std::wstring folder_path(user_data_root_);
175 file_util::AppendToPath(&folder_path, folder_name); 184 file_util::AppendToPath(&folder_path, folder_name);
176 return folder_path; 185 return folder_path;
177 } 186 }
178 187
179 void UserDataManager::LaunchChromeForProfile( 188 void UserDataManager::LaunchChromeForProfile(
180 const std::wstring& profile_name) const { 189 const std::wstring& profile_name) const {
181 std::wstring user_data_dir = GetUserDataFolderForProfile(profile_name); 190 std::wstring user_data_dir = GetUserDataFolderForProfile(profile_name);
182 std::wstring command; 191 std::wstring command;
183 PathService::Get(base::FILE_EXE, &command); 192 DeprecatedPathServiceGet(base::FILE_EXE, &command);
184 CommandLine command_line(command); 193 CommandLine command_line(command);
185 command_line.AppendSwitch(switches::kEnableUserDataDirProfiles); 194 command_line.AppendSwitch(switches::kEnableUserDataDirProfiles);
186 command_line.AppendSwitchWithValue(switches::kUserDataDir, 195 command_line.AppendSwitchWithValue(switches::kUserDataDir,
187 user_data_dir); 196 user_data_dir);
188 std::wstring local_state_path; 197 std::wstring local_state_path;
189 PathService::Get(chrome::FILE_LOCAL_STATE, &local_state_path); 198 DeprecatedPathServiceGet(chrome::FILE_LOCAL_STATE, &local_state_path);
190 command_line.AppendSwitchWithValue(switches::kParentProfile, 199 command_line.AppendSwitchWithValue(switches::kParentProfile,
191 local_state_path); 200 local_state_path);
192 base::LaunchApp(command_line, false, false, NULL); 201 base::LaunchApp(command_line, false, false, NULL);
193 } 202 }
194 203
195 void UserDataManager::LaunchChromeForProfile(int index) const { 204 void UserDataManager::LaunchChromeForProfile(int index) const {
196 // Helper deletes itself when done. 205 // Helper deletes itself when done.
197 LaunchChromeForProfileIndexHelper* helper = 206 LaunchChromeForProfileIndexHelper* helper =
198 new LaunchChromeForProfileIndexHelper(this, index); 207 new LaunchChromeForProfileIndexHelper(this, index);
199 helper->StartLaunch(); 208 helper->StartLaunch();
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 &GetProfilesHelper::InvokeDelegate, 312 &GetProfilesHelper::InvokeDelegate,
304 profiles.release())); 313 profiles.release()));
305 } 314 }
306 315
307 void GetProfilesHelper::InvokeDelegate(std::vector<std::wstring>* profiles) { 316 void GetProfilesHelper::InvokeDelegate(std::vector<std::wstring>* profiles) {
308 scoped_ptr< std::vector<std::wstring> > udd_profiles(profiles); 317 scoped_ptr< std::vector<std::wstring> > udd_profiles(profiles);
309 // If the delegate is gone by now, no need to do any work. 318 // If the delegate is gone by now, no need to do any work.
310 if (delegate_) 319 if (delegate_)
311 delegate_->OnGetProfilesDone(*udd_profiles.get()); 320 delegate_->OnGetProfilesDone(*udd_profiles.get());
312 } 321 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698