// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_DBUS_MEMORY_PRESSURE_EVALUATOR_LINUX_H_ #define CHROME_BROWSER_DBUS_MEMORY_PRESSURE_EVALUATOR_LINUX_H_ #include <memory> #include <string> #include "base/functional/callback_forward.h" #include "base/memory/memory_pressure_listener.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" #include "base/time/time.h" #include "base/timer/timer.h" #include "components/memory_pressure/system_memory_pressure_evaluator.h" #include "dbus/bus.h" namespace dbus { class Response; class Signal; } // namespace dbus namespace memory_pressure { class MemoryPressureVoter; } // namespace memory_pressure // A memory pressure evaluator that uses the low-memory-monitor service // (abbreviated in the code as "LMM") to monitor the memory pressure. If the // service is not available, it can use the XDG memory monitor portal as a // fallback (which itself is a thin wrapper over LMM). // // The LMM API is described here: // https://hadess.pages.freedesktop.org/low-memory-monitor/ // and the portal API wrapper is here: // https://flatpak.github.io/xdg-desktop-portal/portal-docs.html#gdbus-org.freedesktop.portal.MemoryMonitor class DbusMemoryPressureEvaluatorLinux : public memory_pressure::SystemMemoryPressureEvaluator { … }; #endif // CHROME_BROWSER_DBUS_MEMORY_PRESSURE_EVALUATOR_LINUX_H_