mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Execute commands in order (#54074)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/54074 Currently, we dispatch view commands eagerly at the beginning of a batch. This behavior originated with https://github.com/facebook/react-native/commit/b54257c628b1a174a2c41960e7fc4d2d719ad731. However, this can make it difficult to allow developers to control mount item execution order. For example, someone may want to make sure a view command is processed *after* a particular mount item, and not exclusively rely on retryable command exceptions. This change sets up a feature flag to enable in-order execution of view command mount items. ## Changelog [Internal] Reviewed By: mdvacca, sammy-SC Differential Revision: D84061054 fbshipit-source-id: 7cb68c43823ed67f541f4e8f2d7471629609a905
This commit is contained in:
committed by
meta-codesync[bot]
parent
e3a5af6a99
commit
8cc9bbc892
+47
-32
@@ -43,7 +43,11 @@ internal class MountItemDispatcher(
|
||||
private var lastFrameTimeNanos: Long = 0L
|
||||
|
||||
fun addViewCommandMountItem(mountItem: DispatchCommandMountItem) {
|
||||
viewCommandMountItems.add(mountItem)
|
||||
if (!ReactNativeFeatureFlags.disableEarlyViewCommandExecution()) {
|
||||
viewCommandMountItems.add(mountItem)
|
||||
} else {
|
||||
mountItems.add(mountItem)
|
||||
}
|
||||
}
|
||||
|
||||
fun addMountItem(mountItem: MountItem) {
|
||||
@@ -147,13 +151,47 @@ internal class MountItemDispatcher(
|
||||
|
||||
itemDispatchListener.willMountItems(mountItemsToDispatch)
|
||||
|
||||
val dispatchViewCommand: (command: DispatchCommandMountItem) -> Unit = { command ->
|
||||
if (ReactNativeFeatureFlags.enableFabricLogs()) {
|
||||
printMountItem(command, "dispatchMountItems: Executing viewCommandMountItem")
|
||||
}
|
||||
try {
|
||||
executeOrEnqueue(command)
|
||||
} catch (e: RetryableMountingLayerException) {
|
||||
// If the exception is marked as Retryable, we retry the viewcommand exactly once, after
|
||||
// the current batch of mount items has finished executing.
|
||||
if (command.getRetries() == 0) {
|
||||
command.incrementRetries()
|
||||
addViewCommandMountItem(command)
|
||||
} else {
|
||||
// It's very common for commands to be executed on views that no longer exist - for
|
||||
// example, a blur event on TextInput being fired because of a navigation event away
|
||||
// from the current screen. If the exception is marked as Retryable, we log a soft
|
||||
// exception but never crash in debug.
|
||||
// It's not clear that logging this is even useful, because these events are very
|
||||
// common, mundane, and there's not much we can do about them currently.
|
||||
ReactSoftExceptionLogger.logSoftException(
|
||||
TAG,
|
||||
ReactNoCrashSoftException("Caught exception executing ViewCommand: $command", e),
|
||||
)
|
||||
}
|
||||
} catch (e: Throwable) {
|
||||
// Non-retryable exceptions are logged as soft exceptions in prod, but crash in Debug.
|
||||
ReactSoftExceptionLogger.logSoftException(
|
||||
TAG,
|
||||
RuntimeException("Caught exception executing ViewCommand: $command", e),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// As an optimization, execute all ViewCommands first
|
||||
// This should be:
|
||||
// 1) Performant: ViewCommands are often a replacement for SetNativeProps, which we've always
|
||||
// wanted to be as "synchronous" as possible.
|
||||
// 2) Safer: ViewCommands are inherently disconnected from the tree commit/diff/mount process.
|
||||
// JS imperatively queues these commands.
|
||||
// If JS has queued a command, it's reasonable to assume that the more time passes, the more
|
||||
// If JS has queued a command, it's reasonable to assume that the more time passes, the
|
||||
// more
|
||||
// likely it is that the view disappears.
|
||||
// Thus, by executing ViewCommands early, we should actually avoid a category of
|
||||
// errors/glitches.
|
||||
@@ -164,36 +202,7 @@ internal class MountItemDispatcher(
|
||||
)
|
||||
|
||||
for (command in commands) {
|
||||
if (ReactNativeFeatureFlags.enableFabricLogs()) {
|
||||
printMountItem(command, "dispatchMountItems: Executing viewCommandMountItem")
|
||||
}
|
||||
try {
|
||||
executeOrEnqueue(command)
|
||||
} catch (e: RetryableMountingLayerException) {
|
||||
// If the exception is marked as Retryable, we retry the viewcommand exactly once, after
|
||||
// the current batch of mount items has finished executing.
|
||||
if (command.getRetries() == 0) {
|
||||
command.incrementRetries()
|
||||
addViewCommandMountItem(command)
|
||||
} else {
|
||||
// It's very common for commands to be executed on views that no longer exist - for
|
||||
// example, a blur event on TextInput being fired because of a navigation event away
|
||||
// from the current screen. If the exception is marked as Retryable, we log a soft
|
||||
// exception but never crash in debug.
|
||||
// It's not clear that logging this is even useful, because these events are very
|
||||
// common, mundane, and there's not much we can do about them currently.
|
||||
ReactSoftExceptionLogger.logSoftException(
|
||||
TAG,
|
||||
ReactNoCrashSoftException("Caught exception executing ViewCommand: $command", e),
|
||||
)
|
||||
}
|
||||
} catch (e: Throwable) {
|
||||
// Non-retryable exceptions are logged as soft exceptions in prod, but crash in Debug.
|
||||
ReactSoftExceptionLogger.logSoftException(
|
||||
TAG,
|
||||
RuntimeException("Caught exception executing ViewCommand: $command", e),
|
||||
)
|
||||
}
|
||||
dispatchViewCommand(command)
|
||||
}
|
||||
|
||||
Systrace.endSection(Systrace.TRACE_TAG_REACT)
|
||||
@@ -227,6 +236,12 @@ internal class MountItemDispatcher(
|
||||
printMountItem(mountItem, "dispatchMountItems: Executing mountItem")
|
||||
}
|
||||
|
||||
val command = mountItem as? DispatchCommandMountItem
|
||||
if (command != null) {
|
||||
dispatchViewCommand(command)
|
||||
continue
|
||||
}
|
||||
|
||||
try {
|
||||
executeOrEnqueue(mountItem)
|
||||
} catch (e: Throwable) {
|
||||
|
||||
+7
-1
@@ -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<<4f9777b3b50f714214f9f0f86d5176f1>>
|
||||
* @generated SignedSource<<3fee7079eaa30dca86e3cb366cdd261e>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -54,6 +54,12 @@ public object ReactNativeFeatureFlags {
|
||||
@JvmStatic
|
||||
public fun cxxNativeAnimatedRemoveJsSync(): Boolean = accessor.cxxNativeAnimatedRemoveJsSync()
|
||||
|
||||
/**
|
||||
* Dispatch view commands in mount item order.
|
||||
*/
|
||||
@JvmStatic
|
||||
public fun disableEarlyViewCommandExecution(): Boolean = accessor.disableEarlyViewCommandExecution()
|
||||
|
||||
/**
|
||||
* Prevents use of Fabric commit in C++ Animated implementation
|
||||
*/
|
||||
|
||||
+11
-1
@@ -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<<7e45b713bab183402e93ee058ea7cb36>>
|
||||
* @generated SignedSource<<7ea729886da71d6d117442c83736fc5f>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -24,6 +24,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
||||
private var cdpInteractionMetricsEnabledCache: Boolean? = null
|
||||
private var cxxNativeAnimatedEnabledCache: Boolean? = null
|
||||
private var cxxNativeAnimatedRemoveJsSyncCache: Boolean? = null
|
||||
private var disableEarlyViewCommandExecutionCache: Boolean? = null
|
||||
private var disableFabricCommitInCXXAnimatedCache: Boolean? = null
|
||||
private var disableMountItemReorderingAndroidCache: Boolean? = null
|
||||
private var disableOldAndroidAttachmentMetricsWorkaroundsCache: Boolean? = null
|
||||
@@ -135,6 +136,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
||||
return cached
|
||||
}
|
||||
|
||||
override fun disableEarlyViewCommandExecution(): Boolean {
|
||||
var cached = disableEarlyViewCommandExecutionCache
|
||||
if (cached == null) {
|
||||
cached = ReactNativeFeatureFlagsCxxInterop.disableEarlyViewCommandExecution()
|
||||
disableEarlyViewCommandExecutionCache = cached
|
||||
}
|
||||
return cached
|
||||
}
|
||||
|
||||
override fun disableFabricCommitInCXXAnimated(): Boolean {
|
||||
var cached = disableFabricCommitInCXXAnimatedCache
|
||||
if (cached == null) {
|
||||
|
||||
+3
-1
@@ -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<<a8097e06e4ad0e329bd81fd6d23c031a>>
|
||||
* @generated SignedSource<<e72b92811e1f318291484d55f24f15b2>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -36,6 +36,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
||||
|
||||
@DoNotStrip @JvmStatic public external fun cxxNativeAnimatedRemoveJsSync(): Boolean
|
||||
|
||||
@DoNotStrip @JvmStatic public external fun disableEarlyViewCommandExecution(): Boolean
|
||||
|
||||
@DoNotStrip @JvmStatic public external fun disableFabricCommitInCXXAnimated(): Boolean
|
||||
|
||||
@DoNotStrip @JvmStatic public external fun disableMountItemReorderingAndroid(): Boolean
|
||||
|
||||
+3
-1
@@ -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<<c2e602217d9d88c23e958c8b73f22e5c>>
|
||||
* @generated SignedSource<<bd9b92174bcc46a6df01d0489b2aebc8>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -31,6 +31,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
||||
|
||||
override fun cxxNativeAnimatedRemoveJsSync(): Boolean = false
|
||||
|
||||
override fun disableEarlyViewCommandExecution(): Boolean = false
|
||||
|
||||
override fun disableFabricCommitInCXXAnimated(): Boolean = false
|
||||
|
||||
override fun disableMountItemReorderingAndroid(): Boolean = false
|
||||
|
||||
+12
-1
@@ -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<<f88ede5a21467165ef04b5d16d869d1f>>
|
||||
* @generated SignedSource<<226b5967122a840a4b6ac3fa41d3fb90>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -28,6 +28,7 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
||||
private var cdpInteractionMetricsEnabledCache: Boolean? = null
|
||||
private var cxxNativeAnimatedEnabledCache: Boolean? = null
|
||||
private var cxxNativeAnimatedRemoveJsSyncCache: Boolean? = null
|
||||
private var disableEarlyViewCommandExecutionCache: Boolean? = null
|
||||
private var disableFabricCommitInCXXAnimatedCache: Boolean? = null
|
||||
private var disableMountItemReorderingAndroidCache: Boolean? = null
|
||||
private var disableOldAndroidAttachmentMetricsWorkaroundsCache: Boolean? = null
|
||||
@@ -143,6 +144,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
||||
return cached
|
||||
}
|
||||
|
||||
override fun disableEarlyViewCommandExecution(): Boolean {
|
||||
var cached = disableEarlyViewCommandExecutionCache
|
||||
if (cached == null) {
|
||||
cached = currentProvider.disableEarlyViewCommandExecution()
|
||||
accessedFeatureFlags.add("disableEarlyViewCommandExecution")
|
||||
disableEarlyViewCommandExecutionCache = cached
|
||||
}
|
||||
return cached
|
||||
}
|
||||
|
||||
override fun disableFabricCommitInCXXAnimated(): Boolean {
|
||||
var cached = disableFabricCommitInCXXAnimatedCache
|
||||
if (cached == null) {
|
||||
|
||||
+3
-1
@@ -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<<aa0e9e5830b13c4b290dcae42b757a3a>>
|
||||
* @generated SignedSource<<bdb7047972cb5fe84dcc11ea6409e603>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -31,6 +31,8 @@ public interface ReactNativeFeatureFlagsProvider {
|
||||
|
||||
@DoNotStrip public fun cxxNativeAnimatedRemoveJsSync(): Boolean
|
||||
|
||||
@DoNotStrip public fun disableEarlyViewCommandExecution(): Boolean
|
||||
|
||||
@DoNotStrip public fun disableFabricCommitInCXXAnimated(): Boolean
|
||||
|
||||
@DoNotStrip public fun disableMountItemReorderingAndroid(): Boolean
|
||||
|
||||
+15
-1
@@ -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<<5cf0077264f7ceca6617dbe20bcc122f>>
|
||||
* @generated SignedSource<<bd78270ae3d4461c8f54a9bfb9fc8b20>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -63,6 +63,12 @@ class ReactNativeFeatureFlagsJavaProvider
|
||||
return method(javaProvider_);
|
||||
}
|
||||
|
||||
bool disableEarlyViewCommandExecution() override {
|
||||
static const auto method =
|
||||
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("disableEarlyViewCommandExecution");
|
||||
return method(javaProvider_);
|
||||
}
|
||||
|
||||
bool disableFabricCommitInCXXAnimated() override {
|
||||
static const auto method =
|
||||
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("disableFabricCommitInCXXAnimated");
|
||||
@@ -531,6 +537,11 @@ bool JReactNativeFeatureFlagsCxxInterop::cxxNativeAnimatedRemoveJsSync(
|
||||
return ReactNativeFeatureFlags::cxxNativeAnimatedRemoveJsSync();
|
||||
}
|
||||
|
||||
bool JReactNativeFeatureFlagsCxxInterop::disableEarlyViewCommandExecution(
|
||||
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
||||
return ReactNativeFeatureFlags::disableEarlyViewCommandExecution();
|
||||
}
|
||||
|
||||
bool JReactNativeFeatureFlagsCxxInterop::disableFabricCommitInCXXAnimated(
|
||||
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
||||
return ReactNativeFeatureFlags::disableFabricCommitInCXXAnimated();
|
||||
@@ -944,6 +955,9 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
||||
makeNativeMethod(
|
||||
"cxxNativeAnimatedRemoveJsSync",
|
||||
JReactNativeFeatureFlagsCxxInterop::cxxNativeAnimatedRemoveJsSync),
|
||||
makeNativeMethod(
|
||||
"disableEarlyViewCommandExecution",
|
||||
JReactNativeFeatureFlagsCxxInterop::disableEarlyViewCommandExecution),
|
||||
makeNativeMethod(
|
||||
"disableFabricCommitInCXXAnimated",
|
||||
JReactNativeFeatureFlagsCxxInterop::disableFabricCommitInCXXAnimated),
|
||||
|
||||
+4
-1
@@ -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<<04929fb70beb00c1f690bdb11703b322>>
|
||||
* @generated SignedSource<<d6f0bbc55218e36f040c04baa9eb6d8d>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -42,6 +42,9 @@ class JReactNativeFeatureFlagsCxxInterop
|
||||
static bool cxxNativeAnimatedRemoveJsSync(
|
||||
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
||||
|
||||
static bool disableEarlyViewCommandExecution(
|
||||
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
||||
|
||||
static bool disableFabricCommitInCXXAnimated(
|
||||
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
||||
|
||||
|
||||
@@ -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<<bbe47fc20b10610f0ef14e2d35406145>>
|
||||
* @generated SignedSource<<68811ae2e7fcb8b8b406097839f669dd>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -42,6 +42,10 @@ bool ReactNativeFeatureFlags::cxxNativeAnimatedRemoveJsSync() {
|
||||
return getAccessor().cxxNativeAnimatedRemoveJsSync();
|
||||
}
|
||||
|
||||
bool ReactNativeFeatureFlags::disableEarlyViewCommandExecution() {
|
||||
return getAccessor().disableEarlyViewCommandExecution();
|
||||
}
|
||||
|
||||
bool ReactNativeFeatureFlags::disableFabricCommitInCXXAnimated() {
|
||||
return getAccessor().disableFabricCommitInCXXAnimated();
|
||||
}
|
||||
|
||||
@@ -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<<72899a3f546792dd4c868c561f55c10f>>
|
||||
* @generated SignedSource<<93fb26b6c04daf8d35aec7bca867fa70>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -59,6 +59,11 @@ class ReactNativeFeatureFlags {
|
||||
*/
|
||||
RN_EXPORT static bool cxxNativeAnimatedRemoveJsSync();
|
||||
|
||||
/**
|
||||
* Dispatch view commands in mount item order.
|
||||
*/
|
||||
RN_EXPORT static bool disableEarlyViewCommandExecution();
|
||||
|
||||
/**
|
||||
* Prevents use of Fabric commit in C++ Animated implementation
|
||||
*/
|
||||
|
||||
+93
-75
@@ -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<<0e252b46c1225d8c1c99d996d660a91d>>
|
||||
* @generated SignedSource<<ef2223fbbb85ea118a10f1147ac0efd3>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -101,6 +101,24 @@ bool ReactNativeFeatureFlagsAccessor::cxxNativeAnimatedRemoveJsSync() {
|
||||
return flagValue.value();
|
||||
}
|
||||
|
||||
bool ReactNativeFeatureFlagsAccessor::disableEarlyViewCommandExecution() {
|
||||
auto flagValue = disableEarlyViewCommandExecution_.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(4, "disableEarlyViewCommandExecution");
|
||||
|
||||
flagValue = currentProvider_->disableEarlyViewCommandExecution();
|
||||
disableEarlyViewCommandExecution_ = flagValue;
|
||||
}
|
||||
|
||||
return flagValue.value();
|
||||
}
|
||||
|
||||
bool ReactNativeFeatureFlagsAccessor::disableFabricCommitInCXXAnimated() {
|
||||
auto flagValue = disableFabricCommitInCXXAnimated_.load();
|
||||
|
||||
@@ -110,7 +128,7 @@ bool ReactNativeFeatureFlagsAccessor::disableFabricCommitInCXXAnimated() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(4, "disableFabricCommitInCXXAnimated");
|
||||
markFlagAsAccessed(5, "disableFabricCommitInCXXAnimated");
|
||||
|
||||
flagValue = currentProvider_->disableFabricCommitInCXXAnimated();
|
||||
disableFabricCommitInCXXAnimated_ = flagValue;
|
||||
@@ -128,7 +146,7 @@ bool ReactNativeFeatureFlagsAccessor::disableMountItemReorderingAndroid() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(5, "disableMountItemReorderingAndroid");
|
||||
markFlagAsAccessed(6, "disableMountItemReorderingAndroid");
|
||||
|
||||
flagValue = currentProvider_->disableMountItemReorderingAndroid();
|
||||
disableMountItemReorderingAndroid_ = flagValue;
|
||||
@@ -146,7 +164,7 @@ bool ReactNativeFeatureFlagsAccessor::disableOldAndroidAttachmentMetricsWorkarou
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(6, "disableOldAndroidAttachmentMetricsWorkarounds");
|
||||
markFlagAsAccessed(7, "disableOldAndroidAttachmentMetricsWorkarounds");
|
||||
|
||||
flagValue = currentProvider_->disableOldAndroidAttachmentMetricsWorkarounds();
|
||||
disableOldAndroidAttachmentMetricsWorkarounds_ = flagValue;
|
||||
@@ -164,7 +182,7 @@ bool ReactNativeFeatureFlagsAccessor::disableTextLayoutManagerCacheAndroid() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(7, "disableTextLayoutManagerCacheAndroid");
|
||||
markFlagAsAccessed(8, "disableTextLayoutManagerCacheAndroid");
|
||||
|
||||
flagValue = currentProvider_->disableTextLayoutManagerCacheAndroid();
|
||||
disableTextLayoutManagerCacheAndroid_ = flagValue;
|
||||
@@ -182,7 +200,7 @@ bool ReactNativeFeatureFlagsAccessor::enableAccessibilityOrder() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(8, "enableAccessibilityOrder");
|
||||
markFlagAsAccessed(9, "enableAccessibilityOrder");
|
||||
|
||||
flagValue = currentProvider_->enableAccessibilityOrder();
|
||||
enableAccessibilityOrder_ = flagValue;
|
||||
@@ -200,7 +218,7 @@ bool ReactNativeFeatureFlagsAccessor::enableAccumulatedUpdatesInRawPropsAndroid(
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(9, "enableAccumulatedUpdatesInRawPropsAndroid");
|
||||
markFlagAsAccessed(10, "enableAccumulatedUpdatesInRawPropsAndroid");
|
||||
|
||||
flagValue = currentProvider_->enableAccumulatedUpdatesInRawPropsAndroid();
|
||||
enableAccumulatedUpdatesInRawPropsAndroid_ = flagValue;
|
||||
@@ -218,7 +236,7 @@ bool ReactNativeFeatureFlagsAccessor::enableAndroidLinearText() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(10, "enableAndroidLinearText");
|
||||
markFlagAsAccessed(11, "enableAndroidLinearText");
|
||||
|
||||
flagValue = currentProvider_->enableAndroidLinearText();
|
||||
enableAndroidLinearText_ = flagValue;
|
||||
@@ -236,7 +254,7 @@ bool ReactNativeFeatureFlagsAccessor::enableAndroidTextMeasurementOptimizations(
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(11, "enableAndroidTextMeasurementOptimizations");
|
||||
markFlagAsAccessed(12, "enableAndroidTextMeasurementOptimizations");
|
||||
|
||||
flagValue = currentProvider_->enableAndroidTextMeasurementOptimizations();
|
||||
enableAndroidTextMeasurementOptimizations_ = flagValue;
|
||||
@@ -254,7 +272,7 @@ bool ReactNativeFeatureFlagsAccessor::enableBridgelessArchitecture() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(12, "enableBridgelessArchitecture");
|
||||
markFlagAsAccessed(13, "enableBridgelessArchitecture");
|
||||
|
||||
flagValue = currentProvider_->enableBridgelessArchitecture();
|
||||
enableBridgelessArchitecture_ = flagValue;
|
||||
@@ -272,7 +290,7 @@ bool ReactNativeFeatureFlagsAccessor::enableCppPropsIteratorSetter() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(13, "enableCppPropsIteratorSetter");
|
||||
markFlagAsAccessed(14, "enableCppPropsIteratorSetter");
|
||||
|
||||
flagValue = currentProvider_->enableCppPropsIteratorSetter();
|
||||
enableCppPropsIteratorSetter_ = flagValue;
|
||||
@@ -290,7 +308,7 @@ bool ReactNativeFeatureFlagsAccessor::enableCustomFocusSearchOnClippedElementsAn
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(14, "enableCustomFocusSearchOnClippedElementsAndroid");
|
||||
markFlagAsAccessed(15, "enableCustomFocusSearchOnClippedElementsAndroid");
|
||||
|
||||
flagValue = currentProvider_->enableCustomFocusSearchOnClippedElementsAndroid();
|
||||
enableCustomFocusSearchOnClippedElementsAndroid_ = flagValue;
|
||||
@@ -308,7 +326,7 @@ bool ReactNativeFeatureFlagsAccessor::enableDestroyShadowTreeRevisionAsync() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(15, "enableDestroyShadowTreeRevisionAsync");
|
||||
markFlagAsAccessed(16, "enableDestroyShadowTreeRevisionAsync");
|
||||
|
||||
flagValue = currentProvider_->enableDestroyShadowTreeRevisionAsync();
|
||||
enableDestroyShadowTreeRevisionAsync_ = flagValue;
|
||||
@@ -326,7 +344,7 @@ bool ReactNativeFeatureFlagsAccessor::enableDoubleMeasurementFixAndroid() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(16, "enableDoubleMeasurementFixAndroid");
|
||||
markFlagAsAccessed(17, "enableDoubleMeasurementFixAndroid");
|
||||
|
||||
flagValue = currentProvider_->enableDoubleMeasurementFixAndroid();
|
||||
enableDoubleMeasurementFixAndroid_ = flagValue;
|
||||
@@ -344,7 +362,7 @@ bool ReactNativeFeatureFlagsAccessor::enableEagerMainQueueModulesOnIOS() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(17, "enableEagerMainQueueModulesOnIOS");
|
||||
markFlagAsAccessed(18, "enableEagerMainQueueModulesOnIOS");
|
||||
|
||||
flagValue = currentProvider_->enableEagerMainQueueModulesOnIOS();
|
||||
enableEagerMainQueueModulesOnIOS_ = flagValue;
|
||||
@@ -362,7 +380,7 @@ bool ReactNativeFeatureFlagsAccessor::enableEagerRootViewAttachment() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(18, "enableEagerRootViewAttachment");
|
||||
markFlagAsAccessed(19, "enableEagerRootViewAttachment");
|
||||
|
||||
flagValue = currentProvider_->enableEagerRootViewAttachment();
|
||||
enableEagerRootViewAttachment_ = flagValue;
|
||||
@@ -380,7 +398,7 @@ bool ReactNativeFeatureFlagsAccessor::enableFabricLogs() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(19, "enableFabricLogs");
|
||||
markFlagAsAccessed(20, "enableFabricLogs");
|
||||
|
||||
flagValue = currentProvider_->enableFabricLogs();
|
||||
enableFabricLogs_ = flagValue;
|
||||
@@ -398,7 +416,7 @@ bool ReactNativeFeatureFlagsAccessor::enableFabricRenderer() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(20, "enableFabricRenderer");
|
||||
markFlagAsAccessed(21, "enableFabricRenderer");
|
||||
|
||||
flagValue = currentProvider_->enableFabricRenderer();
|
||||
enableFabricRenderer_ = flagValue;
|
||||
@@ -416,7 +434,7 @@ bool ReactNativeFeatureFlagsAccessor::enableFontScaleChangesUpdatingLayout() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(21, "enableFontScaleChangesUpdatingLayout");
|
||||
markFlagAsAccessed(22, "enableFontScaleChangesUpdatingLayout");
|
||||
|
||||
flagValue = currentProvider_->enableFontScaleChangesUpdatingLayout();
|
||||
enableFontScaleChangesUpdatingLayout_ = flagValue;
|
||||
@@ -434,7 +452,7 @@ bool ReactNativeFeatureFlagsAccessor::enableIOSTextBaselineOffsetPerLine() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(22, "enableIOSTextBaselineOffsetPerLine");
|
||||
markFlagAsAccessed(23, "enableIOSTextBaselineOffsetPerLine");
|
||||
|
||||
flagValue = currentProvider_->enableIOSTextBaselineOffsetPerLine();
|
||||
enableIOSTextBaselineOffsetPerLine_ = flagValue;
|
||||
@@ -452,7 +470,7 @@ bool ReactNativeFeatureFlagsAccessor::enableIOSViewClipToPaddingBox() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(23, "enableIOSViewClipToPaddingBox");
|
||||
markFlagAsAccessed(24, "enableIOSViewClipToPaddingBox");
|
||||
|
||||
flagValue = currentProvider_->enableIOSViewClipToPaddingBox();
|
||||
enableIOSViewClipToPaddingBox_ = flagValue;
|
||||
@@ -470,7 +488,7 @@ bool ReactNativeFeatureFlagsAccessor::enableImagePrefetchingAndroid() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(24, "enableImagePrefetchingAndroid");
|
||||
markFlagAsAccessed(25, "enableImagePrefetchingAndroid");
|
||||
|
||||
flagValue = currentProvider_->enableImagePrefetchingAndroid();
|
||||
enableImagePrefetchingAndroid_ = flagValue;
|
||||
@@ -488,7 +506,7 @@ bool ReactNativeFeatureFlagsAccessor::enableImagePrefetchingJNIBatchingAndroid()
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(25, "enableImagePrefetchingJNIBatchingAndroid");
|
||||
markFlagAsAccessed(26, "enableImagePrefetchingJNIBatchingAndroid");
|
||||
|
||||
flagValue = currentProvider_->enableImagePrefetchingJNIBatchingAndroid();
|
||||
enableImagePrefetchingJNIBatchingAndroid_ = flagValue;
|
||||
@@ -506,7 +524,7 @@ bool ReactNativeFeatureFlagsAccessor::enableImagePrefetchingOnUiThreadAndroid()
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(26, "enableImagePrefetchingOnUiThreadAndroid");
|
||||
markFlagAsAccessed(27, "enableImagePrefetchingOnUiThreadAndroid");
|
||||
|
||||
flagValue = currentProvider_->enableImagePrefetchingOnUiThreadAndroid();
|
||||
enableImagePrefetchingOnUiThreadAndroid_ = flagValue;
|
||||
@@ -524,7 +542,7 @@ bool ReactNativeFeatureFlagsAccessor::enableImmediateUpdateModeForContentOffsetC
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(27, "enableImmediateUpdateModeForContentOffsetChanges");
|
||||
markFlagAsAccessed(28, "enableImmediateUpdateModeForContentOffsetChanges");
|
||||
|
||||
flagValue = currentProvider_->enableImmediateUpdateModeForContentOffsetChanges();
|
||||
enableImmediateUpdateModeForContentOffsetChanges_ = flagValue;
|
||||
@@ -542,7 +560,7 @@ bool ReactNativeFeatureFlagsAccessor::enableImperativeFocus() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(28, "enableImperativeFocus");
|
||||
markFlagAsAccessed(29, "enableImperativeFocus");
|
||||
|
||||
flagValue = currentProvider_->enableImperativeFocus();
|
||||
enableImperativeFocus_ = flagValue;
|
||||
@@ -560,7 +578,7 @@ bool ReactNativeFeatureFlagsAccessor::enableInteropViewManagerClassLookUpOptimiz
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(29, "enableInteropViewManagerClassLookUpOptimizationIOS");
|
||||
markFlagAsAccessed(30, "enableInteropViewManagerClassLookUpOptimizationIOS");
|
||||
|
||||
flagValue = currentProvider_->enableInteropViewManagerClassLookUpOptimizationIOS();
|
||||
enableInteropViewManagerClassLookUpOptimizationIOS_ = flagValue;
|
||||
@@ -578,7 +596,7 @@ bool ReactNativeFeatureFlagsAccessor::enableLayoutAnimationsOnAndroid() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(30, "enableLayoutAnimationsOnAndroid");
|
||||
markFlagAsAccessed(31, "enableLayoutAnimationsOnAndroid");
|
||||
|
||||
flagValue = currentProvider_->enableLayoutAnimationsOnAndroid();
|
||||
enableLayoutAnimationsOnAndroid_ = flagValue;
|
||||
@@ -596,7 +614,7 @@ bool ReactNativeFeatureFlagsAccessor::enableLayoutAnimationsOnIOS() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(31, "enableLayoutAnimationsOnIOS");
|
||||
markFlagAsAccessed(32, "enableLayoutAnimationsOnIOS");
|
||||
|
||||
flagValue = currentProvider_->enableLayoutAnimationsOnIOS();
|
||||
enableLayoutAnimationsOnIOS_ = flagValue;
|
||||
@@ -614,7 +632,7 @@ bool ReactNativeFeatureFlagsAccessor::enableMainQueueCoordinatorOnIOS() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(32, "enableMainQueueCoordinatorOnIOS");
|
||||
markFlagAsAccessed(33, "enableMainQueueCoordinatorOnIOS");
|
||||
|
||||
flagValue = currentProvider_->enableMainQueueCoordinatorOnIOS();
|
||||
enableMainQueueCoordinatorOnIOS_ = flagValue;
|
||||
@@ -632,7 +650,7 @@ bool ReactNativeFeatureFlagsAccessor::enableModuleArgumentNSNullConversionIOS()
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(33, "enableModuleArgumentNSNullConversionIOS");
|
||||
markFlagAsAccessed(34, "enableModuleArgumentNSNullConversionIOS");
|
||||
|
||||
flagValue = currentProvider_->enableModuleArgumentNSNullConversionIOS();
|
||||
enableModuleArgumentNSNullConversionIOS_ = flagValue;
|
||||
@@ -650,7 +668,7 @@ bool ReactNativeFeatureFlagsAccessor::enableNativeCSSParsing() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(34, "enableNativeCSSParsing");
|
||||
markFlagAsAccessed(35, "enableNativeCSSParsing");
|
||||
|
||||
flagValue = currentProvider_->enableNativeCSSParsing();
|
||||
enableNativeCSSParsing_ = flagValue;
|
||||
@@ -668,7 +686,7 @@ bool ReactNativeFeatureFlagsAccessor::enableNetworkEventReporting() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(35, "enableNetworkEventReporting");
|
||||
markFlagAsAccessed(36, "enableNetworkEventReporting");
|
||||
|
||||
flagValue = currentProvider_->enableNetworkEventReporting();
|
||||
enableNetworkEventReporting_ = flagValue;
|
||||
@@ -686,7 +704,7 @@ bool ReactNativeFeatureFlagsAccessor::enablePreparedTextLayout() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(36, "enablePreparedTextLayout");
|
||||
markFlagAsAccessed(37, "enablePreparedTextLayout");
|
||||
|
||||
flagValue = currentProvider_->enablePreparedTextLayout();
|
||||
enablePreparedTextLayout_ = flagValue;
|
||||
@@ -704,7 +722,7 @@ bool ReactNativeFeatureFlagsAccessor::enablePropsUpdateReconciliationAndroid() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(37, "enablePropsUpdateReconciliationAndroid");
|
||||
markFlagAsAccessed(38, "enablePropsUpdateReconciliationAndroid");
|
||||
|
||||
flagValue = currentProvider_->enablePropsUpdateReconciliationAndroid();
|
||||
enablePropsUpdateReconciliationAndroid_ = flagValue;
|
||||
@@ -722,7 +740,7 @@ bool ReactNativeFeatureFlagsAccessor::enableResourceTimingAPI() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(38, "enableResourceTimingAPI");
|
||||
markFlagAsAccessed(39, "enableResourceTimingAPI");
|
||||
|
||||
flagValue = currentProvider_->enableResourceTimingAPI();
|
||||
enableResourceTimingAPI_ = flagValue;
|
||||
@@ -740,7 +758,7 @@ bool ReactNativeFeatureFlagsAccessor::enableSwiftUIBasedFilters() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(39, "enableSwiftUIBasedFilters");
|
||||
markFlagAsAccessed(40, "enableSwiftUIBasedFilters");
|
||||
|
||||
flagValue = currentProvider_->enableSwiftUIBasedFilters();
|
||||
enableSwiftUIBasedFilters_ = flagValue;
|
||||
@@ -758,7 +776,7 @@ bool ReactNativeFeatureFlagsAccessor::enableViewCulling() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(40, "enableViewCulling");
|
||||
markFlagAsAccessed(41, "enableViewCulling");
|
||||
|
||||
flagValue = currentProvider_->enableViewCulling();
|
||||
enableViewCulling_ = flagValue;
|
||||
@@ -776,7 +794,7 @@ bool ReactNativeFeatureFlagsAccessor::enableViewRecycling() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(41, "enableViewRecycling");
|
||||
markFlagAsAccessed(42, "enableViewRecycling");
|
||||
|
||||
flagValue = currentProvider_->enableViewRecycling();
|
||||
enableViewRecycling_ = flagValue;
|
||||
@@ -794,7 +812,7 @@ bool ReactNativeFeatureFlagsAccessor::enableViewRecyclingForImage() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(42, "enableViewRecyclingForImage");
|
||||
markFlagAsAccessed(43, "enableViewRecyclingForImage");
|
||||
|
||||
flagValue = currentProvider_->enableViewRecyclingForImage();
|
||||
enableViewRecyclingForImage_ = flagValue;
|
||||
@@ -812,7 +830,7 @@ bool ReactNativeFeatureFlagsAccessor::enableViewRecyclingForScrollView() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(43, "enableViewRecyclingForScrollView");
|
||||
markFlagAsAccessed(44, "enableViewRecyclingForScrollView");
|
||||
|
||||
flagValue = currentProvider_->enableViewRecyclingForScrollView();
|
||||
enableViewRecyclingForScrollView_ = flagValue;
|
||||
@@ -830,7 +848,7 @@ bool ReactNativeFeatureFlagsAccessor::enableViewRecyclingForText() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(44, "enableViewRecyclingForText");
|
||||
markFlagAsAccessed(45, "enableViewRecyclingForText");
|
||||
|
||||
flagValue = currentProvider_->enableViewRecyclingForText();
|
||||
enableViewRecyclingForText_ = flagValue;
|
||||
@@ -848,7 +866,7 @@ bool ReactNativeFeatureFlagsAccessor::enableViewRecyclingForView() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(45, "enableViewRecyclingForView");
|
||||
markFlagAsAccessed(46, "enableViewRecyclingForView");
|
||||
|
||||
flagValue = currentProvider_->enableViewRecyclingForView();
|
||||
enableViewRecyclingForView_ = flagValue;
|
||||
@@ -866,7 +884,7 @@ bool ReactNativeFeatureFlagsAccessor::enableVirtualViewDebugFeatures() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(46, "enableVirtualViewDebugFeatures");
|
||||
markFlagAsAccessed(47, "enableVirtualViewDebugFeatures");
|
||||
|
||||
flagValue = currentProvider_->enableVirtualViewDebugFeatures();
|
||||
enableVirtualViewDebugFeatures_ = flagValue;
|
||||
@@ -884,7 +902,7 @@ bool ReactNativeFeatureFlagsAccessor::enableVirtualViewRenderState() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(47, "enableVirtualViewRenderState");
|
||||
markFlagAsAccessed(48, "enableVirtualViewRenderState");
|
||||
|
||||
flagValue = currentProvider_->enableVirtualViewRenderState();
|
||||
enableVirtualViewRenderState_ = flagValue;
|
||||
@@ -902,7 +920,7 @@ bool ReactNativeFeatureFlagsAccessor::enableVirtualViewWindowFocusDetection() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(48, "enableVirtualViewWindowFocusDetection");
|
||||
markFlagAsAccessed(49, "enableVirtualViewWindowFocusDetection");
|
||||
|
||||
flagValue = currentProvider_->enableVirtualViewWindowFocusDetection();
|
||||
enableVirtualViewWindowFocusDetection_ = flagValue;
|
||||
@@ -920,7 +938,7 @@ bool ReactNativeFeatureFlagsAccessor::enableWebPerformanceAPIsByDefault() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(49, "enableWebPerformanceAPIsByDefault");
|
||||
markFlagAsAccessed(50, "enableWebPerformanceAPIsByDefault");
|
||||
|
||||
flagValue = currentProvider_->enableWebPerformanceAPIsByDefault();
|
||||
enableWebPerformanceAPIsByDefault_ = flagValue;
|
||||
@@ -938,7 +956,7 @@ bool ReactNativeFeatureFlagsAccessor::fixMappingOfEventPrioritiesBetweenFabricAn
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(50, "fixMappingOfEventPrioritiesBetweenFabricAndReact");
|
||||
markFlagAsAccessed(51, "fixMappingOfEventPrioritiesBetweenFabricAndReact");
|
||||
|
||||
flagValue = currentProvider_->fixMappingOfEventPrioritiesBetweenFabricAndReact();
|
||||
fixMappingOfEventPrioritiesBetweenFabricAndReact_ = flagValue;
|
||||
@@ -956,7 +974,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(51, "fuseboxEnabledRelease");
|
||||
markFlagAsAccessed(52, "fuseboxEnabledRelease");
|
||||
|
||||
flagValue = currentProvider_->fuseboxEnabledRelease();
|
||||
fuseboxEnabledRelease_ = flagValue;
|
||||
@@ -974,7 +992,7 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxNetworkInspectionEnabled() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(52, "fuseboxNetworkInspectionEnabled");
|
||||
markFlagAsAccessed(53, "fuseboxNetworkInspectionEnabled");
|
||||
|
||||
flagValue = currentProvider_->fuseboxNetworkInspectionEnabled();
|
||||
fuseboxNetworkInspectionEnabled_ = flagValue;
|
||||
@@ -992,7 +1010,7 @@ bool ReactNativeFeatureFlagsAccessor::hideOffscreenVirtualViewsOnIOS() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(53, "hideOffscreenVirtualViewsOnIOS");
|
||||
markFlagAsAccessed(54, "hideOffscreenVirtualViewsOnIOS");
|
||||
|
||||
flagValue = currentProvider_->hideOffscreenVirtualViewsOnIOS();
|
||||
hideOffscreenVirtualViewsOnIOS_ = flagValue;
|
||||
@@ -1010,7 +1028,7 @@ bool ReactNativeFeatureFlagsAccessor::overrideBySynchronousMountPropsAtMountingA
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(54, "overrideBySynchronousMountPropsAtMountingAndroid");
|
||||
markFlagAsAccessed(55, "overrideBySynchronousMountPropsAtMountingAndroid");
|
||||
|
||||
flagValue = currentProvider_->overrideBySynchronousMountPropsAtMountingAndroid();
|
||||
overrideBySynchronousMountPropsAtMountingAndroid_ = flagValue;
|
||||
@@ -1028,7 +1046,7 @@ bool ReactNativeFeatureFlagsAccessor::perfMonitorV2Enabled() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(55, "perfMonitorV2Enabled");
|
||||
markFlagAsAccessed(56, "perfMonitorV2Enabled");
|
||||
|
||||
flagValue = currentProvider_->perfMonitorV2Enabled();
|
||||
perfMonitorV2Enabled_ = flagValue;
|
||||
@@ -1046,7 +1064,7 @@ double ReactNativeFeatureFlagsAccessor::preparedTextCacheSize() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(56, "preparedTextCacheSize");
|
||||
markFlagAsAccessed(57, "preparedTextCacheSize");
|
||||
|
||||
flagValue = currentProvider_->preparedTextCacheSize();
|
||||
preparedTextCacheSize_ = flagValue;
|
||||
@@ -1064,7 +1082,7 @@ bool ReactNativeFeatureFlagsAccessor::preventShadowTreeCommitExhaustion() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(57, "preventShadowTreeCommitExhaustion");
|
||||
markFlagAsAccessed(58, "preventShadowTreeCommitExhaustion");
|
||||
|
||||
flagValue = currentProvider_->preventShadowTreeCommitExhaustion();
|
||||
preventShadowTreeCommitExhaustion_ = flagValue;
|
||||
@@ -1082,7 +1100,7 @@ bool ReactNativeFeatureFlagsAccessor::shouldPressibilityUseW3CPointerEventsForHo
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(58, "shouldPressibilityUseW3CPointerEventsForHover");
|
||||
markFlagAsAccessed(59, "shouldPressibilityUseW3CPointerEventsForHover");
|
||||
|
||||
flagValue = currentProvider_->shouldPressibilityUseW3CPointerEventsForHover();
|
||||
shouldPressibilityUseW3CPointerEventsForHover_ = flagValue;
|
||||
@@ -1100,7 +1118,7 @@ bool ReactNativeFeatureFlagsAccessor::shouldTriggerResponderTransferOnScrollAndr
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(59, "shouldTriggerResponderTransferOnScrollAndroid");
|
||||
markFlagAsAccessed(60, "shouldTriggerResponderTransferOnScrollAndroid");
|
||||
|
||||
flagValue = currentProvider_->shouldTriggerResponderTransferOnScrollAndroid();
|
||||
shouldTriggerResponderTransferOnScrollAndroid_ = flagValue;
|
||||
@@ -1118,7 +1136,7 @@ bool ReactNativeFeatureFlagsAccessor::skipActivityIdentityAssertionOnHostPause()
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(60, "skipActivityIdentityAssertionOnHostPause");
|
||||
markFlagAsAccessed(61, "skipActivityIdentityAssertionOnHostPause");
|
||||
|
||||
flagValue = currentProvider_->skipActivityIdentityAssertionOnHostPause();
|
||||
skipActivityIdentityAssertionOnHostPause_ = flagValue;
|
||||
@@ -1136,7 +1154,7 @@ bool ReactNativeFeatureFlagsAccessor::sweepActiveTouchOnChildNativeGesturesAndro
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(61, "sweepActiveTouchOnChildNativeGesturesAndroid");
|
||||
markFlagAsAccessed(62, "sweepActiveTouchOnChildNativeGesturesAndroid");
|
||||
|
||||
flagValue = currentProvider_->sweepActiveTouchOnChildNativeGesturesAndroid();
|
||||
sweepActiveTouchOnChildNativeGesturesAndroid_ = flagValue;
|
||||
@@ -1154,7 +1172,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(62, "traceTurboModulePromiseRejectionsOnAndroid");
|
||||
markFlagAsAccessed(63, "traceTurboModulePromiseRejectionsOnAndroid");
|
||||
|
||||
flagValue = currentProvider_->traceTurboModulePromiseRejectionsOnAndroid();
|
||||
traceTurboModulePromiseRejectionsOnAndroid_ = flagValue;
|
||||
@@ -1172,7 +1190,7 @@ bool ReactNativeFeatureFlagsAccessor::updateRuntimeShadowNodeReferencesOnCommit(
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(63, "updateRuntimeShadowNodeReferencesOnCommit");
|
||||
markFlagAsAccessed(64, "updateRuntimeShadowNodeReferencesOnCommit");
|
||||
|
||||
flagValue = currentProvider_->updateRuntimeShadowNodeReferencesOnCommit();
|
||||
updateRuntimeShadowNodeReferencesOnCommit_ = flagValue;
|
||||
@@ -1190,7 +1208,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(64, "useAlwaysAvailableJSErrorHandling");
|
||||
markFlagAsAccessed(65, "useAlwaysAvailableJSErrorHandling");
|
||||
|
||||
flagValue = currentProvider_->useAlwaysAvailableJSErrorHandling();
|
||||
useAlwaysAvailableJSErrorHandling_ = flagValue;
|
||||
@@ -1208,7 +1226,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(65, "useFabricInterop");
|
||||
markFlagAsAccessed(66, "useFabricInterop");
|
||||
|
||||
flagValue = currentProvider_->useFabricInterop();
|
||||
useFabricInterop_ = flagValue;
|
||||
@@ -1226,7 +1244,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeEqualsInNativeReadableArrayAndroi
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(66, "useNativeEqualsInNativeReadableArrayAndroid");
|
||||
markFlagAsAccessed(67, "useNativeEqualsInNativeReadableArrayAndroid");
|
||||
|
||||
flagValue = currentProvider_->useNativeEqualsInNativeReadableArrayAndroid();
|
||||
useNativeEqualsInNativeReadableArrayAndroid_ = flagValue;
|
||||
@@ -1244,7 +1262,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeTransformHelperAndroid() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(67, "useNativeTransformHelperAndroid");
|
||||
markFlagAsAccessed(68, "useNativeTransformHelperAndroid");
|
||||
|
||||
flagValue = currentProvider_->useNativeTransformHelperAndroid();
|
||||
useNativeTransformHelperAndroid_ = flagValue;
|
||||
@@ -1262,7 +1280,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(68, "useNativeViewConfigsInBridgelessMode");
|
||||
markFlagAsAccessed(69, "useNativeViewConfigsInBridgelessMode");
|
||||
|
||||
flagValue = currentProvider_->useNativeViewConfigsInBridgelessMode();
|
||||
useNativeViewConfigsInBridgelessMode_ = flagValue;
|
||||
@@ -1280,7 +1298,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(69, "useOptimizedEventBatchingOnAndroid");
|
||||
markFlagAsAccessed(70, "useOptimizedEventBatchingOnAndroid");
|
||||
|
||||
flagValue = currentProvider_->useOptimizedEventBatchingOnAndroid();
|
||||
useOptimizedEventBatchingOnAndroid_ = flagValue;
|
||||
@@ -1298,7 +1316,7 @@ bool ReactNativeFeatureFlagsAccessor::useRawPropsJsiValue() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(70, "useRawPropsJsiValue");
|
||||
markFlagAsAccessed(71, "useRawPropsJsiValue");
|
||||
|
||||
flagValue = currentProvider_->useRawPropsJsiValue();
|
||||
useRawPropsJsiValue_ = flagValue;
|
||||
@@ -1316,7 +1334,7 @@ bool ReactNativeFeatureFlagsAccessor::useShadowNodeStateOnClone() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(71, "useShadowNodeStateOnClone");
|
||||
markFlagAsAccessed(72, "useShadowNodeStateOnClone");
|
||||
|
||||
flagValue = currentProvider_->useShadowNodeStateOnClone();
|
||||
useShadowNodeStateOnClone_ = flagValue;
|
||||
@@ -1334,7 +1352,7 @@ bool ReactNativeFeatureFlagsAccessor::useSharedAnimatedBackend() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(72, "useSharedAnimatedBackend");
|
||||
markFlagAsAccessed(73, "useSharedAnimatedBackend");
|
||||
|
||||
flagValue = currentProvider_->useSharedAnimatedBackend();
|
||||
useSharedAnimatedBackend_ = flagValue;
|
||||
@@ -1352,7 +1370,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(73, "useTurboModuleInterop");
|
||||
markFlagAsAccessed(74, "useTurboModuleInterop");
|
||||
|
||||
flagValue = currentProvider_->useTurboModuleInterop();
|
||||
useTurboModuleInterop_ = flagValue;
|
||||
@@ -1370,7 +1388,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(74, "useTurboModules");
|
||||
markFlagAsAccessed(75, "useTurboModules");
|
||||
|
||||
flagValue = currentProvider_->useTurboModules();
|
||||
useTurboModules_ = flagValue;
|
||||
@@ -1388,7 +1406,7 @@ double ReactNativeFeatureFlagsAccessor::viewCullingOutsetRatio() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(75, "viewCullingOutsetRatio");
|
||||
markFlagAsAccessed(76, "viewCullingOutsetRatio");
|
||||
|
||||
flagValue = currentProvider_->viewCullingOutsetRatio();
|
||||
viewCullingOutsetRatio_ = flagValue;
|
||||
@@ -1406,7 +1424,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewHysteresisRatio() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(76, "virtualViewHysteresisRatio");
|
||||
markFlagAsAccessed(77, "virtualViewHysteresisRatio");
|
||||
|
||||
flagValue = currentProvider_->virtualViewHysteresisRatio();
|
||||
virtualViewHysteresisRatio_ = flagValue;
|
||||
@@ -1424,7 +1442,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewPrerenderRatio() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(77, "virtualViewPrerenderRatio");
|
||||
markFlagAsAccessed(78, "virtualViewPrerenderRatio");
|
||||
|
||||
flagValue = currentProvider_->virtualViewPrerenderRatio();
|
||||
virtualViewPrerenderRatio_ = flagValue;
|
||||
|
||||
+4
-2
@@ -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<<bcde814c241c3f812b6e2236fc3b54c6>>
|
||||
* @generated SignedSource<<aa2b0b9525391749b1e4fe5c20021919>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -36,6 +36,7 @@ class ReactNativeFeatureFlagsAccessor {
|
||||
bool cdpInteractionMetricsEnabled();
|
||||
bool cxxNativeAnimatedEnabled();
|
||||
bool cxxNativeAnimatedRemoveJsSync();
|
||||
bool disableEarlyViewCommandExecution();
|
||||
bool disableFabricCommitInCXXAnimated();
|
||||
bool disableMountItemReorderingAndroid();
|
||||
bool disableOldAndroidAttachmentMetricsWorkarounds();
|
||||
@@ -121,12 +122,13 @@ class ReactNativeFeatureFlagsAccessor {
|
||||
std::unique_ptr<ReactNativeFeatureFlagsProvider> currentProvider_;
|
||||
bool wasOverridden_;
|
||||
|
||||
std::array<std::atomic<const char*>, 78> accessedFeatureFlags_;
|
||||
std::array<std::atomic<const char*>, 79> accessedFeatureFlags_;
|
||||
|
||||
std::atomic<std::optional<bool>> commonTestFlag_;
|
||||
std::atomic<std::optional<bool>> cdpInteractionMetricsEnabled_;
|
||||
std::atomic<std::optional<bool>> cxxNativeAnimatedEnabled_;
|
||||
std::atomic<std::optional<bool>> cxxNativeAnimatedRemoveJsSync_;
|
||||
std::atomic<std::optional<bool>> disableEarlyViewCommandExecution_;
|
||||
std::atomic<std::optional<bool>> disableFabricCommitInCXXAnimated_;
|
||||
std::atomic<std::optional<bool>> disableMountItemReorderingAndroid_;
|
||||
std::atomic<std::optional<bool>> disableOldAndroidAttachmentMetricsWorkarounds_;
|
||||
|
||||
+5
-1
@@ -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<<fba3413749da30b1175e003102018398>>
|
||||
* @generated SignedSource<<3ddb240bc600ff3cfa0cfe5896c59b23>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -43,6 +43,10 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool disableEarlyViewCommandExecution() override {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool disableFabricCommitInCXXAnimated() override {
|
||||
return false;
|
||||
}
|
||||
|
||||
+10
-1
@@ -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<<5759dee54e04c91401a3ece5b899a7f1>>
|
||||
* @generated SignedSource<<4201556d98b0bb67b6a982502e50591d>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -81,6 +81,15 @@ class ReactNativeFeatureFlagsDynamicProvider : public ReactNativeFeatureFlagsDef
|
||||
return ReactNativeFeatureFlagsDefaults::cxxNativeAnimatedRemoveJsSync();
|
||||
}
|
||||
|
||||
bool disableEarlyViewCommandExecution() override {
|
||||
auto value = values_["disableEarlyViewCommandExecution"];
|
||||
if (!value.isNull()) {
|
||||
return value.getBool();
|
||||
}
|
||||
|
||||
return ReactNativeFeatureFlagsDefaults::disableEarlyViewCommandExecution();
|
||||
}
|
||||
|
||||
bool disableFabricCommitInCXXAnimated() override {
|
||||
auto value = values_["disableFabricCommitInCXXAnimated"];
|
||||
if (!value.isNull()) {
|
||||
|
||||
+2
-1
@@ -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<<f74bc6d7f91345dfb505d33d417573f4>>
|
||||
* @generated SignedSource<<26ec8e488a5366a6069efe717e3d29a0>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -29,6 +29,7 @@ class ReactNativeFeatureFlagsProvider {
|
||||
virtual bool cdpInteractionMetricsEnabled() = 0;
|
||||
virtual bool cxxNativeAnimatedEnabled() = 0;
|
||||
virtual bool cxxNativeAnimatedRemoveJsSync() = 0;
|
||||
virtual bool disableEarlyViewCommandExecution() = 0;
|
||||
virtual bool disableFabricCommitInCXXAnimated() = 0;
|
||||
virtual bool disableMountItemReorderingAndroid() = 0;
|
||||
virtual bool disableOldAndroidAttachmentMetricsWorkarounds() = 0;
|
||||
|
||||
+6
-1
@@ -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<<5d929fdb64fdee752c1486a5982b1a95>>
|
||||
* @generated SignedSource<<d71a9f35d3517ff57364324bc0afe358>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -64,6 +64,11 @@ bool NativeReactNativeFeatureFlags::cxxNativeAnimatedRemoveJsSync(
|
||||
return ReactNativeFeatureFlags::cxxNativeAnimatedRemoveJsSync();
|
||||
}
|
||||
|
||||
bool NativeReactNativeFeatureFlags::disableEarlyViewCommandExecution(
|
||||
jsi::Runtime& /*runtime*/) {
|
||||
return ReactNativeFeatureFlags::disableEarlyViewCommandExecution();
|
||||
}
|
||||
|
||||
bool NativeReactNativeFeatureFlags::disableFabricCommitInCXXAnimated(
|
||||
jsi::Runtime& /*runtime*/) {
|
||||
return ReactNativeFeatureFlags::disableFabricCommitInCXXAnimated();
|
||||
|
||||
+3
-1
@@ -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<<772f928ee5db4308e3f27d56876827c2>>
|
||||
* @generated SignedSource<<71a5b931e802e2fd1dc345849147cbe1>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -44,6 +44,8 @@ class NativeReactNativeFeatureFlags
|
||||
|
||||
bool cxxNativeAnimatedRemoveJsSync(jsi::Runtime& runtime);
|
||||
|
||||
bool disableEarlyViewCommandExecution(jsi::Runtime& runtime);
|
||||
|
||||
bool disableFabricCommitInCXXAnimated(jsi::Runtime& runtime);
|
||||
|
||||
bool disableMountItemReorderingAndroid(jsi::Runtime& runtime);
|
||||
|
||||
@@ -92,6 +92,16 @@ const definitions: FeatureFlagDefinitions = {
|
||||
},
|
||||
ossReleaseStage: 'none',
|
||||
},
|
||||
disableEarlyViewCommandExecution: {
|
||||
defaultValue: false,
|
||||
metadata: {
|
||||
dateAdded: '2025-10-07',
|
||||
description: 'Dispatch view commands in mount item order.',
|
||||
expectedReleaseValue: true,
|
||||
purpose: 'experimentation',
|
||||
},
|
||||
ossReleaseStage: 'none',
|
||||
},
|
||||
disableFabricCommitInCXXAnimated: {
|
||||
defaultValue: false,
|
||||
metadata: {
|
||||
|
||||
@@ -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<<3078b8488e9905153bfbf2dc26b7a2c5>>
|
||||
* @generated SignedSource<<dc249978e6199d4aba3d039d8e967400>>
|
||||
* @flow strict
|
||||
* @noformat
|
||||
*/
|
||||
@@ -54,6 +54,7 @@ export type ReactNativeFeatureFlags = $ReadOnly<{
|
||||
cdpInteractionMetricsEnabled: Getter<boolean>,
|
||||
cxxNativeAnimatedEnabled: Getter<boolean>,
|
||||
cxxNativeAnimatedRemoveJsSync: Getter<boolean>,
|
||||
disableEarlyViewCommandExecution: Getter<boolean>,
|
||||
disableFabricCommitInCXXAnimated: Getter<boolean>,
|
||||
disableMountItemReorderingAndroid: Getter<boolean>,
|
||||
disableOldAndroidAttachmentMetricsWorkarounds: Getter<boolean>,
|
||||
@@ -225,6 +226,10 @@ export const cxxNativeAnimatedEnabled: Getter<boolean> = createNativeFlagGetter(
|
||||
* Removes JS sync at end of native animation
|
||||
*/
|
||||
export const cxxNativeAnimatedRemoveJsSync: Getter<boolean> = createNativeFlagGetter('cxxNativeAnimatedRemoveJsSync', false);
|
||||
/**
|
||||
* Dispatch view commands in mount item order.
|
||||
*/
|
||||
export const disableEarlyViewCommandExecution: Getter<boolean> = createNativeFlagGetter('disableEarlyViewCommandExecution', false);
|
||||
/**
|
||||
* Prevents use of Fabric commit in C++ Animated implementation
|
||||
*/
|
||||
|
||||
+2
-1
@@ -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<<f7516eb41e34153647e64b83b134700c>>
|
||||
* @generated SignedSource<<6a8ce216b333e02f58b43673db8bd0bb>>
|
||||
* @flow strict
|
||||
* @noformat
|
||||
*/
|
||||
@@ -29,6 +29,7 @@ export interface Spec extends TurboModule {
|
||||
+cdpInteractionMetricsEnabled?: () => boolean;
|
||||
+cxxNativeAnimatedEnabled?: () => boolean;
|
||||
+cxxNativeAnimatedRemoveJsSync?: () => boolean;
|
||||
+disableEarlyViewCommandExecution?: () => boolean;
|
||||
+disableFabricCommitInCXXAnimated?: () => boolean;
|
||||
+disableMountItemReorderingAndroid?: () => boolean;
|
||||
+disableOldAndroidAttachmentMetricsWorkarounds?: () => boolean;
|
||||
|
||||
Reference in New Issue
Block a user