Index: components/tracing/common/process_metrics_memory_dump_provider.h |
diff --git a/components/tracing/common/process_metrics_memory_dump_provider.h b/components/tracing/common/process_metrics_memory_dump_provider.h |
index 6534f18bf43d8f0afb04e4e8ee02f9bffaa06223..efbb92dc7bdf4a40c0ff8c6e5f6d2ec24cbf1c10 100644 |
--- a/components/tracing/common/process_metrics_memory_dump_provider.h |
+++ b/components/tracing/common/process_metrics_memory_dump_provider.h |
@@ -37,12 +37,20 @@ class TRACING_EXPORT ProcessMetricsMemoryDumpProvider |
void PollFastMemoryTotal(uint64_t* memory_total) override; |
void SuspendFastMemoryPolling() override; |
+ protected: |
+ ProcessMetricsMemoryDumpProvider(base::ProcessId process); |
+ |
private: |
+ using FactoryFunction = |
+ std::unique_ptr<ProcessMetricsMemoryDumpProvider> (*)(base::ProcessId); |
+ |
FRIEND_TEST_ALL_PREFIXES(ProcessMetricsMemoryDumpProviderTest, |
ParseProcSmaps); |
FRIEND_TEST_ALL_PREFIXES(ProcessMetricsMemoryDumpProviderTest, DumpRSS); |
FRIEND_TEST_ALL_PREFIXES(ProcessMetricsMemoryDumpProviderTest, |
TestPollFastMemoryTotal); |
+ FRIEND_TEST_ALL_PREFIXES(ProcessMetricsMemoryDumpProviderTest, |
+ DoubleRegister); |
#if defined(OS_MACOSX) |
FRIEND_TEST_ALL_PREFIXES(ProcessMetricsMemoryDumpProviderTest, |
TestMachOReading); |
@@ -53,14 +61,15 @@ class TRACING_EXPORT ProcessMetricsMemoryDumpProvider |
TestWinModuleReading); |
#endif |
- ProcessMetricsMemoryDumpProvider(base::ProcessId process); |
- |
bool DumpProcessTotals(const base::trace_event::MemoryDumpArgs& args, |
base::trace_event::ProcessMemoryDump* pmd); |
bool DumpProcessMemoryMaps(const base::trace_event::MemoryDumpArgs& args, |
base::trace_event::ProcessMemoryDump* pmd); |
static uint64_t rss_bytes_for_testing; |
+ static FactoryFunction factory_for_testing; |
+ static std::unique_ptr<ProcessMetricsMemoryDumpProvider> |
+ CreateMetricsProvider(base::ProcessId process); |
#if defined(OS_LINUX) || defined(OS_ANDROID) |
static FILE* proc_smaps_for_testing; |