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

Side by Side Diff: chrome/browser/profiles/profile_manager.cc

Issue 10837352: Update profile desktop shortcuts (Closed) Base URL: https://src.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 3 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) 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 <set> 5 #include <set>
6 6
7 #include "chrome/browser/profiles/profile_manager.h" 7 #include "chrome/browser/profiles/profile_manager.h"
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 registrar_.Add( 262 registrar_.Add(
263 this, 263 this,
264 chrome::NOTIFICATION_CLOSE_ALL_BROWSERS_REQUEST, 264 chrome::NOTIFICATION_CLOSE_ALL_BROWSERS_REQUEST,
265 content::NotificationService::AllSources()); 265 content::NotificationService::AllSources());
266 registrar_.Add( 266 registrar_.Add(
267 this, 267 this,
268 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 268 chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED,
269 content::NotificationService::AllSources()); 269 content::NotificationService::AllSources());
270 270
271 if (ProfileShortcutManager::IsFeatureEnabled()) 271 if (ProfileShortcutManager::IsFeatureEnabled())
272 profile_shortcut_manager_.reset(ProfileShortcutManager::Create()); 272 profile_shortcut_manager_.reset(ProfileShortcutManager::Create(
273 GetProfileInfoCache()));
273 } 274 }
274 275
275 ProfileManager::~ProfileManager() { 276 ProfileManager::~ProfileManager() {
276 } 277 }
277 278
278 FilePath ProfileManager::GetDefaultProfileDir( 279 FilePath ProfileManager::GetDefaultProfileDir(
279 const FilePath& user_data_dir) { 280 const FilePath& user_data_dir) {
280 FilePath default_profile_dir(user_data_dir); 281 FilePath default_profile_dir(user_data_dir);
281 default_profile_dir = 282 default_profile_dir =
282 default_profile_dir.AppendASCII(chrome::kInitialProfile); 283 default_profile_dir.AppendASCII(chrome::kInitialProfile);
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 // Get the icon index from the user's icon url 450 // Get the icon index from the user's icon url
450 size_t icon_index; 451 size_t icon_index;
451 std::string icon_url_std = UTF16ToASCII(icon_url); 452 std::string icon_url_std = UTF16ToASCII(icon_url);
452 if (cache.IsDefaultAvatarIconUrl(icon_url_std, &icon_index)) { 453 if (cache.IsDefaultAvatarIconUrl(icon_url_std, &icon_index)) {
453 // add profile to cache with user selected name and avatar 454 // add profile to cache with user selected name and avatar
454 cache.AddProfileToCache(profile_path, name, string16(), icon_index); 455 cache.AddProfileToCache(profile_path, name, string16(), icon_index);
455 } 456 }
456 info->callbacks.push_back(callback); 457 info->callbacks.push_back(callback);
457 if (profile_shortcut_manager_.get() && !name.empty() && 458 if (profile_shortcut_manager_.get() && !name.empty() &&
458 !icon_url.empty()) { 459 !icon_url.empty()) {
459 BrowserThread::PostTask( 460 profile_shortcut_manager_->StartProfileDesktopShortcutCreation(
460 BrowserThread::FILE, FROM_HERE, 461 profile_path, name,
461 base::Bind(&ProfileShortcutManager::CreateChromeDesktopShortcut,
462 base::Unretained(profile_shortcut_manager_.get()), profile_path, name,
463 ResourceBundle::GetSharedInstance().GetNativeImageNamed( 462 ResourceBundle::GetSharedInstance().GetNativeImageNamed(
464 cache.GetDefaultAvatarIconResourceIDAtIndex(icon_index)))); 463 cache.GetDefaultAvatarIconResourceIDAtIndex(icon_index)));
465 } 464 }
466 } 465 }
467 } 466 }
468 467
469 // static 468 // static
470 void ProfileManager::CreateDefaultProfileAsync(const CreateCallback& callback) { 469 void ProfileManager::CreateDefaultProfileAsync(const CreateCallback& callback) {
471 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 470 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
472 ProfileManager* profile_manager = g_browser_process->profile_manager(); 471 ProfileManager* profile_manager = g_browser_process->profile_manager();
473 472
474 FilePath default_profile_dir = profile_manager->user_data_dir_; 473 FilePath default_profile_dir = profile_manager->user_data_dir_;
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
947 BrowserList::CloseAllBrowsersWithProfile(profile); 946 BrowserList::CloseAllBrowsersWithProfile(profile);
948 947
949 // Disable sync for doomed profile. 948 // Disable sync for doomed profile.
950 if (ProfileSyncServiceFactory::GetInstance()->HasProfileSyncService( 949 if (ProfileSyncServiceFactory::GetInstance()->HasProfileSyncService(
951 profile)) { 950 profile)) {
952 ProfileSyncServiceFactory::GetInstance()->GetForProfile( 951 ProfileSyncServiceFactory::GetInstance()->GetForProfile(
953 profile)->DisableForUser(); 952 profile)->DisableForUser();
954 } 953 }
955 } 954 }
956 955
956 // Delete possible shortcuts for this profile
957 if (profile_shortcut_manager_.get())
958 profile_shortcut_manager_->DeleteProfileDesktopShortcut(
959 profile_dir, cache.GetNameOfProfileAtIndex(
960 cache.GetIndexOfProfileWithPath(profile_dir)));
961
957 QueueProfileDirectoryForDeletion(profile_dir); 962 QueueProfileDirectoryForDeletion(profile_dir);
958 cache.DeleteProfileFromCache(profile_dir); 963 cache.DeleteProfileFromCache(profile_dir);
959 964
960 // Delete possible shortcuts for this profile
961 if (profile_shortcut_manager_.get())
962 profile_shortcut_manager_->DeleteChromeDesktopShortcut(profile_dir);
963
964 ProfileMetrics::LogNumberOfProfiles(this, 965 ProfileMetrics::LogNumberOfProfiles(this,
965 ProfileMetrics::DELETE_PROFILE_EVENT); 966 ProfileMetrics::DELETE_PROFILE_EVENT);
966 } 967 }
967 968
968 // static 969 // static
969 bool ProfileManager::IsMultipleProfilesEnabled() { 970 bool ProfileManager::IsMultipleProfilesEnabled() {
970 #if defined(OS_CHROMEOS) 971 #if defined(OS_CHROMEOS)
971 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kMultiProfiles)) 972 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kMultiProfiles))
972 return false; 973 return false;
973 #endif 974 #endif
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1014 } 1015 }
1015 1016
1016 ProfileManager::ProfileInfo::ProfileInfo(Profile* profile, bool created) 1017 ProfileManager::ProfileInfo::ProfileInfo(Profile* profile, bool created)
1017 : profile(profile), 1018 : profile(profile),
1018 created(created) { 1019 created(created) {
1019 } 1020 }
1020 1021
1021 ProfileManager::ProfileInfo::~ProfileInfo() { 1022 ProfileManager::ProfileInfo::~ProfileInfo() {
1022 ProfileDestroyer::DestroyProfileWhenAppropriate(profile.release()); 1023 ProfileDestroyer::DestroyProfileWhenAppropriate(profile.release());
1023 } 1024 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698