/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #pragma once #include #include #include #include #include namespace facebook::react { using GarbageCollectionTrigger = std::function; class LeakChecker final { public: LeakChecker(RuntimeExecutor runtimeExecutor); void uiManagerDidCreateShadowNodeFamily( const ShadowNodeFamily::Shared& shadowNodeFamily) const; void stopSurface(SurfaceId surfaceId); private: void checkSurfaceForLeaks(SurfaceId surfaceId) const; const RuntimeExecutor runtimeExecutor_{}; WeakFamilyRegistry registry_{}; SurfaceId previouslyStoppedSurface_{}; }; } // namespace facebook::react