blob: 2a2c5dbcdb007a2f1a5f642bb143091f80b608da [file] [log] [blame]
ssid83aa5be2015-05-08 12:03:261// 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#ifndef GIN_V8_ISOLATE_MEMORY_DUMP_PROVIDER_H_
6#define GIN_V8_ISOLATE_MEMORY_DUMP_PROVIDER_H_
7
ssidf51216b02015-06-04 19:46:238#include <string>
9
ssid83aa5be2015-05-08 12:03:2610#include "base/trace_event/memory_dump_provider.h"
11#include "gin/gin_export.h"
12
13namespace gin {
14
15class IsolateHolder;
16
17// Memory dump provider for the chrome://tracing infrastructure. It dumps
18// summarized memory stats about the V8 Isolate.
19class V8IsolateMemoryDumpProvider
20 : public base::trace_event::MemoryDumpProvider {
21 public:
22 explicit V8IsolateMemoryDumpProvider(IsolateHolder* isolate_holder);
23 ~V8IsolateMemoryDumpProvider() override;
24
25 // MemoryDumpProvider implementation.
ssidf51216b02015-06-04 19:46:2326 bool OnMemoryDump(
ssid90694aeec2015-08-06 13:01:3027 const base::trace_event::MemoryDumpArgs& args,
ssidf51216b02015-06-04 19:46:2328 base::trace_event::ProcessMemoryDump* process_memory_dump) override;
ssid83aa5be2015-05-08 12:03:2629
30 private:
sside36cfaf2015-06-12 16:42:2031 void DumpHeapStatistics(
ssid2888a242015-08-07 23:08:4232 const base::trace_event::MemoryDumpArgs& args,
sside36cfaf2015-06-12 16:42:2033 base::trace_event::ProcessMemoryDump* process_memory_dump);
ssid83aa5be2015-05-08 12:03:2634
sside36cfaf2015-06-12 16:42:2035 IsolateHolder* isolate_holder_; // Not owned.
ssid83aa5be2015-05-08 12:03:2636
37 DISALLOW_COPY_AND_ASSIGN(V8IsolateMemoryDumpProvider);
38};
39
40} // namespace gin
41
42#endif // GIN_V8_ISOLATE_MEMORY_DUMP_PROVIDER_H_