mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/45697 Migrate ReactFeatureFlags.unstable_useTurboModuleInterop to ReactNativeFeatureFlags changelog: [internal] internal Reviewed By: cortinico Differential Revision: D60274330 fbshipit-source-id: 64ec9f631b4efcdb5d46859d8d949c3309c54945
133 lines
5.7 KiB
C++
133 lines
5.7 KiB
C++
/*
|
|
* 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.
|
|
*
|
|
* @generated SignedSource<<416abde5c71ed1f507a466f87a353240>>
|
|
*/
|
|
|
|
/**
|
|
* IMPORTANT: Do NOT modify this file directly.
|
|
*
|
|
* To change the definition of the flags, edit
|
|
* packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js.
|
|
*
|
|
* To regenerate this code, run the following script from the repo root:
|
|
* yarn featureflags-update
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <react/featureflags/ReactNativeFeatureFlagsProvider.h>
|
|
#include <array>
|
|
#include <atomic>
|
|
#include <memory>
|
|
#include <optional>
|
|
|
|
namespace facebook::react {
|
|
|
|
class ReactNativeFeatureFlagsAccessor {
|
|
public:
|
|
ReactNativeFeatureFlagsAccessor();
|
|
|
|
bool commonTestFlag();
|
|
bool allowCollapsableChildren();
|
|
bool allowRecursiveCommitsWithSynchronousMountOnAndroid();
|
|
bool batchRenderingUpdatesInEventLoop();
|
|
bool changeOrderOfMountingInstructionsOnAndroid();
|
|
bool completeReactInstanceCreationOnBgThreadOnAndroid();
|
|
bool destroyFabricSurfacesInReactInstanceManager();
|
|
bool enableAlignItemsBaselineOnFabricIOS();
|
|
bool enableCleanTextInputYogaNode();
|
|
bool enableEagerRootViewAttachment();
|
|
bool enableFabricLogs();
|
|
bool enableFabricRendererExclusively();
|
|
bool enableGranularShadowTreeStateReconciliation();
|
|
bool enableLongTaskAPI();
|
|
bool enableMicrotasks();
|
|
bool enablePropsUpdateReconciliationAndroid();
|
|
bool enableReportEventPaintTime();
|
|
bool enableSynchronousStateUpdates();
|
|
bool enableUIConsistency();
|
|
bool excludeYogaFromRawProps();
|
|
bool fetchImagesInViewPreallocation();
|
|
bool fixIncorrectScrollViewStateUpdateOnAndroid();
|
|
bool fixMappingOfEventPrioritiesBetweenFabricAndReact();
|
|
bool fixMissedFabricStateUpdatesOnAndroid();
|
|
bool forceBatchingMountItemsOnAndroid();
|
|
bool fuseboxEnabledDebug();
|
|
bool fuseboxEnabledRelease();
|
|
bool initEagerTurboModulesOnNativeModulesQueueAndroid();
|
|
bool lazyAnimationCallbacks();
|
|
bool loadVectorDrawablesOnImages();
|
|
bool setAndroidLayoutDirection();
|
|
bool traceTurboModulePromiseRejectionsOnAndroid();
|
|
bool useFabricInterop();
|
|
bool useImmediateExecutorInAndroidBridgeless();
|
|
bool useModernRuntimeScheduler();
|
|
bool useNativeViewConfigsInBridgelessMode();
|
|
bool useNewReactImageViewBackgroundDrawing();
|
|
bool useOptimisedViewPreallocationOnAndroid();
|
|
bool useRuntimeShadowNodeReferenceUpdate();
|
|
bool useRuntimeShadowNodeReferenceUpdateOnLayout();
|
|
bool useStateAlignmentMechanism();
|
|
bool useTurboModuleInterop();
|
|
|
|
void override(std::unique_ptr<ReactNativeFeatureFlagsProvider> provider);
|
|
|
|
private:
|
|
void markFlagAsAccessed(int position, const char* flagName);
|
|
void ensureFlagsNotAccessed();
|
|
|
|
std::unique_ptr<ReactNativeFeatureFlagsProvider> currentProvider_;
|
|
bool wasOverridden_;
|
|
|
|
std::array<std::atomic<const char*>, 42> accessedFeatureFlags_;
|
|
|
|
std::atomic<std::optional<bool>> commonTestFlag_;
|
|
std::atomic<std::optional<bool>> allowCollapsableChildren_;
|
|
std::atomic<std::optional<bool>> allowRecursiveCommitsWithSynchronousMountOnAndroid_;
|
|
std::atomic<std::optional<bool>> batchRenderingUpdatesInEventLoop_;
|
|
std::atomic<std::optional<bool>> changeOrderOfMountingInstructionsOnAndroid_;
|
|
std::atomic<std::optional<bool>> completeReactInstanceCreationOnBgThreadOnAndroid_;
|
|
std::atomic<std::optional<bool>> destroyFabricSurfacesInReactInstanceManager_;
|
|
std::atomic<std::optional<bool>> enableAlignItemsBaselineOnFabricIOS_;
|
|
std::atomic<std::optional<bool>> enableCleanTextInputYogaNode_;
|
|
std::atomic<std::optional<bool>> enableEagerRootViewAttachment_;
|
|
std::atomic<std::optional<bool>> enableFabricLogs_;
|
|
std::atomic<std::optional<bool>> enableFabricRendererExclusively_;
|
|
std::atomic<std::optional<bool>> enableGranularShadowTreeStateReconciliation_;
|
|
std::atomic<std::optional<bool>> enableLongTaskAPI_;
|
|
std::atomic<std::optional<bool>> enableMicrotasks_;
|
|
std::atomic<std::optional<bool>> enablePropsUpdateReconciliationAndroid_;
|
|
std::atomic<std::optional<bool>> enableReportEventPaintTime_;
|
|
std::atomic<std::optional<bool>> enableSynchronousStateUpdates_;
|
|
std::atomic<std::optional<bool>> enableUIConsistency_;
|
|
std::atomic<std::optional<bool>> excludeYogaFromRawProps_;
|
|
std::atomic<std::optional<bool>> fetchImagesInViewPreallocation_;
|
|
std::atomic<std::optional<bool>> fixIncorrectScrollViewStateUpdateOnAndroid_;
|
|
std::atomic<std::optional<bool>> fixMappingOfEventPrioritiesBetweenFabricAndReact_;
|
|
std::atomic<std::optional<bool>> fixMissedFabricStateUpdatesOnAndroid_;
|
|
std::atomic<std::optional<bool>> forceBatchingMountItemsOnAndroid_;
|
|
std::atomic<std::optional<bool>> fuseboxEnabledDebug_;
|
|
std::atomic<std::optional<bool>> fuseboxEnabledRelease_;
|
|
std::atomic<std::optional<bool>> initEagerTurboModulesOnNativeModulesQueueAndroid_;
|
|
std::atomic<std::optional<bool>> lazyAnimationCallbacks_;
|
|
std::atomic<std::optional<bool>> loadVectorDrawablesOnImages_;
|
|
std::atomic<std::optional<bool>> setAndroidLayoutDirection_;
|
|
std::atomic<std::optional<bool>> traceTurboModulePromiseRejectionsOnAndroid_;
|
|
std::atomic<std::optional<bool>> useFabricInterop_;
|
|
std::atomic<std::optional<bool>> useImmediateExecutorInAndroidBridgeless_;
|
|
std::atomic<std::optional<bool>> useModernRuntimeScheduler_;
|
|
std::atomic<std::optional<bool>> useNativeViewConfigsInBridgelessMode_;
|
|
std::atomic<std::optional<bool>> useNewReactImageViewBackgroundDrawing_;
|
|
std::atomic<std::optional<bool>> useOptimisedViewPreallocationOnAndroid_;
|
|
std::atomic<std::optional<bool>> useRuntimeShadowNodeReferenceUpdate_;
|
|
std::atomic<std::optional<bool>> useRuntimeShadowNodeReferenceUpdateOnLayout_;
|
|
std::atomic<std::optional<bool>> useStateAlignmentMechanism_;
|
|
std::atomic<std::optional<bool>> useTurboModuleInterop_;
|
|
};
|
|
|
|
} // namespace facebook::react
|