Clean up forceBatchingMountItemsOnAndroid feature flag (#47546)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47546

Changelog: [internal]

Cleaning up the feature flag as we've tested it's safe to land.

Reviewed By: javache

Differential Revision: D65749504

fbshipit-source-id: 964db7e9c31ebb8d7e4f7e2703a3040709c6ed6e
This commit is contained in:
Rubén Norte 2024-11-11 06:05:28 -08:00 committed by Facebook GitHub Bot
parent 6c577e96db
commit d7cb6d95a8
21 changed files with 41 additions and 155 deletions

View File

@ -116,9 +116,7 @@ public class MountItemDispatcher {
return;
}
if (ReactNativeFeatureFlags.forceBatchingMountItemsOnAndroid()) {
mInDispatch = true;
}
mInDispatch = true;
try {
dispatchMountItems();

View File

@ -232,19 +232,13 @@ public class SurfaceMountingManager {
((ReactRoot) rootView).setRootViewTag(mSurfaceId);
}
if (!ReactNativeFeatureFlags.forceBatchingMountItemsOnAndroid()) {
mRootViewAttached = true;
}
executeMountItemsOnViewAttach();
if (ReactNativeFeatureFlags.forceBatchingMountItemsOnAndroid()) {
// By doing this after `executeMountItemsOnViewAttach`, we ensure
// that any operations scheduled while processing this queue are
// also added to the queue, instead of being processed immediately
// through the queue in `MountItemDispatcher`.
mRootViewAttached = true;
}
// By doing this after `executeMountItemsOnViewAttach`, we ensure
// that any operations scheduled while processing this queue are
// also added to the queue, instead of being processed immediately
// through the queue in `MountItemDispatcher`.
mRootViewAttached = true;
};
if (UiThreadUtil.isOnUiThread()) {

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<b7f79cb934f8bf2519439339fc7562d3>>
* @generated SignedSource<<b2f32b87f4e87ad9588add08dcb9b0c6>>
*/
/**
@ -208,12 +208,6 @@ public object ReactNativeFeatureFlags {
@JvmStatic
public fun fixMountingCoordinatorReportedPendingTransactionsOnAndroid(): Boolean = accessor.fixMountingCoordinatorReportedPendingTransactionsOnAndroid()
/**
* Forces the mounting layer on Android to always batch mount items instead of dispatching them immediately. This might fix some crashes related to synchronous state updates, where some views dispatch state updates during mount.
*/
@JvmStatic
public fun forceBatchingMountItemsOnAndroid(): Boolean = accessor.forceBatchingMountItemsOnAndroid()
/**
* Flag determining if the React Native DevTools (Fusebox) CDP backend should be enabled in debug builds. This flag is global and should not be changed across React Host lifetimes.
*/

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<1fa2a94ddb1563952c457e098f0deed7>>
* @generated SignedSource<<2a25e30cbee2548ee5538ecbc4b92fdc>>
*/
/**
@ -50,7 +50,6 @@ public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccesso
private var excludeYogaFromRawPropsCache: Boolean? = null
private var fixMappingOfEventPrioritiesBetweenFabricAndReactCache: Boolean? = null
private var fixMountingCoordinatorReportedPendingTransactionsOnAndroidCache: Boolean? = null
private var forceBatchingMountItemsOnAndroidCache: Boolean? = null
private var fuseboxEnabledDebugCache: Boolean? = null
private var fuseboxEnabledReleaseCache: Boolean? = null
private var initEagerTurboModulesOnNativeModulesQueueAndroidCache: Boolean? = null
@ -338,15 +337,6 @@ public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccesso
return cached
}
override fun forceBatchingMountItemsOnAndroid(): Boolean {
var cached = forceBatchingMountItemsOnAndroidCache
if (cached == null) {
cached = ReactNativeFeatureFlagsCxxInterop.forceBatchingMountItemsOnAndroid()
forceBatchingMountItemsOnAndroidCache = cached
}
return cached
}
override fun fuseboxEnabledDebug(): Boolean {
var cached = fuseboxEnabledDebugCache
if (cached == null) {

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<fe7f93d5f6aeba9007d892074aac5b3a>>
* @generated SignedSource<<0656ed5b5317e6caf85605bba62d08d1>>
*/
/**
@ -88,8 +88,6 @@ public object ReactNativeFeatureFlagsCxxInterop {
@DoNotStrip @JvmStatic public external fun fixMountingCoordinatorReportedPendingTransactionsOnAndroid(): Boolean
@DoNotStrip @JvmStatic public external fun forceBatchingMountItemsOnAndroid(): Boolean
@DoNotStrip @JvmStatic public external fun fuseboxEnabledDebug(): Boolean
@DoNotStrip @JvmStatic public external fun fuseboxEnabledRelease(): Boolean

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<09dd6fb517b7b965c5cc554a075e5590>>
* @generated SignedSource<<43c2b02a67fea9ad6d36e7716cb81ccc>>
*/
/**
@ -83,8 +83,6 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
override fun fixMountingCoordinatorReportedPendingTransactionsOnAndroid(): Boolean = false
override fun forceBatchingMountItemsOnAndroid(): Boolean = false
override fun fuseboxEnabledDebug(): Boolean = true
override fun fuseboxEnabledRelease(): Boolean = false

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<7e78a7ec91d557297f869b964cc91eac>>
* @generated SignedSource<<71dcfc3812f442a35ae2c24621c05605>>
*/
/**
@ -54,7 +54,6 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces
private var excludeYogaFromRawPropsCache: Boolean? = null
private var fixMappingOfEventPrioritiesBetweenFabricAndReactCache: Boolean? = null
private var fixMountingCoordinatorReportedPendingTransactionsOnAndroidCache: Boolean? = null
private var forceBatchingMountItemsOnAndroidCache: Boolean? = null
private var fuseboxEnabledDebugCache: Boolean? = null
private var fuseboxEnabledReleaseCache: Boolean? = null
private var initEagerTurboModulesOnNativeModulesQueueAndroidCache: Boolean? = null
@ -372,16 +371,6 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces
return cached
}
override fun forceBatchingMountItemsOnAndroid(): Boolean {
var cached = forceBatchingMountItemsOnAndroidCache
if (cached == null) {
cached = currentProvider.forceBatchingMountItemsOnAndroid()
accessedFeatureFlags.add("forceBatchingMountItemsOnAndroid")
forceBatchingMountItemsOnAndroidCache = cached
}
return cached
}
override fun fuseboxEnabledDebug(): Boolean {
var cached = fuseboxEnabledDebugCache
if (cached == null) {

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<0c6450697814b66ae910d66f278213ef>>
* @generated SignedSource<<2dd3e32b571ae171bd5621424116188b>>
*/
/**
@ -83,8 +83,6 @@ public interface ReactNativeFeatureFlagsProvider {
@DoNotStrip public fun fixMountingCoordinatorReportedPendingTransactionsOnAndroid(): Boolean
@DoNotStrip public fun forceBatchingMountItemsOnAndroid(): Boolean
@DoNotStrip public fun fuseboxEnabledDebug(): Boolean
@DoNotStrip public fun fuseboxEnabledRelease(): Boolean

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<869d22f5b2b35741b171a7257e91f114>>
* @generated SignedSource<<62bd0386265d0fa4bdccab1faf22d25c>>
*/
/**
@ -219,12 +219,6 @@ class ReactNativeFeatureFlagsProviderHolder
return method(javaProvider_);
}
bool forceBatchingMountItemsOnAndroid() override {
static const auto method =
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("forceBatchingMountItemsOnAndroid");
return method(javaProvider_);
}
bool fuseboxEnabledDebug() override {
static const auto method =
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("fuseboxEnabledDebug");
@ -475,11 +469,6 @@ bool JReactNativeFeatureFlagsCxxInterop::fixMountingCoordinatorReportedPendingTr
return ReactNativeFeatureFlags::fixMountingCoordinatorReportedPendingTransactionsOnAndroid();
}
bool JReactNativeFeatureFlagsCxxInterop::forceBatchingMountItemsOnAndroid(
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
return ReactNativeFeatureFlags::forceBatchingMountItemsOnAndroid();
}
bool JReactNativeFeatureFlagsCxxInterop::fuseboxEnabledDebug(
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
return ReactNativeFeatureFlags::fuseboxEnabledDebug();
@ -681,9 +670,6 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
makeNativeMethod(
"fixMountingCoordinatorReportedPendingTransactionsOnAndroid",
JReactNativeFeatureFlagsCxxInterop::fixMountingCoordinatorReportedPendingTransactionsOnAndroid),
makeNativeMethod(
"forceBatchingMountItemsOnAndroid",
JReactNativeFeatureFlagsCxxInterop::forceBatchingMountItemsOnAndroid),
makeNativeMethod(
"fuseboxEnabledDebug",
JReactNativeFeatureFlagsCxxInterop::fuseboxEnabledDebug),

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<344f9c1de8883c4b72c124dd626f6489>>
* @generated SignedSource<<00e9f2368ec7745d960e8671b0e58d19>>
*/
/**
@ -120,9 +120,6 @@ class JReactNativeFeatureFlagsCxxInterop
static bool fixMountingCoordinatorReportedPendingTransactionsOnAndroid(
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
static bool forceBatchingMountItemsOnAndroid(
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
static bool fuseboxEnabledDebug(
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<f2175cbbe38a66b9aa5c3f0feaa07462>>
* @generated SignedSource<<e432522acfd785458553aa09806edb83>>
*/
/**
@ -146,10 +146,6 @@ bool ReactNativeFeatureFlags::fixMountingCoordinatorReportedPendingTransactionsO
return getAccessor().fixMountingCoordinatorReportedPendingTransactionsOnAndroid();
}
bool ReactNativeFeatureFlags::forceBatchingMountItemsOnAndroid() {
return getAccessor().forceBatchingMountItemsOnAndroid();
}
bool ReactNativeFeatureFlags::fuseboxEnabledDebug() {
return getAccessor().fuseboxEnabledDebug();
}

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<e81b275213e8668a8cd22cd40eea70af>>
* @generated SignedSource<<079c1e8cd65a004c1b26f1a2517e9042>>
*/
/**
@ -189,11 +189,6 @@ class ReactNativeFeatureFlags {
*/
RN_EXPORT static bool fixMountingCoordinatorReportedPendingTransactionsOnAndroid();
/**
* Forces the mounting layer on Android to always batch mount items instead of dispatching them immediately. This might fix some crashes related to synchronous state updates, where some views dispatch state updates during mount.
*/
RN_EXPORT static bool forceBatchingMountItemsOnAndroid();
/**
* Flag determining if the React Native DevTools (Fusebox) CDP backend should be enabled in debug builds. This flag is global and should not be changed across React Host lifetimes.
*/

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<331139167971b86c56d29f8ef914c6d1>>
* @generated SignedSource<<8f2e12ef2ddfb1e49b0cdfed8e695e54>>
*/
/**
@ -569,24 +569,6 @@ bool ReactNativeFeatureFlagsAccessor::fixMountingCoordinatorReportedPendingTrans
return flagValue.value();
}
bool ReactNativeFeatureFlagsAccessor::forceBatchingMountItemsOnAndroid() {
auto flagValue = forceBatchingMountItemsOnAndroid_.load();
if (!flagValue.has_value()) {
// This block is not exclusive but it is not necessary.
// If multiple threads try to initialize the feature flag, we would only
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(30, "forceBatchingMountItemsOnAndroid");
flagValue = currentProvider_->forceBatchingMountItemsOnAndroid();
forceBatchingMountItemsOnAndroid_ = flagValue;
}
return flagValue.value();
}
bool ReactNativeFeatureFlagsAccessor::fuseboxEnabledDebug() {
auto flagValue = fuseboxEnabledDebug_.load();
@ -596,7 +578,7 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxEnabledDebug() {
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(31, "fuseboxEnabledDebug");
markFlagAsAccessed(30, "fuseboxEnabledDebug");
flagValue = currentProvider_->fuseboxEnabledDebug();
fuseboxEnabledDebug_ = flagValue;
@ -614,7 +596,7 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxEnabledRelease() {
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(32, "fuseboxEnabledRelease");
markFlagAsAccessed(31, "fuseboxEnabledRelease");
flagValue = currentProvider_->fuseboxEnabledRelease();
fuseboxEnabledRelease_ = flagValue;
@ -632,7 +614,7 @@ bool ReactNativeFeatureFlagsAccessor::initEagerTurboModulesOnNativeModulesQueueA
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(33, "initEagerTurboModulesOnNativeModulesQueueAndroid");
markFlagAsAccessed(32, "initEagerTurboModulesOnNativeModulesQueueAndroid");
flagValue = currentProvider_->initEagerTurboModulesOnNativeModulesQueueAndroid();
initEagerTurboModulesOnNativeModulesQueueAndroid_ = flagValue;
@ -650,7 +632,7 @@ bool ReactNativeFeatureFlagsAccessor::lazyAnimationCallbacks() {
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(34, "lazyAnimationCallbacks");
markFlagAsAccessed(33, "lazyAnimationCallbacks");
flagValue = currentProvider_->lazyAnimationCallbacks();
lazyAnimationCallbacks_ = flagValue;
@ -668,7 +650,7 @@ bool ReactNativeFeatureFlagsAccessor::loadVectorDrawablesOnImages() {
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(35, "loadVectorDrawablesOnImages");
markFlagAsAccessed(34, "loadVectorDrawablesOnImages");
flagValue = currentProvider_->loadVectorDrawablesOnImages();
loadVectorDrawablesOnImages_ = flagValue;
@ -686,7 +668,7 @@ bool ReactNativeFeatureFlagsAccessor::setAndroidLayoutDirection() {
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(36, "setAndroidLayoutDirection");
markFlagAsAccessed(35, "setAndroidLayoutDirection");
flagValue = currentProvider_->setAndroidLayoutDirection();
setAndroidLayoutDirection_ = flagValue;
@ -704,7 +686,7 @@ bool ReactNativeFeatureFlagsAccessor::traceTurboModulePromiseRejectionsOnAndroid
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(37, "traceTurboModulePromiseRejectionsOnAndroid");
markFlagAsAccessed(36, "traceTurboModulePromiseRejectionsOnAndroid");
flagValue = currentProvider_->traceTurboModulePromiseRejectionsOnAndroid();
traceTurboModulePromiseRejectionsOnAndroid_ = flagValue;
@ -722,7 +704,7 @@ bool ReactNativeFeatureFlagsAccessor::useAlwaysAvailableJSErrorHandling() {
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(38, "useAlwaysAvailableJSErrorHandling");
markFlagAsAccessed(37, "useAlwaysAvailableJSErrorHandling");
flagValue = currentProvider_->useAlwaysAvailableJSErrorHandling();
useAlwaysAvailableJSErrorHandling_ = flagValue;
@ -740,7 +722,7 @@ bool ReactNativeFeatureFlagsAccessor::useFabricInterop() {
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(39, "useFabricInterop");
markFlagAsAccessed(38, "useFabricInterop");
flagValue = currentProvider_->useFabricInterop();
useFabricInterop_ = flagValue;
@ -758,7 +740,7 @@ bool ReactNativeFeatureFlagsAccessor::useImmediateExecutorInAndroidBridgeless()
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(40, "useImmediateExecutorInAndroidBridgeless");
markFlagAsAccessed(39, "useImmediateExecutorInAndroidBridgeless");
flagValue = currentProvider_->useImmediateExecutorInAndroidBridgeless();
useImmediateExecutorInAndroidBridgeless_ = flagValue;
@ -776,7 +758,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeViewConfigsInBridgelessMode() {
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(41, "useNativeViewConfigsInBridgelessMode");
markFlagAsAccessed(40, "useNativeViewConfigsInBridgelessMode");
flagValue = currentProvider_->useNativeViewConfigsInBridgelessMode();
useNativeViewConfigsInBridgelessMode_ = flagValue;
@ -794,7 +776,7 @@ bool ReactNativeFeatureFlagsAccessor::useOptimisedViewPreallocationOnAndroid() {
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(42, "useOptimisedViewPreallocationOnAndroid");
markFlagAsAccessed(41, "useOptimisedViewPreallocationOnAndroid");
flagValue = currentProvider_->useOptimisedViewPreallocationOnAndroid();
useOptimisedViewPreallocationOnAndroid_ = flagValue;
@ -812,7 +794,7 @@ bool ReactNativeFeatureFlagsAccessor::useOptimizedEventBatchingOnAndroid() {
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(43, "useOptimizedEventBatchingOnAndroid");
markFlagAsAccessed(42, "useOptimizedEventBatchingOnAndroid");
flagValue = currentProvider_->useOptimizedEventBatchingOnAndroid();
useOptimizedEventBatchingOnAndroid_ = flagValue;
@ -830,7 +812,7 @@ bool ReactNativeFeatureFlagsAccessor::useRuntimeShadowNodeReferenceUpdate() {
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(44, "useRuntimeShadowNodeReferenceUpdate");
markFlagAsAccessed(43, "useRuntimeShadowNodeReferenceUpdate");
flagValue = currentProvider_->useRuntimeShadowNodeReferenceUpdate();
useRuntimeShadowNodeReferenceUpdate_ = flagValue;
@ -848,7 +830,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModuleInterop() {
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(45, "useTurboModuleInterop");
markFlagAsAccessed(44, "useTurboModuleInterop");
flagValue = currentProvider_->useTurboModuleInterop();
useTurboModuleInterop_ = flagValue;
@ -866,7 +848,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModules() {
// be accessing the provider multiple times but the end state of this
// instance and the returned flag value would be the same.
markFlagAsAccessed(46, "useTurboModules");
markFlagAsAccessed(45, "useTurboModules");
flagValue = currentProvider_->useTurboModules();
useTurboModules_ = flagValue;

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<ef77bba170be911320a9f8f2c1c98a9f>>
* @generated SignedSource<<1efdbd02124b25d6599e4867f08c69c9>>
*/
/**
@ -62,7 +62,6 @@ class ReactNativeFeatureFlagsAccessor {
bool excludeYogaFromRawProps();
bool fixMappingOfEventPrioritiesBetweenFabricAndReact();
bool fixMountingCoordinatorReportedPendingTransactionsOnAndroid();
bool forceBatchingMountItemsOnAndroid();
bool fuseboxEnabledDebug();
bool fuseboxEnabledRelease();
bool initEagerTurboModulesOnNativeModulesQueueAndroid();
@ -90,7 +89,7 @@ class ReactNativeFeatureFlagsAccessor {
std::unique_ptr<ReactNativeFeatureFlagsProvider> currentProvider_;
bool wasOverridden_;
std::array<std::atomic<const char*>, 47> accessedFeatureFlags_;
std::array<std::atomic<const char*>, 46> accessedFeatureFlags_;
std::atomic<std::optional<bool>> commonTestFlag_;
std::atomic<std::optional<bool>> allowRecursiveCommitsWithSynchronousMountOnAndroid_;
@ -122,7 +121,6 @@ class ReactNativeFeatureFlagsAccessor {
std::atomic<std::optional<bool>> excludeYogaFromRawProps_;
std::atomic<std::optional<bool>> fixMappingOfEventPrioritiesBetweenFabricAndReact_;
std::atomic<std::optional<bool>> fixMountingCoordinatorReportedPendingTransactionsOnAndroid_;
std::atomic<std::optional<bool>> forceBatchingMountItemsOnAndroid_;
std::atomic<std::optional<bool>> fuseboxEnabledDebug_;
std::atomic<std::optional<bool>> fuseboxEnabledRelease_;
std::atomic<std::optional<bool>> initEagerTurboModulesOnNativeModulesQueueAndroid_;

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<2964ff45378547dd40a9b0df440f8869>>
* @generated SignedSource<<ec502f5beacb2119c3fb1f319a95dfc9>>
*/
/**
@ -147,10 +147,6 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
return false;
}
bool forceBatchingMountItemsOnAndroid() override {
return false;
}
bool fuseboxEnabledDebug() override {
return true;
}

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<5e45e15376ce8426cb5d4ddbfe599066>>
* @generated SignedSource<<9038e8340a349ed8f4abee66555e98d3>>
*/
/**
@ -55,7 +55,6 @@ class ReactNativeFeatureFlagsProvider {
virtual bool excludeYogaFromRawProps() = 0;
virtual bool fixMappingOfEventPrioritiesBetweenFabricAndReact() = 0;
virtual bool fixMountingCoordinatorReportedPendingTransactionsOnAndroid() = 0;
virtual bool forceBatchingMountItemsOnAndroid() = 0;
virtual bool fuseboxEnabledDebug() = 0;
virtual bool fuseboxEnabledRelease() = 0;
virtual bool initEagerTurboModulesOnNativeModulesQueueAndroid() = 0;

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<3a530491b7f90f1c0a1e75a6d618f586>>
* @generated SignedSource<<1626340cbb5cc8958d6b16c9b717e91e>>
*/
/**
@ -208,11 +208,6 @@ bool NativeReactNativeFeatureFlags::fixMountingCoordinatorReportedPendingTransac
return ReactNativeFeatureFlags::fixMountingCoordinatorReportedPendingTransactionsOnAndroid();
}
bool NativeReactNativeFeatureFlags::forceBatchingMountItemsOnAndroid(
jsi::Runtime& /*runtime*/) {
return ReactNativeFeatureFlags::forceBatchingMountItemsOnAndroid();
}
bool NativeReactNativeFeatureFlags::fuseboxEnabledDebug(
jsi::Runtime& /*runtime*/) {
return ReactNativeFeatureFlags::fuseboxEnabledDebug();

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<4c476d0f5a9657387dd5f49db4ebde2c>>
* @generated SignedSource<<c283f40e36ee19d1f7d5d9aac4747e33>>
*/
/**
@ -101,8 +101,6 @@ class NativeReactNativeFeatureFlags
bool fixMountingCoordinatorReportedPendingTransactionsOnAndroid(jsi::Runtime& runtime);
bool forceBatchingMountItemsOnAndroid(jsi::Runtime& runtime);
bool fuseboxEnabledDebug(jsi::Runtime& runtime);
bool fuseboxEnabledRelease(jsi::Runtime& runtime);

View File

@ -322,15 +322,6 @@ const definitions: FeatureFlagDefinitions = {
purpose: 'experimentation',
},
},
forceBatchingMountItemsOnAndroid: {
defaultValue: false,
metadata: {
dateAdded: '2024-04-10',
description:
'Forces the mounting layer on Android to always batch mount items instead of dispatching them immediately. This might fix some crashes related to synchronous state updates, where some views dispatch state updates during mount.',
purpose: 'experimentation',
},
},
fuseboxEnabledDebug: {
defaultValue: true,
metadata: {

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<716c4507093099c254b57d744366bd05>>
* @generated SignedSource<<fc2fed53108032e45071d0486a5db4a7>>
* @flow strict
*/
@ -83,7 +83,6 @@ export type ReactNativeFeatureFlags = {
excludeYogaFromRawProps: Getter<boolean>,
fixMappingOfEventPrioritiesBetweenFabricAndReact: Getter<boolean>,
fixMountingCoordinatorReportedPendingTransactionsOnAndroid: Getter<boolean>,
forceBatchingMountItemsOnAndroid: Getter<boolean>,
fuseboxEnabledDebug: Getter<boolean>,
fuseboxEnabledRelease: Getter<boolean>,
initEagerTurboModulesOnNativeModulesQueueAndroid: Getter<boolean>,
@ -320,10 +319,6 @@ export const fixMappingOfEventPrioritiesBetweenFabricAndReact: Getter<boolean> =
* Fixes a limitation on Android where the mounting coordinator would report there are no pending transactions but some of them were actually not processed due to the use of the push model.
*/
export const fixMountingCoordinatorReportedPendingTransactionsOnAndroid: Getter<boolean> = createNativeFlagGetter('fixMountingCoordinatorReportedPendingTransactionsOnAndroid', false);
/**
* Forces the mounting layer on Android to always batch mount items instead of dispatching them immediately. This might fix some crashes related to synchronous state updates, where some views dispatch state updates during mount.
*/
export const forceBatchingMountItemsOnAndroid: Getter<boolean> = createNativeFlagGetter('forceBatchingMountItemsOnAndroid', false);
/**
* Flag determining if the React Native DevTools (Fusebox) CDP backend should be enabled in debug builds. This flag is global and should not be changed across React Host lifetimes.
*/

View File

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<d4297e2a804f238f538463d3d9af480a>>
* @generated SignedSource<<53510b80964a952f0fc4ed97a6d59386>>
* @flow strict
*/
@ -56,7 +56,6 @@ export interface Spec extends TurboModule {
+excludeYogaFromRawProps?: () => boolean;
+fixMappingOfEventPrioritiesBetweenFabricAndReact?: () => boolean;
+fixMountingCoordinatorReportedPendingTransactionsOnAndroid?: () => boolean;
+forceBatchingMountItemsOnAndroid?: () => boolean;
+fuseboxEnabledDebug?: () => boolean;
+fuseboxEnabledRelease?: () => boolean;
+initEagerTurboModulesOnNativeModulesQueueAndroid?: () => boolean;