Revert "[M120 Migration]Fix for crash during chrome exit"
[platform/framework/web/chromium-efl.git] / gin / v8_isolate_memory_dump_provider.h
1 // Copyright 2015 The Chromium Authors
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
8 #include "base/memory/raw_ptr.h"
9 #include "base/task/single_thread_task_runner.h"
10 #include "base/trace_event/memory_dump_provider.h"
11 #include "gin/gin_export.h"
12
13 namespace gin {
14
15 class IsolateHolder;
16
17 // Memory dump provider for the chrome://tracing infrastructure. It dumps
18 // summarized memory stats about the V8 Isolate.
19 class V8IsolateMemoryDumpProvider
20     : public base::trace_event::MemoryDumpProvider {
21  public:
22   V8IsolateMemoryDumpProvider(
23       IsolateHolder* isolate_holder,
24       scoped_refptr<base::SingleThreadTaskRunner> task_runner);
25   V8IsolateMemoryDumpProvider(const V8IsolateMemoryDumpProvider&) = delete;
26   V8IsolateMemoryDumpProvider& operator=(const V8IsolateMemoryDumpProvider&) =
27       delete;
28   ~V8IsolateMemoryDumpProvider() override;
29
30   // MemoryDumpProvider implementation.
31   bool OnMemoryDump(
32       const base::trace_event::MemoryDumpArgs& args,
33       base::trace_event::ProcessMemoryDump* process_memory_dump) override;
34
35  private:
36   void DumpHeapStatistics(
37       const base::trace_event::MemoryDumpArgs& args,
38       base::trace_event::ProcessMemoryDump* process_memory_dump);
39
40   raw_ptr<IsolateHolder> isolate_holder_;  // Not owned.
41 };
42
43 }  // namespace gin
44
45 #endif  // GIN_V8_ISOLATE_MEMORY_DUMP_PROVIDER_H_