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

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

Issue 2778006: Add histograms to track the size of the profile data.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 10 years, 6 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
« no previous file with comments | « base/file_util_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/profile.h" 5 #include "chrome/browser/profile.h"
6 6
7 #include "app/resource_bundle.h" 7 #include "app/resource_bundle.h"
8 #include "app/theme_provider.h" 8 #include "app/theme_provider.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/env_var.h" 10 #include "base/env_var.h"
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 bool IncludeDefaultApps() { 172 bool IncludeDefaultApps() {
173 #if defined(OS_WIN) 173 #if defined(OS_WIN)
174 std::string user_domain; 174 std::string user_domain;
175 return base::EnvVarGetter::Create()->GetEnv("USERDOMAIN", &user_domain) && 175 return base::EnvVarGetter::Create()->GetEnv("USERDOMAIN", &user_domain) &&
176 user_domain == "GOOGLE"; 176 user_domain == "GOOGLE";
177 #elif defined(OS_CHROMEOS) && defined(GOOGLE_CHROME_BUILD) 177 #elif defined(OS_CHROMEOS) && defined(GOOGLE_CHROME_BUILD)
178 return true; 178 return true;
179 #endif 179 #endif
180 return false; 180 return false;
181 } 181 }
182
183 // Simple task to log the size of the current profile.
184 class ProfileSizeTask : public Task {
185 public:
186 explicit ProfileSizeTask(const FilePath& path) : path_(path) {}
187 virtual ~ProfileSizeTask() {}
188
189 virtual void Run();
190 private:
191 FilePath path_;
192 };
193
194 void ProfileSizeTask::Run() {
195 int64 size = file_util::ComputeFilesSize(path_, FILE_PATH_LITERAL("*"));
196 int size_MB = static_cast<int>(size / (1024 * 1024));
197 UMA_HISTOGRAM_COUNTS_10000("Profile.TotalSize", size_MB);
198
199 size = file_util::ComputeFilesSize(path_, FILE_PATH_LITERAL("History"));
200 size_MB = static_cast<int>(size / (1024 * 1024));
201 UMA_HISTOGRAM_COUNTS_10000("Profile.HistorySize", size_MB);
202
203 size = file_util::ComputeFilesSize(path_, FILE_PATH_LITERAL("History*"));
204 size_MB = static_cast<int>(size / (1024 * 1024));
205 UMA_HISTOGRAM_COUNTS_10000("Profile.TotalHistorySize", size_MB);
206
207 size = file_util::ComputeFilesSize(path_, FILE_PATH_LITERAL("Cookies"));
208 size_MB = static_cast<int>(size / (1024 * 1024));
209 UMA_HISTOGRAM_COUNTS_10000("Profile.CookiesSize", size_MB);
210
211 size = file_util::ComputeFilesSize(path_, FILE_PATH_LITERAL("Bookmarks"));
212 size_MB = static_cast<int>(size / (1024 * 1024));
213 UMA_HISTOGRAM_COUNTS_10000("Profile.BookmarksSize", size_MB);
214
215 size = file_util::ComputeFilesSize(path_, FILE_PATH_LITERAL("Thumbnails"));
216 size_MB = static_cast<int>(size / (1024 * 1024));
217 UMA_HISTOGRAM_COUNTS_10000("Profile.ThumbnailsSize", size_MB);
218
219 size = file_util::ComputeFilesSize(path_, FILE_PATH_LITERAL("Visited Links"));
220 size_MB = static_cast<int>(size / (1024 * 1024));
221 UMA_HISTOGRAM_COUNTS_10000("Profile.VisitedLinksSize", size_MB);
222
223 size = file_util::ComputeFilesSize(path_, FILE_PATH_LITERAL("Web Data"));
224 size_MB = static_cast<int>(size / (1024 * 1024));
225 UMA_HISTOGRAM_COUNTS_10000("Profile.WebDataSize", size_MB);
226
227 size = file_util::ComputeFilesSize(path_, FILE_PATH_LITERAL("Extension*"));
228 size_MB = static_cast<int>(size / (1024 * 1024));
229 UMA_HISTOGRAM_COUNTS_10000("Profile.ExtensionSize", size_MB);
230 }
231
182 } // namespace 232 } // namespace
183 233
184 // A pointer to the request context for the default profile. See comments on 234 // A pointer to the request context for the default profile. See comments on
185 // Profile::GetDefaultRequestContext. 235 // Profile::GetDefaultRequestContext.
186 URLRequestContextGetter* Profile::default_request_context_; 236 URLRequestContextGetter* Profile::default_request_context_;
187 237
188 static void CleanupRequestContext(ChromeURLRequestContextGetter* context) { 238 static void CleanupRequestContext(ChromeURLRequestContextGetter* context) {
189 if (context) 239 if (context)
190 context->CleanupOnUIThread(); 240 context->CleanupOnUIThread();
191 } 241 }
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 request_context_ = ChromeURLRequestContextGetter::CreateOffTheRecord(this); 305 request_context_ = ChromeURLRequestContextGetter::CreateOffTheRecord(this);
256 306
257 // Register for browser close notifications so we can detect when the last 307 // Register for browser close notifications so we can detect when the last
258 // off-the-record window is closed, in which case we can clean our states 308 // off-the-record window is closed, in which case we can clean our states
259 // (cookies, downloads...). 309 // (cookies, downloads...).
260 registrar_.Add(this, NotificationType::BROWSER_CLOSED, 310 registrar_.Add(this, NotificationType::BROWSER_CLOSED,
261 NotificationService::AllSources()); 311 NotificationService::AllSources());
262 } 312 }
263 313
264 virtual ~OffTheRecordProfileImpl() { 314 virtual ~OffTheRecordProfileImpl() {
265 NotificationService::current()->Notify( 315 NotificationService::current()->Notify(NotificationType::PROFILE_DESTROYED,
266 NotificationType::PROFILE_DESTROYED, 316 Source<Profile>(this),
267 Source<Profile>(this), 317 NotificationService::NoDetails());
268 NotificationService::NoDetails()); 318 CleanupRequestContext(request_context_);
269 CleanupRequestContext(request_context_);
270 } 319 }
271 320
272 virtual ProfileId GetRuntimeId() { 321 virtual ProfileId GetRuntimeId() {
273 return reinterpret_cast<ProfileId>(this); 322 return reinterpret_cast<ProfileId>(this);
274 } 323 }
275 324
276 virtual FilePath GetPath() { return profile_->GetPath(); } 325 virtual FilePath GetPath() { return profile_->GetPath(); }
277 326
278 virtual bool IsOffTheRecord() { 327 virtual bool IsOffTheRecord() {
279 return true; 328 return true;
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 Source<Profile>(this)); 791 Source<Profile>(this));
743 792
744 ssl_config_service_manager_.reset( 793 ssl_config_service_manager_.reset(
745 SSLConfigServiceManager::CreateDefaultManager(this)); 794 SSLConfigServiceManager::CreateDefaultManager(this));
746 795
747 #if defined(OS_CHROMEOS) 796 #if defined(OS_CHROMEOS)
748 chromeos_preferences_.Init(prefs); 797 chromeos_preferences_.Init(prefs);
749 #endif 798 #endif
750 799
751 pinned_tab_service_.reset(new PinnedTabService(this)); 800 pinned_tab_service_.reset(new PinnedTabService(this));
801
802 // Log the profile size after a reasonable startup delay.
803 ChromeThread::PostDelayedTask(ChromeThread::FILE, FROM_HERE,
804 new ProfileSizeTask(path_), 112000);
752 } 805 }
753 806
754 void ProfileImpl::InitExtensions() { 807 void ProfileImpl::InitExtensions() {
755 if (user_script_master_ || extensions_service_) 808 if (user_script_master_ || extensions_service_)
756 return; // Already initialized. 809 return; // Already initialized.
757 810
758 const CommandLine* command_line = CommandLine::ForCurrentProcess(); 811 const CommandLine* command_line = CommandLine::ForCurrentProcess();
759 if (command_line->HasSwitch( 812 if (command_line->HasSwitch(
760 switches::kEnableExtensionTimelineApi)) { 813 switches::kEnableExtensionTimelineApi)) {
761 extension_devtools_manager_ = new ExtensionDevToolsManager(this); 814 extension_devtools_manager_ = new ExtensionDevToolsManager(this);
(...skipping 792 matching lines...) Expand 10 before | Expand all | Expand 10 after
1554 CommandLine::ForCurrentProcess())); 1607 CommandLine::ForCurrentProcess()));
1555 sync_service_.reset( 1608 sync_service_.reset(
1556 profile_sync_factory_->CreateProfileSyncService()); 1609 profile_sync_factory_->CreateProfileSyncService());
1557 sync_service_->Initialize(); 1610 sync_service_->Initialize();
1558 } 1611 }
1559 1612
1560 void ProfileImpl::InitCloudPrintProxyService() { 1613 void ProfileImpl::InitCloudPrintProxyService() {
1561 cloud_print_proxy_service_.reset(new CloudPrintProxyService(this)); 1614 cloud_print_proxy_service_.reset(new CloudPrintProxyService(this));
1562 cloud_print_proxy_service_->Initialize(); 1615 cloud_print_proxy_service_->Initialize();
1563 } 1616 }
OLDNEW
« no previous file with comments | « base/file_util_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698