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 4ac4c06f6b9f930c790d2a5859d679023139deed..91b904d77375f5a13d43d063a1b58a60ae874ed0 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(); |
~ChromeBrowserMainExtraPartsMetrics() override; |
@@ -32,6 +34,22 @@ class ChromeBrowserMainExtraPartsMetrics : public ChromeBrowserMainExtraParts { |
void RecordMacMetrics(); |
#endif // defined(OS_MACOSX) && !defined(OS_IOS) |
+ // 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_; |
+ |
+ // True iff |this| instance is registered as an observer of the native |
+ // screen. |
+ bool is_screen_observer_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainExtraPartsMetrics); |
}; |