| Index: components/memory_coordinator/child/child_memory_coordinator_impl.h
|
| diff --git a/components/memory_coordinator/child/child_memory_coordinator_impl.h b/components/memory_coordinator/child/child_memory_coordinator_impl.h
|
| index f8bc01ddea635818ef384d4ba2d96282f83eba89..6e71d20b3b81aac0792d39d86053cfa6753cb6e4 100644
|
| --- a/components/memory_coordinator/child/child_memory_coordinator_impl.h
|
| +++ b/components/memory_coordinator/child/child_memory_coordinator_impl.h
|
| @@ -8,6 +8,7 @@
|
| #include "base/compiler_specific.h"
|
| #include "components/memory_coordinator/common/client_registry.h"
|
| #include "components/memory_coordinator/common/memory_coordinator_client.h"
|
| +#include "components/memory_coordinator/common/memory_coordinator_export.h"
|
| #include "components/memory_coordinator/common/memory_coordinator_features.h"
|
| #include "components/memory_coordinator/public/interfaces/child_memory_coordinator.mojom.h"
|
| #include "components/memory_coordinator/public/interfaces/memory_coordinator.mojom.h"
|
| @@ -15,6 +16,14 @@
|
|
|
| namespace memory_coordinator {
|
|
|
| +class MEMORY_COORDINATOR_EXPORT ChildMemoryCoordinatorDelegate {
|
| + public:
|
| + virtual ~ChildMemoryCoordinatorDelegate() {}
|
| +
|
| + // Called when the system requests immediate actions to free memory.
|
| + virtual void OnTrimMemoryImmediately() = 0;
|
| +};
|
| +
|
| // ChildMemoryCoordinatorImpl is the implementation of ChildMemoryCoordinator.
|
| // It lives in child processes and is responsible for dispatching memory events
|
| // to its clients.
|
| @@ -22,21 +31,32 @@ class MEMORY_COORDINATOR_EXPORT ChildMemoryCoordinatorImpl
|
| : public ClientRegistry,
|
| NON_EXPORTED_BASE(public mojom::ChildMemoryCoordinator) {
|
| public:
|
| - explicit ChildMemoryCoordinatorImpl(mojom::MemoryCoordinatorHandlePtr parent);
|
| + explicit ChildMemoryCoordinatorImpl(mojom::MemoryCoordinatorHandlePtr parent,
|
| + ChildMemoryCoordinatorDelegate* delegate);
|
| ~ChildMemoryCoordinatorImpl() override;
|
|
|
| // mojom::ChildMemoryCoordinator implementations:
|
| void OnStateChange(mojom::MemoryState state) override;
|
|
|
| + protected:
|
| + ChildMemoryCoordinatorDelegate* delegate() { return delegate_; }
|
| +
|
| private:
|
| friend class ChildMemoryCoordinatorImplTest;
|
|
|
| mojo::Binding<mojom::ChildMemoryCoordinator> binding_;
|
| mojom::MemoryCoordinatorHandlePtr parent_;
|
| + ChildMemoryCoordinatorDelegate* delegate_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ChildMemoryCoordinatorImpl);
|
| };
|
|
|
| -} // namespace content
|
| +// Factory function for creating a ChildMemoryCoordinator for the current
|
| +// platform. Doesn't take the ownership of |delegate|.
|
| +MEMORY_COORDINATOR_EXPORT std::unique_ptr<ChildMemoryCoordinatorImpl>
|
| +CreateChildMemoryCoordinator(mojom::MemoryCoordinatorHandlePtr parent,
|
| + ChildMemoryCoordinatorDelegate* delegate);
|
| +
|
| +} // namespace memory_coordinator
|
|
|
| #endif // COMPONENTS_MEMORY_COORDINATOR_CHILD_CHILD_MEMORY_COORDINATOR_IMPL_H_
|
|
|