| Index: base/trace_event/memory_tracing_observer.cc
|
| diff --git a/base/trace_event/memory_tracing_observer.cc b/base/trace_event/memory_tracing_observer.cc
|
| index a5b60e48fd7e0dc0565165346024ac102644556c..8847b8045cf35c7261376bb54afb7cc067b9a342 100644
|
| --- a/base/trace_event/memory_tracing_observer.cc
|
| +++ b/base/trace_event/memory_tracing_observer.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "base/trace_event/memory_tracing_observer.h"
|
|
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/trace_event/memory_dump_manager.h"
|
| #include "base/trace_event/trace_event_argument.h"
|
|
|
| @@ -56,11 +57,15 @@ void MemoryTracingObserver::OnTraceLogEnabled() {
|
| const TraceConfig::MemoryDumpConfig& memory_dump_config =
|
| trace_config.memory_dump_config();
|
|
|
| + memory_dump_config_ =
|
| + MakeUnique<TraceConfig::MemoryDumpConfig>(memory_dump_config);
|
| +
|
| memory_dump_manager_->Enable(memory_dump_config);
|
| }
|
|
|
| void MemoryTracingObserver::OnTraceLogDisabled() {
|
| memory_dump_manager_->Disable();
|
| + memory_dump_config_.reset();
|
| }
|
|
|
| bool MemoryTracingObserver::AddDumpToTraceIfEnabled(
|
| @@ -71,6 +76,10 @@ bool MemoryTracingObserver::AddDumpToTraceIfEnabled(
|
| // dump then ignoring the result.
|
| if (!IsMemoryInfraTracingEnabled())
|
| return false;
|
| + // If the dump mode is too detailed don't add to trace to avoid accidentally
|
| + // including PII.
|
| + if (!IsDumpModeAllowed(req_args->level_of_detail))
|
| + return false;
|
|
|
| CHECK_NE(MemoryDumpType::SUMMARY_ONLY, req_args->dump_type);
|
|
|
| @@ -94,5 +103,12 @@ bool MemoryTracingObserver::AddDumpToTraceIfEnabled(
|
| return true;
|
| }
|
|
|
| +bool MemoryTracingObserver::IsDumpModeAllowed(
|
| + MemoryDumpLevelOfDetail dump_mode) const {
|
| + if (!memory_dump_config_)
|
| + return false;
|
| + return memory_dump_config_->allowed_dump_modes.count(dump_mode) != 0;
|
| +}
|
| +
|
| } // namespace trace_event
|
| } // namespace base
|
|
|