#include "components/performance_manager/graph/process_node_impl_describer.h"
#include "base/i18n/time_formatting.h"
#include "base/notreached.h"
#include "base/numerics/safe_conversions.h"
#include "base/process/process.h"
#include "base/process/process_handle.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/task/task_traits.h"
#include "base/values.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "components/performance_manager/graph/process_node_impl.h"
#include "components/performance_manager/public/graph/node_data_describer_registry.h"
#include "components/performance_manager/public/graph/process_node.h"
#include "content/public/browser/child_process_host.h"
#if BUILDFLAG(IS_WIN)
#include "base/win/win_util.h"
#endif
namespace performance_manager {
namespace {
const char kDescriberName[] = …;
std::string ContentTypeToString(ProcessNode::ContentType content_type) { … }
std::string HostedProcessTypesToString(
ProcessNode::ContentTypes hosted_content_types) { … }
#if !BUILDFLAG(IS_APPLE)
const char* GetProcessPriorityString(const base::Process& process) { … }
#endif
base::Value GetProcessValueDict(const base::Process& process) { … }
base::Time TicksToTime(base::TimeTicks ticks) { … }
}
void ProcessNodeImplDescriber::OnPassedToGraph(Graph* graph) { … }
void ProcessNodeImplDescriber::OnTakenFromGraph(Graph* graph) { … }
base::Value::Dict ProcessNodeImplDescriber::DescribeProcessNodeData(
const ProcessNode* node) const { … }
}