Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(775)

Unified Diff: components/tracing/common/process_metrics_memory_dump_provider.h

Issue 2753723003: Fix crash in InvokeOnMemoryDump when tracing (Closed)
Patch Set: be more explicit Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698