Index: chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_mac.mm |
diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_mac.mm b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_mac.mm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0a743864b39a456228681821f3c1a13157be47f3 |
--- /dev/null |
+++ b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_mac.mm |
@@ -0,0 +1,42 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_mac.h" |
+ |
+#include "base/metrics/histogram.h" |
+#include "ui/gfx/screen.h" |
+ |
+ChromeBrowserMainExtraPartsMetricsMac::ChromeBrowserMainExtraPartsMetricsMac() { |
+ display_count_ = gfx::Screen::GetNativeScreen()->GetNumDisplays(); |
+ UMA_HISTOGRAM_COUNTS_100("OSX.DisplayCount.StartUp", display_count_); |
+ gfx::Screen::GetNativeScreen()->AddObserver(this); |
+} |
+ |
+ChromeBrowserMainExtraPartsMetricsMac:: |
+ ~ChromeBrowserMainExtraPartsMetricsMac() { |
+ gfx::Screen::GetNativeScreen()->RemoveObserver(this); |
+} |
+ |
+void ChromeBrowserMainExtraPartsMetricsMac::OnDisplayAdded( |
+ const gfx::Display& new_display) { |
+ EmitDisplaysChangedMetric(); |
+} |
+ |
+void ChromeBrowserMainExtraPartsMetricsMac::OnDisplayRemoved( |
+ const gfx::Display& old_display) { |
+ EmitDisplaysChangedMetric(); |
+} |
+ |
+void ChromeBrowserMainExtraPartsMetricsMac::OnDisplayMetricsChanged( |
+ const gfx::Display& display, |
+ uint32_t changed_metrics) { |
+} |
+ |
+void ChromeBrowserMainExtraPartsMetricsMac::EmitDisplaysChangedMetric() { |
+ int display_count = gfx::Screen::GetNativeScreen()->GetNumDisplays(); |
+ if (display_count != display_count_) { |
+ display_count_ = display_count; |
+ UMA_HISTOGRAM_COUNTS_100("OSX.DisplayCount.Changed", display_count_); |
+ } |
+} |