Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1324)

Unified Diff: content/child/web_process_memory_dump_impl.cc

Issue 1660383002: Refactoring: Move some classes from content/child to platform (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add PLATFORM_EXPORT; Address haraken's review Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/child/web_process_memory_dump_impl.cc
diff --git a/content/child/web_process_memory_dump_impl.cc b/content/child/web_process_memory_dump_impl.cc
deleted file mode 100644
index c96c3f2b544807dac10db4a14b59783d01ff0d1b..0000000000000000000000000000000000000000
--- a/content/child/web_process_memory_dump_impl.cc
+++ /dev/null
@@ -1,186 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/child/web_process_memory_dump_impl.h"
-
-#include <stddef.h>
-
-#include "base/memory/discardable_memory.h"
-#include "base/strings/stringprintf.h"
-#include "base/trace_event/heap_profiler_heap_dump_writer.h"
-#include "base/trace_event/process_memory_dump.h"
-#include "base/trace_event/trace_event_argument.h"
-#include "base/trace_event/trace_event_memory_overhead.h"
-#include "content/child/web_memory_allocator_dump_impl.h"
-#include "skia/ext/skia_trace_memory_dump_impl.h"
-
-namespace content {
-
-WebProcessMemoryDumpImpl::WebProcessMemoryDumpImpl()
- : owned_process_memory_dump_(
- new base::trace_event::ProcessMemoryDump(nullptr)),
- process_memory_dump_(owned_process_memory_dump_.get()),
- level_of_detail_(base::trace_event::MemoryDumpLevelOfDetail::DETAILED) {}
-
-WebProcessMemoryDumpImpl::WebProcessMemoryDumpImpl(
- base::trace_event::MemoryDumpLevelOfDetail level_of_detail,
- base::trace_event::ProcessMemoryDump* process_memory_dump)
- : process_memory_dump_(process_memory_dump),
- level_of_detail_(level_of_detail) {}
-
-WebProcessMemoryDumpImpl::~WebProcessMemoryDumpImpl() {
-}
-
-blink::WebMemoryAllocatorDump*
-WebProcessMemoryDumpImpl::createMemoryAllocatorDump(
- const blink::WebString& absolute_name) {
- // Get a MemoryAllocatorDump from the base/ object.
- base::trace_event::MemoryAllocatorDump* memory_allocator_dump =
- process_memory_dump_->CreateAllocatorDump(absolute_name.utf8());
-
- return createWebMemoryAllocatorDump(memory_allocator_dump);
-}
-
-blink::WebMemoryAllocatorDump*
-WebProcessMemoryDumpImpl::createMemoryAllocatorDump(
- const blink::WebString& absolute_name,
- blink::WebMemoryAllocatorDumpGuid guid) {
- // Get a MemoryAllocatorDump from the base/ object with given guid.
- base::trace_event::MemoryAllocatorDump* memory_allocator_dump =
- process_memory_dump_->CreateAllocatorDump(
- absolute_name.utf8(),
- base::trace_event::MemoryAllocatorDumpGuid(guid));
- return createWebMemoryAllocatorDump(memory_allocator_dump);
-}
-
-blink::WebMemoryAllocatorDump*
-WebProcessMemoryDumpImpl::createWebMemoryAllocatorDump(
- base::trace_event::MemoryAllocatorDump* memory_allocator_dump) {
- if (!memory_allocator_dump)
- return nullptr;
-
- // Wrap it and return to blink.
- WebMemoryAllocatorDumpImpl* web_memory_allocator_dump_impl =
- new WebMemoryAllocatorDumpImpl(memory_allocator_dump);
-
- // memory_allocator_dumps_ will take ownership of
- // |web_memory_allocator_dumpd_impl|.
- memory_allocator_dumps_.set(memory_allocator_dump,
- make_scoped_ptr(web_memory_allocator_dump_impl));
- return web_memory_allocator_dump_impl;
-}
-
-blink::WebMemoryAllocatorDump* WebProcessMemoryDumpImpl::getMemoryAllocatorDump(
- const blink::WebString& absolute_name) const {
- // Retrieve the base MemoryAllocatorDump object and then reverse lookup
- // its wrapper.
- base::trace_event::MemoryAllocatorDump* memory_allocator_dump =
- process_memory_dump_->GetAllocatorDump(absolute_name.utf8());
- if (!memory_allocator_dump)
- return nullptr;
-
- // The only case of (memory_allocator_dump && !web_memory_allocator_dump)
- // is something from blink trying to get a MAD that was created from chromium,
- // which is an odd use case.
- blink::WebMemoryAllocatorDump* web_memory_allocator_dump =
- memory_allocator_dumps_.get(memory_allocator_dump);
- DCHECK(web_memory_allocator_dump);
- return web_memory_allocator_dump;
-}
-
-void WebProcessMemoryDumpImpl::clear() {
- // Clear all the WebMemoryAllocatorDump wrappers.
- memory_allocator_dumps_.clear();
-
- // Clear the actual MemoryAllocatorDump objects from the underlying PMD.
- process_memory_dump_->Clear();
-}
-
-void WebProcessMemoryDumpImpl::takeAllDumpsFrom(
- blink::WebProcessMemoryDump* other) {
- auto other_impl = static_cast<WebProcessMemoryDumpImpl*>(other);
- // WebProcessMemoryDumpImpl is a container of WebMemoryAllocatorDump(s) which
- // in turn are wrappers of base::trace_event::MemoryAllocatorDump(s).
- // In order to expose the move and ownership transfer semantics of the
- // underlying ProcessMemoryDump, we need to:
-
- // 1) Move and transfer the ownership of the wrapped
- // base::trace_event::MemoryAllocatorDump(s) instances.
- process_memory_dump_->TakeAllDumpsFrom(other_impl->process_memory_dump_);
-
- // 2) Move and transfer the ownership of the WebMemoryAllocatorDump wrappers.
- const size_t expected_final_size = memory_allocator_dumps_.size() +
- other_impl->memory_allocator_dumps_.size();
- while (!other_impl->memory_allocator_dumps_.empty()) {
- auto first_entry = other_impl->memory_allocator_dumps_.begin();
- base::trace_event::MemoryAllocatorDump* memory_allocator_dump =
- first_entry->first;
- memory_allocator_dumps_.set(
- memory_allocator_dump,
- other_impl->memory_allocator_dumps_.take_and_erase(first_entry));
- }
- DCHECK_EQ(expected_final_size, memory_allocator_dumps_.size());
- DCHECK(other_impl->memory_allocator_dumps_.empty());
-}
-
-void WebProcessMemoryDumpImpl::addOwnershipEdge(
- blink::WebMemoryAllocatorDumpGuid source,
- blink::WebMemoryAllocatorDumpGuid target,
- int importance) {
- process_memory_dump_->AddOwnershipEdge(
- base::trace_event::MemoryAllocatorDumpGuid(source),
- base::trace_event::MemoryAllocatorDumpGuid(target), importance);
-}
-
-void WebProcessMemoryDumpImpl::addOwnershipEdge(
- blink::WebMemoryAllocatorDumpGuid source,
- blink::WebMemoryAllocatorDumpGuid target) {
- process_memory_dump_->AddOwnershipEdge(
- base::trace_event::MemoryAllocatorDumpGuid(source),
- base::trace_event::MemoryAllocatorDumpGuid(target));
-}
-
-void WebProcessMemoryDumpImpl::addSuballocation(
- blink::WebMemoryAllocatorDumpGuid source,
- const blink::WebString& target_node_name) {
- process_memory_dump_->AddSuballocation(
- base::trace_event::MemoryAllocatorDumpGuid(source),
- target_node_name.utf8());
-}
-
-SkTraceMemoryDump* WebProcessMemoryDumpImpl::createDumpAdapterForSkia(
- const blink::WebString& dump_name_prefix) {
- sk_trace_dump_list_.push_back(new skia::SkiaTraceMemoryDumpImpl(
- dump_name_prefix.utf8(), level_of_detail_, process_memory_dump_));
- return sk_trace_dump_list_.back();
-}
-
-blink::WebMemoryAllocatorDump*
-WebProcessMemoryDumpImpl::CreateDiscardableMemoryAllocatorDump(
- const std::string& name,
- base::DiscardableMemory* discardable) {
- base::trace_event::MemoryAllocatorDump* dump =
- discardable->CreateMemoryAllocatorDump(name.c_str(),
- process_memory_dump_);
- return createWebMemoryAllocatorDump(dump);
-}
-
-void WebProcessMemoryDumpImpl::dumpHeapUsage(
- const base::hash_map<base::trace_event::AllocationContext, size_t>&
- bytes_by_context,
- base::trace_event::TraceEventMemoryOverhead& overhead,
- const char* allocator_name) {
- scoped_refptr<base::trace_event::MemoryDumpSessionState> session_state =
- process_memory_dump_->session_state();
- scoped_refptr<base::trace_event::TracedValue> heap_dump = ExportHeapDump(
- bytes_by_context,
- session_state->stack_frame_deduplicator(),
- session_state->type_name_deduplicator());
- process_memory_dump_->AddHeapDump(allocator_name, heap_dump);
- std::string base_name = base::StringPrintf("tracing/heap_profiler_%s",
- allocator_name);
- overhead.DumpInto(base_name.c_str(), process_memory_dump_);
-}
-
-} // namespace content
« no previous file with comments | « content/child/web_process_memory_dump_impl.h ('k') | content/child/web_process_memory_dump_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698