#include "chrome/browser/memory_details.h"
#include <stddef.h>
#include <sys/types.h>
#include <unistd.h>
#include <map>
#include <memory>
#include <set>
#include "base/files/file_util.h"
#include "base/functional/bind.h"
#include "base/process/process_iterator.h"
#include "base/process/process_metrics.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/threading/scoped_blocking_call.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/grit/branded_strings.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/common/process_type.h"
#include "ui/base/l10n/l10n_util.h"
ProcessEntry;
namespace {
struct Process { … };
ProcessMap;
ProcessMap GetProcesses() { … }
ProcessData GetProcessDataMemoryInformation(
const std::vector<pid_t>& pids) { … }
std::vector<pid_t> GetAllChildren(const ProcessMap& processes, pid_t root) { … }
}
MemoryDetails::MemoryDetails() { … }
ProcessData* MemoryDetails::ChromeBrowser() { … }
void MemoryDetails::CollectProcessData(
const std::vector<ProcessMemoryInformation>& child_info) { … }