Index: chrome/browser/performance_monitor/performance_monitor.h |
diff --git a/chrome/browser/performance_monitor/performance_monitor.h b/chrome/browser/performance_monitor/performance_monitor.h |
index 24c7c1e4b661de5b555f0b183c9db6bafc8178f2..25312c03510fae743d5f134e40b56ac09c2d4cb0 100644 |
--- a/chrome/browser/performance_monitor/performance_monitor.h |
+++ b/chrome/browser/performance_monitor/performance_monitor.h |
@@ -9,22 +9,20 @@ |
#include <memory> |
#include <vector> |
+#include "base/lazy_instance.h" |
#include "base/macros.h" |
#include "base/process/process_handle.h" |
#include "base/timer/timer.h" |
#include "chrome/browser/performance_monitor/process_metrics_history.h" |
-namespace base { |
-template <typename Type> |
-struct DefaultSingletonTraits; |
-} // namespace base |
- |
namespace content { |
struct ChildProcessData; |
} |
namespace performance_monitor { |
+class ProcessMetricsHistory; |
+ |
// PerformanceMonitor is a tool which periodically monitors performance metrics |
// for histogram logging and possibly taking action upon noticing serious |
// performance degradation. |
@@ -38,12 +36,13 @@ class PerformanceMonitor { |
void StartGatherCycle(); |
private: |
- typedef std::map<base::ProcessHandle, ProcessMetricsHistory> MetricsMap; |
+ friend struct base::DefaultLazyInstanceTraits<PerformanceMonitor>; |
- friend struct base::DefaultSingletonTraits<PerformanceMonitor>; |
+ using MetricsMap = |
+ std::map<base::ProcessHandle, std::unique_ptr<ProcessMetricsHistory>>; |
PerformanceMonitor(); |
- virtual ~PerformanceMonitor(); |
+ ~PerformanceMonitor(); |
// Perform any collections that are done on a timed basis. |
void DoTimedCollections(); |