Index: chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h |
diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h |
index 04f3f0e1f3008fa24599288113abd9565c1a82c0..54c7cabb91afb67d15ac1ae1dd7a7eb544f7c2d3 100644 |
--- a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h |
+++ b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h |
@@ -9,6 +9,7 @@ |
#include "base/compiler_specific.h" |
#include "base/memory/scoped_ptr.h" |
#include "chrome/browser/chrome_browser_main_extra_parts.h" |
+#include "ui/gfx/display_observer.h" |
class ChromeBrowserMainParts; |
@@ -16,7 +17,8 @@ namespace chrome { |
void AddMetricsExtraParts(ChromeBrowserMainParts* main_parts); |
} |
-class ChromeBrowserMainExtraPartsMetrics : public ChromeBrowserMainExtraParts { |
+class ChromeBrowserMainExtraPartsMetrics : public ChromeBrowserMainExtraParts, |
+ public gfx::DisplayObserver { |
public: |
ChromeBrowserMainExtraPartsMetrics(); |
virtual ~ChromeBrowserMainExtraPartsMetrics(); |
@@ -27,6 +29,18 @@ class ChromeBrowserMainExtraPartsMetrics : public ChromeBrowserMainExtraParts { |
virtual void PostBrowserStart() override; |
private: |
+ // DisplayObserver overrides. |
+ virtual void OnDisplayAdded(const gfx::Display& new_display) override; |
+ virtual void OnDisplayRemoved(const gfx::Display& old_display) override; |
+ virtual void OnDisplayMetricsChanged(const gfx::Display& display, |
+ uint32_t changed_metrics) override; |
+ |
+ // If the number of displays has changed, emit a UMA metric. |
+ void EmitDisplaysChangedMetric(); |
+ |
+ // A cached value for the number of displays. |
+ int display_count_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainExtraPartsMetrics); |
}; |