blob: b3ca74a682784fa8ecf3fe89e4f579d6c2fa5d88 [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
Keishi Hattori0e45c022021-11-27 09:25:528#include "base/memory/raw_ptr.h"
Patrick Monette643cdf62021-10-15 19:13:429#include "base/task/single_thread_task_runner.h"
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:
Siddhartha331b5f0d2017-12-12 14:47:0522 V8IsolateMemoryDumpProvider(
23 IsolateHolder* isolate_holder,
24 scoped_refptr<base::SingleThreadTaskRunner> task_runner);
Daniel Hosseinian68c0798d2021-04-16 08:16:0725 V8IsolateMemoryDumpProvider(const V8IsolateMemoryDumpProvider&) = delete;
26 V8IsolateMemoryDumpProvider& operator=(const V8IsolateMemoryDumpProvider&) =
27 delete;
ssid83aa5be2015-05-08 12:03:2628 ~V8IsolateMemoryDumpProvider() override;
29
30 // MemoryDumpProvider implementation.
ssidf51216b02015-06-04 19:46:2331 bool OnMemoryDump(
ssid90694aeec2015-08-06 13:01:3032 const base::trace_event::MemoryDumpArgs& args,
ssidf51216b02015-06-04 19:46:2333 base::trace_event::ProcessMemoryDump* process_memory_dump) override;
ssid83aa5be2015-05-08 12:03:2634
35 private:
sside36cfaf2015-06-12 16:42:2036 void DumpHeapStatistics(
ssid2888a242015-08-07 23:08:4237 const base::trace_event::MemoryDumpArgs& args,
sside36cfaf2015-06-12 16:42:2038 base::trace_event::ProcessMemoryDump* process_memory_dump);
ssid83aa5be2015-05-08 12:03:2639
Keishi Hattori0e45c022021-11-27 09:25:5240 raw_ptr<IsolateHolder> isolate_holder_; // Not owned.
ssid83aa5be2015-05-08 12:03:2641};
42
43} // namespace gin
44
45#endif // GIN_V8_ISOLATE_MEMORY_DUMP_PROVIDER_H_