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

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

Issue 641453003: Add metrics for the number of attached displays. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments from isherman. Created 6 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) 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"
11 #include "base/cpu.h" 11 #include "base/cpu.h"
12 #include "base/metrics/histogram.h" 12 #include "base/metrics/histogram.h"
13 #include "base/metrics/sparse_histogram.h" 13 #include "base/metrics/sparse_histogram.h"
14 #include "base/sys_info.h" 14 #include "base/sys_info.h"
15 #include "base/threading/sequenced_worker_pool.h" 15 #include "base/threading/sequenced_worker_pool.h"
16 #include "base/time/time.h" 16 #include "base/time/time.h"
17 #include "chrome/browser/about_flags.h" 17 #include "chrome/browser/about_flags.h"
18 #include "chrome/browser/browser_process.h" 18 #include "chrome/browser/browser_process.h"
19 #include "chrome/browser/chrome_browser_main.h" 19 #include "chrome/browser/chrome_browser_main.h"
20 #include "chrome/browser/mac/bluetooth_utility.h" 20 #include "chrome/browser/mac/bluetooth_utility.h"
21 #include "chrome/browser/pref_service_flags_storage.h" 21 #include "chrome/browser/pref_service_flags_storage.h"
22 #include "chrome/browser/shell_integration.h" 22 #include "chrome/browser/shell_integration.h"
23 #include "content/public/browser/browser_thread.h" 23 #include "content/public/browser/browser_thread.h"
24 #include "ui/base/touch/touch_device.h" 24 #include "ui/base/touch/touch_device.h"
25 #include "ui/base/ui_base_switches.h" 25 #include "ui/base/ui_base_switches.h"
26 #include "ui/events/event_switches.h" 26 #include "ui/events/event_switches.h"
27 #include "ui/gfx/screen.h"
27 28
28 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) 29 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
29 #include <gnu/libc-version.h> 30 #include <gnu/libc-version.h>
30 31
31 #include "base/version.h" 32 #include "base/version.h"
32 #if defined(USE_X11) 33 #if defined(USE_X11)
33 #include "ui/base/x/x11_util.h" 34 #include "ui/base/x/x11_util.h"
34 #endif 35 #endif
35 #endif // defined(OS_LINUX) && !defined(OS_CHROMEOS) 36 #endif // defined(OS_LINUX) && !defined(OS_CHROMEOS)
36 37
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 return; 213 return;
213 } 214 }
214 215
215 UMA_HISTOGRAM_ENUMERATION("Touchscreen.TouchEventsEnabled", state, 216 UMA_HISTOGRAM_ENUMERATION("Touchscreen.TouchEventsEnabled", state,
216 UMA_TOUCH_EVENTS_STATE_COUNT); 217 UMA_TOUCH_EVENTS_STATE_COUNT);
217 } 218 }
218 219
219 } // namespace 220 } // namespace
220 221
221 ChromeBrowserMainExtraPartsMetrics::ChromeBrowserMainExtraPartsMetrics() { 222 ChromeBrowserMainExtraPartsMetrics::ChromeBrowserMainExtraPartsMetrics() {
223 display_count_ = gfx::Screen::GetNativeScreen()->GetNumDisplays();
224 UMA_HISTOGRAM_COUNTS_100("DisplayCount.StartUp", display_count_);
Ilya Sherman 2014/10/14 06:34:22 nit: Please name this "Display.Count.StartUp" (or,
erikchen 2014/10/14 23:09:38 Went with "Hardware.Display.Count.OnStartup".
225 gfx::Screen::GetNativeScreen()->AddObserver(this);
222 } 226 }
223 227
224 ChromeBrowserMainExtraPartsMetrics::~ChromeBrowserMainExtraPartsMetrics() { 228 ChromeBrowserMainExtraPartsMetrics::~ChromeBrowserMainExtraPartsMetrics() {
229 gfx::Screen::GetNativeScreen()->RemoveObserver(this);
225 } 230 }
226 231
227 void ChromeBrowserMainExtraPartsMetrics::PreProfileInit() { 232 void ChromeBrowserMainExtraPartsMetrics::PreProfileInit() {
228 RecordMicroArchitectureStats(); 233 RecordMicroArchitectureStats();
229 } 234 }
230 235
231 void ChromeBrowserMainExtraPartsMetrics::PreBrowserStart() { 236 void ChromeBrowserMainExtraPartsMetrics::PreBrowserStart() {
232 about_flags::PrefServiceFlagsStorage flags_storage_( 237 about_flags::PrefServiceFlagsStorage flags_storage_(
233 g_browser_process->local_state()); 238 g_browser_process->local_state());
234 about_flags::RecordUMAStatistics(&flags_storage_); 239 about_flags::RecordUMAStatistics(&flags_storage_);
235 } 240 }
236 241
237 void ChromeBrowserMainExtraPartsMetrics::PostBrowserStart() { 242 void ChromeBrowserMainExtraPartsMetrics::PostBrowserStart() {
238 RecordLinuxGlibcVersion(); 243 RecordLinuxGlibcVersion();
239 #if defined(USE_X11) && !defined(OS_CHROMEOS) 244 #if defined(USE_X11) && !defined(OS_CHROMEOS)
240 UMA_HISTOGRAM_ENUMERATION("Linux.WindowManager", 245 UMA_HISTOGRAM_ENUMERATION("Linux.WindowManager",
241 GetLinuxWindowManager(), 246 GetLinuxWindowManager(),
242 UMA_LINUX_WINDOW_MANAGER_COUNT); 247 UMA_LINUX_WINDOW_MANAGER_COUNT);
243 #endif 248 #endif
244 RecordTouchEventState(); 249 RecordTouchEventState();
245 250
246 const int kStartupMetricsGatheringDelaySeconds = 45; 251 const int kStartupMetricsGatheringDelaySeconds = 45;
247 content::BrowserThread::GetBlockingPool()->PostDelayedTask( 252 content::BrowserThread::GetBlockingPool()->PostDelayedTask(
248 FROM_HERE, 253 FROM_HERE,
249 base::Bind(&RecordStartupMetricsOnBlockingPool), 254 base::Bind(&RecordStartupMetricsOnBlockingPool),
250 base::TimeDelta::FromSeconds(kStartupMetricsGatheringDelaySeconds)); 255 base::TimeDelta::FromSeconds(kStartupMetricsGatheringDelaySeconds));
251 } 256 }
252 257
258 void ChromeBrowserMainExtraPartsMetrics::OnDisplayAdded(
259 const gfx::Display& new_display) {
260 EmitDisplaysChangedMetric();
261 }
262
263 void ChromeBrowserMainExtraPartsMetrics::OnDisplayRemoved(
264 const gfx::Display& old_display) {
265 EmitDisplaysChangedMetric();
266 }
267
268 void ChromeBrowserMainExtraPartsMetrics::OnDisplayMetricsChanged(
269 const gfx::Display& display,
270 uint32_t changed_metrics) {
271 }
272
273 void ChromeBrowserMainExtraPartsMetrics::EmitDisplaysChangedMetric() {
274 int display_count = gfx::Screen::GetNativeScreen()->GetNumDisplays();
275 if (display_count != display_count_) {
276 display_count_ = display_count;
277 UMA_HISTOGRAM_COUNTS_100("DisplayCount.Changed", display_count_);
Ilya Sherman 2014/10/14 06:34:22 nit: And correspondingly, please name this "Displa
erikchen 2014/10/14 23:09:38 Went with "Hardware.Display.Count.OnChange".
278 }
279 }
280
253 namespace chrome { 281 namespace chrome {
254 282
255 void AddMetricsExtraParts(ChromeBrowserMainParts* main_parts) { 283 void AddMetricsExtraParts(ChromeBrowserMainParts* main_parts) {
256 main_parts->AddParts(new ChromeBrowserMainExtraPartsMetrics()); 284 main_parts->AddParts(new ChromeBrowserMainExtraPartsMetrics());
257 } 285 }
258 286
259 } // namespace chrome 287 } // namespace chrome
OLDNEW
« no previous file with comments | « chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698