#include "chrome/browser/performance_manager/policies/working_set_trimmer_policy.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/strcat.h"
#include "base/strings/string_number_conversions.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/performance_manager/mechanisms/working_set_trimmer.h"
#include "components/performance_manager/graph/graph_impl.h"
#include "components/performance_manager/graph/process_node_impl.h"
#include "components/performance_manager/public/graph/graph.h"
#include "components/performance_manager/public/graph/node_attached_data.h"
#include "components/performance_manager/public/graph/node_data_describer_registry.h"
#include "components/performance_manager/public/graph/process_node.h"
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chrome/browser/performance_manager/policies/working_set_trimmer_policy_chromeos.h"
#endif
namespace performance_manager {
namespace policies {
namespace {
class WorkingSetTrimData
: public ExternalNodeAttachedDataImpl<WorkingSetTrimData> { … };
const char kDescriberName[] = …;
}
WorkingSetTrimmerPolicy::WorkingSetTrimmerPolicy() = default;
WorkingSetTrimmerPolicy::~WorkingSetTrimmerPolicy() = default;
void WorkingSetTrimmerPolicy::OnPassedToGraph(Graph* graph) { … }
void WorkingSetTrimmerPolicy::OnTakenFromGraph(Graph* graph) { … }
void WorkingSetTrimmerPolicy::OnAllFramesInProcessFrozen(
const ProcessNode* process_node) { … }
void WorkingSetTrimmerPolicy::RegisterObservers(Graph* graph) { … }
void WorkingSetTrimmerPolicy::UnregisterObservers(Graph* graph) { … }
base::TimeTicks WorkingSetTrimmerPolicy::GetLastTrimTime(
const ProcessNode* process_node) { … }
void WorkingSetTrimmerPolicy::SetLastTrimTimeNow(
const ProcessNode* process_node) { … }
void WorkingSetTrimmerPolicy::SetLastTrimTime(const ProcessNode* process_node,
base::TimeTicks time) { … }
void WorkingSetTrimmerPolicy::TrimWorkingSet(const ProcessNode* process_node) { … }
base::Value::Dict WorkingSetTrimmerPolicy::DescribeProcessNodeData(
const ProcessNode* node) const { … }
bool WorkingSetTrimmerPolicy::PlatformSupportsWorkingSetTrim() { … }
std::unique_ptr<WorkingSetTrimmerPolicy>
WorkingSetTrimmerPolicy::CreatePolicyForPlatform() { … }
}
}