1 // Copyright 2015 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "third_party/blink/renderer/platform/instrumentation/tracing/memory_cache_dump_provider.h" 6 7 namespace blink { 8 Trace(Visitor * visitor) const9void MemoryCacheDumpClient::Trace(Visitor* visitor) const {} 10 Instance()11MemoryCacheDumpProvider* MemoryCacheDumpProvider::Instance() { 12 DEFINE_STATIC_LOCAL(MemoryCacheDumpProvider, instance, ()); 13 return &instance; 14 } 15 OnMemoryDump(const base::trace_event::MemoryDumpArgs & args,base::trace_event::ProcessMemoryDump * memory_dump)16bool MemoryCacheDumpProvider::OnMemoryDump( 17 const base::trace_event::MemoryDumpArgs& args, 18 base::trace_event::ProcessMemoryDump* memory_dump) { 19 DCHECK(IsMainThread()); 20 if (!client_) 21 return false; 22 23 WebMemoryDumpLevelOfDetail level; 24 switch (args.level_of_detail) { 25 case base::trace_event::MemoryDumpLevelOfDetail::BACKGROUND: 26 level = blink::WebMemoryDumpLevelOfDetail::kBackground; 27 break; 28 case base::trace_event::MemoryDumpLevelOfDetail::LIGHT: 29 level = blink::WebMemoryDumpLevelOfDetail::kLight; 30 break; 31 case base::trace_event::MemoryDumpLevelOfDetail::DETAILED: 32 level = blink::WebMemoryDumpLevelOfDetail::kDetailed; 33 break; 34 default: 35 NOTREACHED(); 36 return false; 37 } 38 39 WebProcessMemoryDump dump(args.level_of_detail, memory_dump); 40 return client_->OnMemoryDump(level, &dump); 41 } 42 43 MemoryCacheDumpProvider::MemoryCacheDumpProvider() = default; 44 45 MemoryCacheDumpProvider::~MemoryCacheDumpProvider() = default; 46 47 } // namespace blink 48