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

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

Issue 1113333003: Don't create a new profile when cleaning up stale ephemeral profiles. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: review Created 5 years, 7 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 "chrome/browser/chrome_browser_main.h" 5 #include "chrome/browser/chrome_browser_main.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 1059 matching lines...) Expand 10 before | Expand all | Expand 10 after
1070 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreProfileInit"); 1070 TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreProfileInit");
1071 1071
1072 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) 1072 for (size_t i = 0; i < chrome_extra_parts_.size(); ++i)
1073 chrome_extra_parts_[i]->PreProfileInit(); 1073 chrome_extra_parts_[i]->PreProfileInit();
1074 1074
1075 #if !defined(OS_ANDROID) 1075 #if !defined(OS_ANDROID)
1076 // Initialize the feedback uploader so it can setup notifications for profile 1076 // Initialize the feedback uploader so it can setup notifications for profile
1077 // creation. 1077 // creation.
1078 feedback::FeedbackProfileObserver::Initialize(); 1078 feedback::FeedbackProfileObserver::Initialize();
1079 1079
1080 ProfileManager* profile_manager = g_browser_process->profile_manager(); 1080 // Ephemeral profiles may have been left behind if the browser crashed.
1081 1081 g_browser_process->profile_manager()->CleanUpEphemeralProfiles();
1082 // First check if any ephemeral profiles are left behind because of browser
1083 // crash and schedule them for deletion and then proceed with getting the set
1084 // of profiles to open.
1085 ProfileInfoCache& profile_cache = profile_manager->GetProfileInfoCache();
1086 size_t profiles_count = profile_cache.GetNumberOfProfiles();
1087 std::vector<base::FilePath> profiles_to_delete;
1088 for (size_t i = 0; i < profiles_count; ++i) {
1089 if (profile_cache.ProfileIsEphemeralAtIndex(i))
1090 profiles_to_delete.push_back(profile_cache.GetPathOfProfileAtIndex(i));
1091 }
1092
1093 if (profiles_to_delete.size()) {
1094 for (size_t i = 0; i < profiles_to_delete.size(); ++i) {
1095 profile_manager->ScheduleProfileForDeletion(
1096 profiles_to_delete[i], ProfileManager::CreateCallback());
1097 }
1098 // Clean up stale profiles immediately after browser start.
1099 BrowserThread::PostTask(
1100 BrowserThread::FILE, FROM_HERE,
1101 base::Bind(&ProfileManager::CleanUpStaleProfiles, profiles_to_delete));
1102 }
1103 #endif // !defined(OS_ANDROID) 1082 #endif // !defined(OS_ANDROID)
1104 1083
1105 #if defined(ENABLE_EXTENSIONS) 1084 #if defined(ENABLE_EXTENSIONS)
1106 javascript_dialog_extensions_client::InstallClient(); 1085 javascript_dialog_extensions_client::InstallClient();
1107 #endif // defined(ENABLE_EXTENSIONS) 1086 #endif // defined(ENABLE_EXTENSIONS)
1108 1087
1109 #if !defined(OS_IOS) 1088 #if !defined(OS_IOS)
1110 InstallChromeJavaScriptNativeDialogFactory(); 1089 InstallChromeJavaScriptNativeDialogFactory();
1111 #endif // !defined(OS_IOS) 1090 #endif // !defined(OS_IOS)
1112 } 1091 }
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after
1793 chromeos::CrosSettings::Shutdown(); 1772 chromeos::CrosSettings::Shutdown();
1794 #endif // defined(OS_CHROMEOS) 1773 #endif // defined(OS_CHROMEOS)
1795 #endif // defined(OS_ANDROID) 1774 #endif // defined(OS_ANDROID)
1796 } 1775 }
1797 1776
1798 // Public members: 1777 // Public members:
1799 1778
1800 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) { 1779 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) {
1801 chrome_extra_parts_.push_back(parts); 1780 chrome_extra_parts_.push_back(parts);
1802 } 1781 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/profiles/profile_manager.h » ('j') | components/search_engines/template_url_service.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698