Index: chrome/browser/metrics/subprocess_metrics_provider.h |
diff --git a/chrome/browser/metrics/subprocess_metrics_provider.h b/chrome/browser/metrics/subprocess_metrics_provider.h |
deleted file mode 100644 |
index 684ce195acf186da09ba648ad7eb7b2fe02dc862..0000000000000000000000000000000000000000 |
--- a/chrome/browser/metrics/subprocess_metrics_provider.h |
+++ /dev/null |
@@ -1,97 +0,0 @@ |
-// Copyright 2016 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. |
- |
-#ifndef CHROME_BROWSER_METRICS_SUBPROCESS_METRICS_PROVIDER_H_ |
-#define CHROME_BROWSER_METRICS_SUBPROCESS_METRICS_PROVIDER_H_ |
- |
-#include <memory> |
-#include <set> |
- |
-#include "base/gtest_prod_util.h" |
-#include "base/id_map.h" |
-#include "base/scoped_observer.h" |
-#include "base/threading/thread_checker.h" |
-#include "components/metrics/metrics_provider.h" |
-#include "content/public/browser/notification_observer.h" |
-#include "content/public/browser/notification_registrar.h" |
-#include "content/public/browser/render_process_host_observer.h" |
- |
-namespace base { |
-class PersistentHistogramAllocator; |
-class SharedPersistentMemoryAllocator; |
-} |
- |
-// SubprocessMetricsProvider gathers and logs histograms stored in shared |
-// memory segments between processes. |
-class SubprocessMetricsProvider : public metrics::MetricsProvider, |
- public content::NotificationObserver, |
- public content::RenderProcessHostObserver { |
- public: |
- SubprocessMetricsProvider(); |
- ~SubprocessMetricsProvider() override; |
- |
- private: |
- friend class SubprocessMetricsProviderTest; |
- |
- // Indicates subprocess to be monitored with unique id for later reference. |
- // Metrics reporting will read histograms from it and upload them to UMA. |
- void RegisterSubprocessAllocator( |
- int id, |
- std::unique_ptr<base::PersistentHistogramAllocator> allocator); |
- |
- // Indicates that a subprocess has exited and is thus finished with the |
- // allocator it was using. |
- void DeregisterSubprocessAllocator(int id); |
- |
- // Report all histograms of a given allocator to the snapshot-manager. |
- void RecordHistogramSnapshotsFromAllocator( |
- base::HistogramSnapshotManager* snapshot_manager, |
- int id, |
- base::PersistentHistogramAllocator* allocator); |
- |
- // metrics::MetricsProvider: |
- void OnRecordingEnabled() override; |
- void OnRecordingDisabled() override; |
- void RecordHistogramSnapshots( |
- base::HistogramSnapshotManager* snapshot_manager) override; |
- |
- // content::NotificationObserver: |
- void Observe(int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) override; |
- |
- // content::RenderProcessHostObserver: |
- void RenderProcessReady(content::RenderProcessHost* host) override; |
- void RenderProcessExited(content::RenderProcessHost* host, |
- base::TerminationStatus status, |
- int exit_code) override; |
- void RenderProcessHostDestroyed(content::RenderProcessHost* host) override; |
- |
- base::ThreadChecker thread_checker_; |
- |
- // Object for registing notification requests. |
- content::NotificationRegistrar registrar_; |
- |
- // All of the shared-persistent-allocators for known sub-processes. |
- using AllocatorByIdMap = |
- IDMap<base::PersistentHistogramAllocator, IDMapOwnPointer, int>; |
- AllocatorByIdMap allocators_by_id_; |
- |
- // Allocators that are no longer attached to a subprocess, to be released |
- // once the last data contained therein has been reported. |
- std::vector<std::unique_ptr<base::PersistentHistogramAllocator>> |
- allocators_to_release_; |
- |
- // Track all observed render processes to un-observe them on exit. |
- ScopedObserver<content::RenderProcessHost, SubprocessMetricsProvider> |
- scoped_observer_; |
- |
- // Flag indicating if metrics recording is enabled. Allocators will not |
- // live past the death of the subprocess if it is not. |
- bool metrics_recording_enabled_ = false; |
- |
- DISALLOW_COPY_AND_ASSIGN(SubprocessMetricsProvider); |
-}; |
- |
-#endif // CHROME_BROWSER_METRICS_SUBPROCESS_METRICS_PROVIDER_H_ |