190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// found in the LICENSE file. 490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "content/browser/renderer_host/memory_benchmark_message_filter.h" 690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "content/common/memory_benchmark_messages.h" 890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#if defined(USE_TCMALLOC) && (defined(OS_LINUX) || defined(OS_ANDROID)) 1090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "third_party/tcmalloc/chromium/src/gperftools/heap-profiler.h" 1290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)namespace content { 1490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)MemoryBenchmarkMessageFilter::MemoryBenchmarkMessageFilter() 165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) : BrowserMessageFilter(MemoryBenchmarkMsgStart) { 1790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)bool MemoryBenchmarkMessageFilter::OnMessageReceived( 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const IPC::Message& message) { 2190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) bool handled = true; 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) IPC_BEGIN_MESSAGE_MAP(MemoryBenchmarkMessageFilter, message) 2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) IPC_MESSAGE_HANDLER(MemoryBenchmarkHostMsg_HeapProfilerDump, 2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) OnHeapProfilerDump) 2590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) IPC_MESSAGE_UNHANDLED(handled = false) 2690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) IPC_END_MESSAGE_MAP() 2790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return handled; 2890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 2990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 3090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)MemoryBenchmarkMessageFilter::~MemoryBenchmarkMessageFilter() { 3190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 3290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 3390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)void MemoryBenchmarkMessageFilter::OnHeapProfilerDump( 3490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) const std::string& reason) { 3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ::HeapProfilerDump(reason.c_str()); 3690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 3790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 3890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} // namespace content 3990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 4090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#endif // defined(USE_TCMALLOC) && (defined(OS_LINUX) || defined(OS_ANDROID)) 41