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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
index 5cfa065fc83c9c139eef466e27dd808ce568cf22..5ca78d2c878dadfd35ef372b82e66b50e6ab46ac 100644
--- a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
+++ b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
@@ -24,6 +24,7 @@
#include "ui/base/touch/touch_device.h"
#include "ui/base/ui_base_switches.h"
#include "ui/events/event_switches.h"
+#include "ui/gfx/screen.h"
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
#include <gnu/libc-version.h>
@@ -221,10 +222,13 @@ void RecordTouchEventState() {
} // namespace
-ChromeBrowserMainExtraPartsMetrics::ChromeBrowserMainExtraPartsMetrics() {
+ChromeBrowserMainExtraPartsMetrics::ChromeBrowserMainExtraPartsMetrics()
+ : display_count_(0), is_screen_observer_(false) {
}
ChromeBrowserMainExtraPartsMetrics::~ChromeBrowserMainExtraPartsMetrics() {
+ if (is_screen_observer_)
+ gfx::Screen::GetNativeScreen()->RemoveObserver(this);
}
void ChromeBrowserMainExtraPartsMetrics::PreProfileInit() {
@@ -255,6 +259,34 @@ void ChromeBrowserMainExtraPartsMetrics::PostBrowserStart() {
FROM_HERE,
base::Bind(&RecordStartupMetricsOnBlockingPool),
base::TimeDelta::FromSeconds(kStartupMetricsGatheringDelaySeconds));
+
+ display_count_ = gfx::Screen::GetNativeScreen()->GetNumDisplays();
+ UMA_HISTOGRAM_COUNTS_100("Hardware.Display.Count.OnStartup", display_count_);
+ gfx::Screen::GetNativeScreen()->AddObserver(this);
+ is_screen_observer_ = true;
+}
+
+void ChromeBrowserMainExtraPartsMetrics::OnDisplayAdded(
+ const gfx::Display& new_display) {
+ EmitDisplaysChangedMetric();
+}
+
+void ChromeBrowserMainExtraPartsMetrics::OnDisplayRemoved(
+ const gfx::Display& old_display) {
+ EmitDisplaysChangedMetric();
+}
+
+void ChromeBrowserMainExtraPartsMetrics::OnDisplayMetricsChanged(
+ const gfx::Display& display,
+ uint32_t changed_metrics) {
+}
+
+void ChromeBrowserMainExtraPartsMetrics::EmitDisplaysChangedMetric() {
+ int display_count = gfx::Screen::GetNativeScreen()->GetNumDisplays();
+ if (display_count != display_count_) {
+ display_count_ = display_count;
+ UMA_HISTOGRAM_COUNTS_100("Hardware.Display.Count.OnChange", display_count_);
+ }
}
namespace chrome {
« 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