mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Clean up androidEnablePendingFabricTransactions feature flag (#44695)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44695 Changelog: [internal] We tested this feature flag at Meta and it's neutral when used outside the event loop. We'll handle its effects on the event loop as part of the event loop experiment itself (when enabling paint blocking). Reviewed By: tdn120 Differential Revision: D57861195 fbshipit-source-id: 11a208ef5433321a464cfc16f4ff026d52988b42
This commit is contained in:
committed by
Facebook GitHub Bot
parent
a93a15aca3
commit
dc3a530191
+1
-7
@@ -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<<d6c66f8e1322b8962191fa4af5c8da4b>>
|
||||
* @generated SignedSource<<84f45a19bf93a62da7ce904a2682fc51>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -40,12 +40,6 @@ public object ReactNativeFeatureFlags {
|
||||
@JvmStatic
|
||||
public fun allowCollapsableChildren(): Boolean = accessor.allowCollapsableChildren()
|
||||
|
||||
/**
|
||||
* To be used with batchRenderingUpdatesInEventLoop. When enbled, the Android mounting layer will concatenate pending transactions to ensure they're applied atomatically
|
||||
*/
|
||||
@JvmStatic
|
||||
public fun androidEnablePendingFabricTransactions(): Boolean = accessor.androidEnablePendingFabricTransactions()
|
||||
|
||||
/**
|
||||
* When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop.
|
||||
*/
|
||||
|
||||
+1
-11
@@ -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<<53fb9cc52c068dd294507e060d06d75f>>
|
||||
* @generated SignedSource<<2f84a5455d747e14324f7b79cbbdc763>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -22,7 +22,6 @@ package com.facebook.react.internal.featureflags
|
||||
public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccessor {
|
||||
private var commonTestFlagCache: Boolean? = null
|
||||
private var allowCollapsableChildrenCache: Boolean? = null
|
||||
private var androidEnablePendingFabricTransactionsCache: Boolean? = null
|
||||
private var batchRenderingUpdatesInEventLoopCache: Boolean? = null
|
||||
private var destroyFabricSurfacesInReactInstanceManagerCache: Boolean? = null
|
||||
private var enableBackgroundExecutorCache: Boolean? = null
|
||||
@@ -60,15 +59,6 @@ public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccesso
|
||||
return cached
|
||||
}
|
||||
|
||||
override fun androidEnablePendingFabricTransactions(): Boolean {
|
||||
var cached = androidEnablePendingFabricTransactionsCache
|
||||
if (cached == null) {
|
||||
cached = ReactNativeFeatureFlagsCxxInterop.androidEnablePendingFabricTransactions()
|
||||
androidEnablePendingFabricTransactionsCache = cached
|
||||
}
|
||||
return cached
|
||||
}
|
||||
|
||||
override fun batchRenderingUpdatesInEventLoop(): Boolean {
|
||||
var cached = batchRenderingUpdatesInEventLoopCache
|
||||
if (cached == null) {
|
||||
|
||||
+1
-3
@@ -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<<8df962abc44ac4368591f34862ccf69e>>
|
||||
* @generated SignedSource<<c82dca47362f4798dfcebda31b2fe2d6>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -32,8 +32,6 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
||||
|
||||
@DoNotStrip @JvmStatic public external fun allowCollapsableChildren(): Boolean
|
||||
|
||||
@DoNotStrip @JvmStatic public external fun androidEnablePendingFabricTransactions(): Boolean
|
||||
|
||||
@DoNotStrip @JvmStatic public external fun batchRenderingUpdatesInEventLoop(): Boolean
|
||||
|
||||
@DoNotStrip @JvmStatic public external fun destroyFabricSurfacesInReactInstanceManager(): Boolean
|
||||
|
||||
+1
-3
@@ -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<<b9067f03d9ae365120f8d6ef607354a6>>
|
||||
* @generated SignedSource<<1ea3b574063dca0256494361423ce63e>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -27,8 +27,6 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
||||
|
||||
override fun allowCollapsableChildren(): Boolean = true
|
||||
|
||||
override fun androidEnablePendingFabricTransactions(): Boolean = false
|
||||
|
||||
override fun batchRenderingUpdatesInEventLoop(): Boolean = false
|
||||
|
||||
override fun destroyFabricSurfacesInReactInstanceManager(): Boolean = false
|
||||
|
||||
+1
-12
@@ -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<<5abf40ebbabb3c0bebead668c1b24ff9>>
|
||||
* @generated SignedSource<<a66642e4f6027ab0f5280baa2169d901>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -26,7 +26,6 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces
|
||||
|
||||
private var commonTestFlagCache: Boolean? = null
|
||||
private var allowCollapsableChildrenCache: Boolean? = null
|
||||
private var androidEnablePendingFabricTransactionsCache: Boolean? = null
|
||||
private var batchRenderingUpdatesInEventLoopCache: Boolean? = null
|
||||
private var destroyFabricSurfacesInReactInstanceManagerCache: Boolean? = null
|
||||
private var enableBackgroundExecutorCache: Boolean? = null
|
||||
@@ -66,16 +65,6 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces
|
||||
return cached
|
||||
}
|
||||
|
||||
override fun androidEnablePendingFabricTransactions(): Boolean {
|
||||
var cached = androidEnablePendingFabricTransactionsCache
|
||||
if (cached == null) {
|
||||
cached = currentProvider.androidEnablePendingFabricTransactions()
|
||||
accessedFeatureFlags.add("androidEnablePendingFabricTransactions")
|
||||
androidEnablePendingFabricTransactionsCache = cached
|
||||
}
|
||||
return cached
|
||||
}
|
||||
|
||||
override fun batchRenderingUpdatesInEventLoop(): Boolean {
|
||||
var cached = batchRenderingUpdatesInEventLoopCache
|
||||
if (cached == null) {
|
||||
|
||||
+1
-3
@@ -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<<0f008837f44348e62dba2a65e813d49e>>
|
||||
* @generated SignedSource<<7a63b1fc14ccc86efb0929452755744d>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -27,8 +27,6 @@ public interface ReactNativeFeatureFlagsProvider {
|
||||
|
||||
@DoNotStrip public fun allowCollapsableChildren(): Boolean
|
||||
|
||||
@DoNotStrip public fun androidEnablePendingFabricTransactions(): Boolean
|
||||
|
||||
@DoNotStrip public fun batchRenderingUpdatesInEventLoop(): Boolean
|
||||
|
||||
@DoNotStrip public fun destroyFabricSurfacesInReactInstanceManager(): Boolean
|
||||
|
||||
@@ -458,10 +458,6 @@ std::shared_ptr<FabricMountingManager> Binding::getMountingManager(
|
||||
|
||||
void Binding::schedulerDidFinishTransaction(
|
||||
const MountingCoordinator::Shared& mountingCoordinator) {
|
||||
if (!ReactNativeFeatureFlags::androidEnablePendingFabricTransactions()) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto mountingTransaction = mountingCoordinator->pullTransaction();
|
||||
if (!mountingTransaction.has_value()) {
|
||||
return;
|
||||
@@ -491,18 +487,11 @@ void Binding::schedulerShouldRenderTransactions(
|
||||
return;
|
||||
}
|
||||
|
||||
if (ReactNativeFeatureFlags::androidEnablePendingFabricTransactions()) {
|
||||
std::unique_lock<std::mutex> lock(pendingTransactionsMutex_);
|
||||
for (auto& transaction : pendingTransactions_) {
|
||||
mountingManager->executeMount(transaction);
|
||||
}
|
||||
pendingTransactions_.clear();
|
||||
} else {
|
||||
auto mountingTransaction = mountingCoordinator->pullTransaction();
|
||||
if (mountingTransaction.has_value()) {
|
||||
mountingManager->executeMount(*mountingTransaction);
|
||||
}
|
||||
std::unique_lock<std::mutex> lock(pendingTransactionsMutex_);
|
||||
for (auto& transaction : pendingTransactions_) {
|
||||
mountingManager->executeMount(transaction);
|
||||
}
|
||||
pendingTransactions_.clear();
|
||||
}
|
||||
|
||||
void Binding::schedulerDidRequestPreliminaryViewAllocation(
|
||||
|
||||
+1
-15
@@ -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<<4267f2de5ad71437875b03a26ac80d13>>
|
||||
* @generated SignedSource<<82d20aa409496b17df21a077088894a6>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -51,12 +51,6 @@ class ReactNativeFeatureFlagsProviderHolder
|
||||
return method(javaProvider_);
|
||||
}
|
||||
|
||||
bool androidEnablePendingFabricTransactions() override {
|
||||
static const auto method =
|
||||
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("androidEnablePendingFabricTransactions");
|
||||
return method(javaProvider_);
|
||||
}
|
||||
|
||||
bool batchRenderingUpdatesInEventLoop() override {
|
||||
static const auto method =
|
||||
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("batchRenderingUpdatesInEventLoop");
|
||||
@@ -179,11 +173,6 @@ bool JReactNativeFeatureFlagsCxxInterop::allowCollapsableChildren(
|
||||
return ReactNativeFeatureFlags::allowCollapsableChildren();
|
||||
}
|
||||
|
||||
bool JReactNativeFeatureFlagsCxxInterop::androidEnablePendingFabricTransactions(
|
||||
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
||||
return ReactNativeFeatureFlags::androidEnablePendingFabricTransactions();
|
||||
}
|
||||
|
||||
bool JReactNativeFeatureFlagsCxxInterop::batchRenderingUpdatesInEventLoop(
|
||||
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
||||
return ReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop();
|
||||
@@ -297,9 +286,6 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
||||
makeNativeMethod(
|
||||
"allowCollapsableChildren",
|
||||
JReactNativeFeatureFlagsCxxInterop::allowCollapsableChildren),
|
||||
makeNativeMethod(
|
||||
"androidEnablePendingFabricTransactions",
|
||||
JReactNativeFeatureFlagsCxxInterop::androidEnablePendingFabricTransactions),
|
||||
makeNativeMethod(
|
||||
"batchRenderingUpdatesInEventLoop",
|
||||
JReactNativeFeatureFlagsCxxInterop::batchRenderingUpdatesInEventLoop),
|
||||
|
||||
+1
-4
@@ -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<<9d2fdfb02452bcedb14af85488d0b8c7>>
|
||||
* @generated SignedSource<<08463d4f487df81332c79c8e85b4dac8>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -36,9 +36,6 @@ class JReactNativeFeatureFlagsCxxInterop
|
||||
static bool allowCollapsableChildren(
|
||||
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
||||
|
||||
static bool androidEnablePendingFabricTransactions(
|
||||
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
||||
|
||||
static bool batchRenderingUpdatesInEventLoop(
|
||||
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<<44c54555ee69104a69d9e60b13ebccbf>>
|
||||
* @generated SignedSource<<c51ddd57ad10e748d6e2c5f444ea3765>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -29,10 +29,6 @@ bool ReactNativeFeatureFlags::allowCollapsableChildren() {
|
||||
return getAccessor().allowCollapsableChildren();
|
||||
}
|
||||
|
||||
bool ReactNativeFeatureFlags::androidEnablePendingFabricTransactions() {
|
||||
return getAccessor().androidEnablePendingFabricTransactions();
|
||||
}
|
||||
|
||||
bool ReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop() {
|
||||
return getAccessor().batchRenderingUpdatesInEventLoop();
|
||||
}
|
||||
|
||||
@@ -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<<8fdad69a7bbf55bdf967292958de6f61>>
|
||||
* @generated SignedSource<<705dba656bfb228227399bcda638c404>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -47,11 +47,6 @@ class ReactNativeFeatureFlags {
|
||||
*/
|
||||
RN_EXPORT static bool allowCollapsableChildren();
|
||||
|
||||
/**
|
||||
* To be used with batchRenderingUpdatesInEventLoop. When enbled, the Android mounting layer will concatenate pending transactions to ensure they're applied atomatically
|
||||
*/
|
||||
RN_EXPORT static bool androidEnablePendingFabricTransactions();
|
||||
|
||||
/**
|
||||
* When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop.
|
||||
*/
|
||||
|
||||
+19
-37
@@ -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<<bf265572c103948adc9ff44022782e09>>
|
||||
* @generated SignedSource<<53617e29d537989ca3ac0f314a278e4b>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -65,24 +65,6 @@ bool ReactNativeFeatureFlagsAccessor::allowCollapsableChildren() {
|
||||
return flagValue.value();
|
||||
}
|
||||
|
||||
bool ReactNativeFeatureFlagsAccessor::androidEnablePendingFabricTransactions() {
|
||||
auto flagValue = androidEnablePendingFabricTransactions_.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(2, "androidEnablePendingFabricTransactions");
|
||||
|
||||
flagValue = currentProvider_->androidEnablePendingFabricTransactions();
|
||||
androidEnablePendingFabricTransactions_ = flagValue;
|
||||
}
|
||||
|
||||
return flagValue.value();
|
||||
}
|
||||
|
||||
bool ReactNativeFeatureFlagsAccessor::batchRenderingUpdatesInEventLoop() {
|
||||
auto flagValue = batchRenderingUpdatesInEventLoop_.load();
|
||||
|
||||
@@ -92,7 +74,7 @@ bool ReactNativeFeatureFlagsAccessor::batchRenderingUpdatesInEventLoop() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(3, "batchRenderingUpdatesInEventLoop");
|
||||
markFlagAsAccessed(2, "batchRenderingUpdatesInEventLoop");
|
||||
|
||||
flagValue = currentProvider_->batchRenderingUpdatesInEventLoop();
|
||||
batchRenderingUpdatesInEventLoop_ = flagValue;
|
||||
@@ -110,7 +92,7 @@ bool ReactNativeFeatureFlagsAccessor::destroyFabricSurfacesInReactInstanceManage
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(4, "destroyFabricSurfacesInReactInstanceManager");
|
||||
markFlagAsAccessed(3, "destroyFabricSurfacesInReactInstanceManager");
|
||||
|
||||
flagValue = currentProvider_->destroyFabricSurfacesInReactInstanceManager();
|
||||
destroyFabricSurfacesInReactInstanceManager_ = flagValue;
|
||||
@@ -128,7 +110,7 @@ bool ReactNativeFeatureFlagsAccessor::enableBackgroundExecutor() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(5, "enableBackgroundExecutor");
|
||||
markFlagAsAccessed(4, "enableBackgroundExecutor");
|
||||
|
||||
flagValue = currentProvider_->enableBackgroundExecutor();
|
||||
enableBackgroundExecutor_ = flagValue;
|
||||
@@ -146,7 +128,7 @@ bool ReactNativeFeatureFlagsAccessor::enableCleanTextInputYogaNode() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(6, "enableCleanTextInputYogaNode");
|
||||
markFlagAsAccessed(5, "enableCleanTextInputYogaNode");
|
||||
|
||||
flagValue = currentProvider_->enableCleanTextInputYogaNode();
|
||||
enableCleanTextInputYogaNode_ = flagValue;
|
||||
@@ -164,7 +146,7 @@ bool ReactNativeFeatureFlagsAccessor::enableGranularShadowTreeStateReconciliatio
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(7, "enableGranularShadowTreeStateReconciliation");
|
||||
markFlagAsAccessed(6, "enableGranularShadowTreeStateReconciliation");
|
||||
|
||||
flagValue = currentProvider_->enableGranularShadowTreeStateReconciliation();
|
||||
enableGranularShadowTreeStateReconciliation_ = flagValue;
|
||||
@@ -182,7 +164,7 @@ bool ReactNativeFeatureFlagsAccessor::enableMicrotasks() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(8, "enableMicrotasks");
|
||||
markFlagAsAccessed(7, "enableMicrotasks");
|
||||
|
||||
flagValue = currentProvider_->enableMicrotasks();
|
||||
enableMicrotasks_ = flagValue;
|
||||
@@ -200,7 +182,7 @@ bool ReactNativeFeatureFlagsAccessor::enableSynchronousStateUpdates() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(9, "enableSynchronousStateUpdates");
|
||||
markFlagAsAccessed(8, "enableSynchronousStateUpdates");
|
||||
|
||||
flagValue = currentProvider_->enableSynchronousStateUpdates();
|
||||
enableSynchronousStateUpdates_ = flagValue;
|
||||
@@ -218,7 +200,7 @@ bool ReactNativeFeatureFlagsAccessor::enableUIConsistency() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(10, "enableUIConsistency");
|
||||
markFlagAsAccessed(9, "enableUIConsistency");
|
||||
|
||||
flagValue = currentProvider_->enableUIConsistency();
|
||||
enableUIConsistency_ = flagValue;
|
||||
@@ -236,7 +218,7 @@ bool ReactNativeFeatureFlagsAccessor::fixStoppedSurfaceRemoveDeleteTreeUIFrameCa
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(11, "fixStoppedSurfaceRemoveDeleteTreeUIFrameCallbackLeak");
|
||||
markFlagAsAccessed(10, "fixStoppedSurfaceRemoveDeleteTreeUIFrameCallbackLeak");
|
||||
|
||||
flagValue = currentProvider_->fixStoppedSurfaceRemoveDeleteTreeUIFrameCallbackLeak();
|
||||
fixStoppedSurfaceRemoveDeleteTreeUIFrameCallbackLeak_ = flagValue;
|
||||
@@ -254,7 +236,7 @@ bool ReactNativeFeatureFlagsAccessor::forceBatchingMountItemsOnAndroid() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(12, "forceBatchingMountItemsOnAndroid");
|
||||
markFlagAsAccessed(11, "forceBatchingMountItemsOnAndroid");
|
||||
|
||||
flagValue = currentProvider_->forceBatchingMountItemsOnAndroid();
|
||||
forceBatchingMountItemsOnAndroid_ = flagValue;
|
||||
@@ -272,7 +254,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(13, "fuseboxEnabledDebug");
|
||||
markFlagAsAccessed(12, "fuseboxEnabledDebug");
|
||||
|
||||
flagValue = currentProvider_->fuseboxEnabledDebug();
|
||||
fuseboxEnabledDebug_ = flagValue;
|
||||
@@ -290,7 +272,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(14, "fuseboxEnabledRelease");
|
||||
markFlagAsAccessed(13, "fuseboxEnabledRelease");
|
||||
|
||||
flagValue = currentProvider_->fuseboxEnabledRelease();
|
||||
fuseboxEnabledRelease_ = flagValue;
|
||||
@@ -308,7 +290,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(15, "lazyAnimationCallbacks");
|
||||
markFlagAsAccessed(14, "lazyAnimationCallbacks");
|
||||
|
||||
flagValue = currentProvider_->lazyAnimationCallbacks();
|
||||
lazyAnimationCallbacks_ = flagValue;
|
||||
@@ -326,7 +308,7 @@ bool ReactNativeFeatureFlagsAccessor::preventDoubleTextMeasure() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(16, "preventDoubleTextMeasure");
|
||||
markFlagAsAccessed(15, "preventDoubleTextMeasure");
|
||||
|
||||
flagValue = currentProvider_->preventDoubleTextMeasure();
|
||||
preventDoubleTextMeasure_ = flagValue;
|
||||
@@ -344,7 +326,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(17, "setAndroidLayoutDirection");
|
||||
markFlagAsAccessed(16, "setAndroidLayoutDirection");
|
||||
|
||||
flagValue = currentProvider_->setAndroidLayoutDirection();
|
||||
setAndroidLayoutDirection_ = flagValue;
|
||||
@@ -362,7 +344,7 @@ bool ReactNativeFeatureFlagsAccessor::useModernRuntimeScheduler() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(18, "useModernRuntimeScheduler");
|
||||
markFlagAsAccessed(17, "useModernRuntimeScheduler");
|
||||
|
||||
flagValue = currentProvider_->useModernRuntimeScheduler();
|
||||
useModernRuntimeScheduler_ = flagValue;
|
||||
@@ -380,7 +362,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(19, "useNativeViewConfigsInBridgelessMode");
|
||||
markFlagAsAccessed(18, "useNativeViewConfigsInBridgelessMode");
|
||||
|
||||
flagValue = currentProvider_->useNativeViewConfigsInBridgelessMode();
|
||||
useNativeViewConfigsInBridgelessMode_ = flagValue;
|
||||
@@ -398,7 +380,7 @@ bool ReactNativeFeatureFlagsAccessor::useStateAlignmentMechanism() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(20, "useStateAlignmentMechanism");
|
||||
markFlagAsAccessed(19, "useStateAlignmentMechanism");
|
||||
|
||||
flagValue = currentProvider_->useStateAlignmentMechanism();
|
||||
useStateAlignmentMechanism_ = flagValue;
|
||||
|
||||
+2
-4
@@ -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<<d42b9949ba1bedd690893c8c34ac6a2b>>
|
||||
* @generated SignedSource<<eb1c2343ad44d6cb5e771bff1e7d3969>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -33,7 +33,6 @@ class ReactNativeFeatureFlagsAccessor {
|
||||
|
||||
bool commonTestFlag();
|
||||
bool allowCollapsableChildren();
|
||||
bool androidEnablePendingFabricTransactions();
|
||||
bool batchRenderingUpdatesInEventLoop();
|
||||
bool destroyFabricSurfacesInReactInstanceManager();
|
||||
bool enableBackgroundExecutor();
|
||||
@@ -62,11 +61,10 @@ class ReactNativeFeatureFlagsAccessor {
|
||||
std::unique_ptr<ReactNativeFeatureFlagsProvider> currentProvider_;
|
||||
bool wasOverridden_;
|
||||
|
||||
std::array<std::atomic<const char*>, 21> accessedFeatureFlags_;
|
||||
std::array<std::atomic<const char*>, 20> accessedFeatureFlags_;
|
||||
|
||||
std::atomic<std::optional<bool>> commonTestFlag_;
|
||||
std::atomic<std::optional<bool>> allowCollapsableChildren_;
|
||||
std::atomic<std::optional<bool>> androidEnablePendingFabricTransactions_;
|
||||
std::atomic<std::optional<bool>> batchRenderingUpdatesInEventLoop_;
|
||||
std::atomic<std::optional<bool>> destroyFabricSurfacesInReactInstanceManager_;
|
||||
std::atomic<std::optional<bool>> enableBackgroundExecutor_;
|
||||
|
||||
+1
-5
@@ -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<<6535d6d14ba4387ea73d129f064548e0>>
|
||||
* @generated SignedSource<<c5ec848c8bda7048dffa3d9bd49813ae>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -35,10 +35,6 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool androidEnablePendingFabricTransactions() override {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool batchRenderingUpdatesInEventLoop() override {
|
||||
return false;
|
||||
}
|
||||
|
||||
+1
-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<<cca43c849147c9a230fb3fa6af795d24>>
|
||||
* @generated SignedSource<<c0b634ae91683a44ebbbfe3f21b762d1>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -27,7 +27,6 @@ class ReactNativeFeatureFlagsProvider {
|
||||
|
||||
virtual bool commonTestFlag() = 0;
|
||||
virtual bool allowCollapsableChildren() = 0;
|
||||
virtual bool androidEnablePendingFabricTransactions() = 0;
|
||||
virtual bool batchRenderingUpdatesInEventLoop() = 0;
|
||||
virtual bool destroyFabricSurfacesInReactInstanceManager() = 0;
|
||||
virtual bool enableBackgroundExecutor() = 0;
|
||||
|
||||
+1
-6
@@ -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<<f554dd81f598e97429e2cba26613102e>>
|
||||
* @generated SignedSource<<e050c6ce3466ad5c14ee94e61eca189e>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -47,11 +47,6 @@ bool NativeReactNativeFeatureFlags::allowCollapsableChildren(
|
||||
return ReactNativeFeatureFlags::allowCollapsableChildren();
|
||||
}
|
||||
|
||||
bool NativeReactNativeFeatureFlags::androidEnablePendingFabricTransactions(
|
||||
jsi::Runtime& /*runtime*/) {
|
||||
return ReactNativeFeatureFlags::androidEnablePendingFabricTransactions();
|
||||
}
|
||||
|
||||
bool NativeReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop(
|
||||
jsi::Runtime& /*runtime*/) {
|
||||
return ReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop();
|
||||
|
||||
+1
-3
@@ -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<<38587efd4ed8e4ad7cca2e96eda6632f>>
|
||||
* @generated SignedSource<<a13aa1f123eb1f90039bc08436349c83>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -39,8 +39,6 @@ class NativeReactNativeFeatureFlags
|
||||
|
||||
bool allowCollapsableChildren(jsi::Runtime& runtime);
|
||||
|
||||
bool androidEnablePendingFabricTransactions(jsi::Runtime& runtime);
|
||||
|
||||
bool batchRenderingUpdatesInEventLoop(jsi::Runtime& runtime);
|
||||
|
||||
bool destroyFabricSurfacesInReactInstanceManager(jsi::Runtime& runtime);
|
||||
|
||||
@@ -44,11 +44,6 @@ const definitions: FeatureFlagDefinitions = {
|
||||
description:
|
||||
'Enables the differentiator to understand the "collapsableChildren" prop',
|
||||
},
|
||||
androidEnablePendingFabricTransactions: {
|
||||
defaultValue: false,
|
||||
description:
|
||||
"To be used with batchRenderingUpdatesInEventLoop. When enbled, the Android mounting layer will concatenate pending transactions to ensure they're applied atomatically",
|
||||
},
|
||||
batchRenderingUpdatesInEventLoop: {
|
||||
defaultValue: false,
|
||||
description:
|
||||
|
||||
@@ -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<<e2b6e70ce74cd84040583c68b41a285d>>
|
||||
* @generated SignedSource<<0a8bc71d703e92e1aaba25203e0211b3>>
|
||||
* @flow strict-local
|
||||
*/
|
||||
|
||||
@@ -42,7 +42,6 @@ export type ReactNativeFeatureFlags = {
|
||||
...ReactNativeFeatureFlagsJsOnly,
|
||||
commonTestFlag: Getter<boolean>,
|
||||
allowCollapsableChildren: Getter<boolean>,
|
||||
androidEnablePendingFabricTransactions: Getter<boolean>,
|
||||
batchRenderingUpdatesInEventLoop: Getter<boolean>,
|
||||
destroyFabricSurfacesInReactInstanceManager: Getter<boolean>,
|
||||
enableBackgroundExecutor: Getter<boolean>,
|
||||
@@ -111,10 +110,6 @@ export const commonTestFlag: Getter<boolean> = createNativeFlagGetter('commonTes
|
||||
* Enables the differentiator to understand the "collapsableChildren" prop
|
||||
*/
|
||||
export const allowCollapsableChildren: Getter<boolean> = createNativeFlagGetter('allowCollapsableChildren', true);
|
||||
/**
|
||||
* To be used with batchRenderingUpdatesInEventLoop. When enbled, the Android mounting layer will concatenate pending transactions to ensure they're applied atomatically
|
||||
*/
|
||||
export const androidEnablePendingFabricTransactions: Getter<boolean> = createNativeFlagGetter('androidEnablePendingFabricTransactions', false);
|
||||
/**
|
||||
* When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop.
|
||||
*/
|
||||
|
||||
+1
-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<<30b0640e8893abd282c4694d7463e90e>>
|
||||
* @generated SignedSource<<13b6d24c994e1ac758d2a76f759f5363>>
|
||||
* @flow strict-local
|
||||
*/
|
||||
|
||||
@@ -25,7 +25,6 @@ import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboMod
|
||||
export interface Spec extends TurboModule {
|
||||
+commonTestFlag?: () => boolean;
|
||||
+allowCollapsableChildren?: () => boolean;
|
||||
+androidEnablePendingFabricTransactions?: () => boolean;
|
||||
+batchRenderingUpdatesInEventLoop?: () => boolean;
|
||||
+destroyFabricSurfacesInReactInstanceManager?: () => boolean;
|
||||
+enableBackgroundExecutor?: () => boolean;
|
||||
|
||||
Reference in New Issue
Block a user