#include "chrome/browser/memory_details.h"
#include <algorithm>
#include <set>
#include <vector>
#include "base/containers/adapters.h"
#include "base/file_version_info.h"
#include "base/functional/bind.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "base/task/thread_pool.h"
#include "build/build_config.h"
#include "chrome/browser/profiles/profile.h"
#include "components/nacl/common/nacl_process_type.h"
#include "components/strings/grit/components_strings.h"
#include "content/public/browser/browser_child_process_host_iterator.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/child_process_data.h"
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_widget_host.h"
#include "content/public/browser/render_widget_host_iterator.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/bindings_policy.h"
#include "content/public/common/content_constants.h"
#include "extensions/buildflags/buildflags.h"
#include "services/resource_coordinator/public/cpp/memory_instrumentation/global_memory_dump.h"
#include "services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h"
#include "ui/base/l10n/l10n_util.h"
#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID)
#include "content/public/browser/zygote_host/zygote_host_linux.h"
#endif
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/browser/extensions/chrome_content_browser_client_extensions_part.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/process_manager.h"
#include "extensions/browser/process_map.h"
#include "extensions/browser/view_type_utils.h"
#include "extensions/common/extension.h"
#include "extensions/common/mojom/view_type.mojom.h"
#endif
StringPrintf;
BrowserChildProcessHostIterator;
BrowserThread;
NavigationEntry;
RenderWidgetHost;
WebContents;
#if BUILDFLAG(ENABLE_EXTENSIONS)
Extension;
#endif
namespace {
void UpdateProcessTypeAndTitles(
#if BUILDFLAG(ENABLE_EXTENSIONS)
const extensions::ExtensionSet* extension_set,
#endif
ProcessMemoryInformation& process,
content::RenderFrameHost* rfh) { … }
}
std::string ProcessMemoryInformation::GetRendererTypeNameInEnglish(
RendererProcessType type) { … }
std::string ProcessMemoryInformation::GetFullTypeNameInEnglish(
int process_type,
RendererProcessType rtype) { … }
ProcessMemoryInformation::ProcessMemoryInformation()
: … { … }
ProcessMemoryInformation::ProcessMemoryInformation(
const ProcessMemoryInformation& other) = default;
ProcessMemoryInformation::~ProcessMemoryInformation() { … }
bool ProcessMemoryInformation::operator<(
const ProcessMemoryInformation& rhs) const { … }
ProcessData::ProcessData() { … }
ProcessData::ProcessData(const ProcessData& rhs)
: … { … }
ProcessData::~ProcessData() { … }
ProcessData& ProcessData::operator=(const ProcessData& rhs) { … }
void MemoryDetails::StartFetch() { … }
MemoryDetails::~MemoryDetails() { … }
std::string MemoryDetails::ToLogString(bool include_tab_title) { … }
void MemoryDetails::CollectChildInfoOnUIThread() { … }
void MemoryDetails::DidReceiveMemoryDump(
bool success,
std::unique_ptr<memory_instrumentation::GlobalMemoryDump> global_dump) { … }