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

Side by Side Diff: chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc

Issue 760763002: Add startup metrics that measure the performance of the first web contents. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't define FirstWebContentsProfiler on Android. Rebase against top of tree. Created 6 years 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/metrics/chrome_browser_main_extra_parts_metrics.h" 5 #include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h"
6 6
7 #include <string> 7 #include <string>
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 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 const int kStartupMetricsGatheringDelaySeconds = 45; 257 const int kStartupMetricsGatheringDelaySeconds = 45;
258 content::BrowserThread::GetBlockingPool()->PostDelayedTask( 258 content::BrowserThread::GetBlockingPool()->PostDelayedTask(
259 FROM_HERE, 259 FROM_HERE,
260 base::Bind(&RecordStartupMetricsOnBlockingPool), 260 base::Bind(&RecordStartupMetricsOnBlockingPool),
261 base::TimeDelta::FromSeconds(kStartupMetricsGatheringDelaySeconds)); 261 base::TimeDelta::FromSeconds(kStartupMetricsGatheringDelaySeconds));
262 262
263 display_count_ = gfx::Screen::GetNativeScreen()->GetNumDisplays(); 263 display_count_ = gfx::Screen::GetNativeScreen()->GetNumDisplays();
264 UMA_HISTOGRAM_COUNTS_100("Hardware.Display.Count.OnStartup", display_count_); 264 UMA_HISTOGRAM_COUNTS_100("Hardware.Display.Count.OnStartup", display_count_);
265 gfx::Screen::GetNativeScreen()->AddObserver(this); 265 gfx::Screen::GetNativeScreen()->AddObserver(this);
266 is_screen_observer_ = true; 266 is_screen_observer_ = true;
267
268 #if !defined(OS_ANDROID)
269 if (FirstWebContentsProfiler::ShouldCollectMetrics()) {
270 first_web_contents_profiler_ =
271 FirstWebContentsProfiler::CreateProfilerForFirstWebContents(this)
272 .Pass();
273 }
274 #endif // !defined(OS_ANDROID)
267 } 275 }
268 276
269 void ChromeBrowserMainExtraPartsMetrics::OnDisplayAdded( 277 void ChromeBrowserMainExtraPartsMetrics::OnDisplayAdded(
270 const gfx::Display& new_display) { 278 const gfx::Display& new_display) {
271 EmitDisplaysChangedMetric(); 279 EmitDisplaysChangedMetric();
272 } 280 }
273 281
274 void ChromeBrowserMainExtraPartsMetrics::OnDisplayRemoved( 282 void ChromeBrowserMainExtraPartsMetrics::OnDisplayRemoved(
275 const gfx::Display& old_display) { 283 const gfx::Display& old_display) {
276 EmitDisplaysChangedMetric(); 284 EmitDisplaysChangedMetric();
277 } 285 }
278 286
279 void ChromeBrowserMainExtraPartsMetrics::OnDisplayMetricsChanged( 287 void ChromeBrowserMainExtraPartsMetrics::OnDisplayMetricsChanged(
280 const gfx::Display& display, 288 const gfx::Display& display,
281 uint32_t changed_metrics) { 289 uint32_t changed_metrics) {
282 } 290 }
283 291
292 void ChromeBrowserMainExtraPartsMetrics::ProfilerFinishedCollectingMetrics() {
293 first_web_contents_profiler_.reset();
294 }
295
284 void ChromeBrowserMainExtraPartsMetrics::EmitDisplaysChangedMetric() { 296 void ChromeBrowserMainExtraPartsMetrics::EmitDisplaysChangedMetric() {
285 int display_count = gfx::Screen::GetNativeScreen()->GetNumDisplays(); 297 int display_count = gfx::Screen::GetNativeScreen()->GetNumDisplays();
286 if (display_count != display_count_) { 298 if (display_count != display_count_) {
287 display_count_ = display_count; 299 display_count_ = display_count;
288 UMA_HISTOGRAM_COUNTS_100("Hardware.Display.Count.OnChange", display_count_); 300 UMA_HISTOGRAM_COUNTS_100("Hardware.Display.Count.OnChange", display_count_);
289 } 301 }
290 } 302 }
291 303
292 namespace chrome { 304 namespace chrome {
293 305
294 void AddMetricsExtraParts(ChromeBrowserMainParts* main_parts) { 306 void AddMetricsExtraParts(ChromeBrowserMainParts* main_parts) {
295 main_parts->AddParts(new ChromeBrowserMainExtraPartsMetrics()); 307 main_parts->AddParts(new ChromeBrowserMainExtraPartsMetrics());
296 } 308 }
297 309
298 } // namespace chrome 310 } // namespace chrome
OLDNEW
« no previous file with comments | « chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h ('k') | chrome/browser/metrics/first_web_contents_profiler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698