diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/scheduler/CMakeLists.txt index e979712b3c43..be59e2415606 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/CMakeLists.txt @@ -17,6 +17,7 @@ target_link_libraries(react_renderer_scheduler folly_runtime glog jsi + react_cxxstableapi react_debug react_featureflags react_performance_cdpmetrics diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/InspectorData.h b/packages/react-native/ReactCommon/react/renderer/scheduler/InspectorData.h index d420c0329ebb..c008d9ef62a2 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/InspectorData.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/InspectorData.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp index b5fa421a35ae..5d21a961dae3 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp @@ -13,6 +13,8 @@ #include #include #include +#include +#include #include #include #include @@ -23,6 +25,7 @@ #include #include #include +#include #include namespace facebook::react { @@ -44,13 +47,15 @@ Scheduler::Scheduler( if (ReactNativeFeatureFlags::enableBridgelessArchitecture() && ReactNativeFeatureFlags::cdpInteractionMetricsEnabled()) { - cdpMetricsReporter_.emplace(CdpMetricsReporter{runtimeExecutor_}); - performanceEntryReporter_->addEventListener(&*cdpMetricsReporter_); + cdpMetricsReporter_ = + std::make_unique(runtimeExecutor_); + performanceEntryReporter_->addEventListener(cdpMetricsReporter_.get()); } if (ReactNativeFeatureFlags::perfIssuesEnabled()) { - cdpPerfIssuesReporter_.emplace(CdpPerfIssuesReporter{runtimeExecutor_}); - performanceEntryReporter_->addEventListener(&*cdpPerfIssuesReporter_); + cdpPerfIssuesReporter_ = + std::make_unique(runtimeExecutor_); + performanceEntryReporter_->addEventListener(cdpPerfIssuesReporter_.get()); } eventPerformanceLogger_ = @@ -216,10 +221,11 @@ Scheduler::~Scheduler() { uiManager_->setViewTransitionDelegate(nullptr); if (cdpMetricsReporter_) { - performanceEntryReporter_->removeEventListener(&*cdpMetricsReporter_); + performanceEntryReporter_->removeEventListener(cdpMetricsReporter_.get()); } if (cdpPerfIssuesReporter_) { - performanceEntryReporter_->removeEventListener(&*cdpPerfIssuesReporter_); + performanceEntryReporter_->removeEventListener( + cdpPerfIssuesReporter_.get()); } // Then, let's verify that the requirement was satisfied. diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h index bc0b7b17d802..db58597aa1a9 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h @@ -7,13 +7,15 @@ #pragma once +#include + #include #include +#include +#include #include #include -#include -#include #include #include #include @@ -29,11 +31,14 @@ #include #include #include -#include #include namespace facebook::react { +class CdpMetricsReporter; +class CdpPerfIssuesReporter; +class ViewTransitionModule; + /* * Scheduler coordinates Shadow Tree updates and event flows. */ @@ -145,8 +150,8 @@ class Scheduler final : public UIManagerDelegate { std::shared_ptr> eventDispatcher_; std::shared_ptr performanceEntryReporter_; - std::optional cdpMetricsReporter_; - std::optional cdpPerfIssuesReporter_; + std::unique_ptr cdpMetricsReporter_; + std::unique_ptr cdpPerfIssuesReporter_; std::shared_ptr eventPerformanceLogger_; /** diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h index 06d9773e4ba5..10f45018d94a 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h index d38e85303ede..7d78c1ed5240 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.h b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.h index 93cfb22fef84..40a1ee28f79c 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.h b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.h index 75ef5692b2a1..ed76f11d4c11 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include