| Index: base/trace_event/memory_dump_manager.cc
|
| diff --git a/base/trace_event/memory_dump_manager.cc b/base/trace_event/memory_dump_manager.cc
|
| index 9a39faba8a645134200c8e7f979db2d9c2325374..8c97abf0de4327c7859cdc5d9cbc339155af15a5 100644
|
| --- a/base/trace_event/memory_dump_manager.cc
|
| +++ b/base/trace_event/memory_dump_manager.cc
|
| @@ -139,12 +139,22 @@ void MemoryDumpManager::CreateLocalDumpPoint(DumpPointType dump_point_type,
|
| // deal with thread safety.
|
| {
|
| AutoLock lock(lock_);
|
| + MemoryAllocatorDump* last_allocator_dump = nullptr;
|
| for (auto it = dump_providers_enabled_.begin();
|
| it != dump_providers_enabled_.end();) {
|
| MemoryDumpProvider* dump_provider = *it;
|
| if (dump_provider->DumpInto(pmd.get())) {
|
| did_any_provider_dump = true;
|
| ++it;
|
| + // TODO(primiano): remove this once crbug.com/466121 gets fixed and
|
| + // the dump provider can inject the declarations for the allocator
|
| + // attributes just once when the trace is started (or ended).
|
| + MemoryAllocatorDump* allocator_dump = pmd->last_allocator_dump();
|
| + if (allocator_dump != last_allocator_dump) {
|
| + allocator_dump->set_extra_attributes_types(
|
| + dump_provider->allocator_attributes());
|
| + last_allocator_dump = allocator_dump;
|
| + }
|
| } else {
|
| LOG(ERROR) << "The memory dumper " << dump_provider->GetFriendlyName()
|
| << " failed, possibly due to sandboxing (crbug.com/461788), "
|
|
|