From 71edbe1548909c29b214f455e52417fdee7eee01 Mon Sep 17 00:00:00 2001 From: Ruslan Shestopalyuk Date: Fri, 5 Sep 2025 06:01:47 -0700 Subject: [PATCH] Make feature flag "enableViewRecyclingForScrollView" true by default Summary: ## Changelog: [Internal] - Noticed that the default value for this one is inconsistent with all the other similar ones, which can cause confusion during setting up the experiment, fixing it. Note that top level view recycling is still controlled via `enableViewRecycling`, which will also disable all the other ones when false (which it is by default). bypass-github-export-checks Reviewed By: lenaic Differential Revision: D81766029 fbshipit-source-id: df4a260b9bde20d1c85b7786df00fa91298a27b7 --- .../internal/featureflags/ReactNativeFeatureFlagsDefaults.kt | 4 ++-- .../react/featureflags/ReactNativeFeatureFlagsDefaults.h | 4 ++-- .../scripts/featureflags/ReactNativeFeatureFlags.config.js | 2 +- .../src/private/featureflags/ReactNativeFeatureFlags.js | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt index 54e65b67538..8319e3bea36 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt @@ -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<<411732d441bacbef37c3474b9041202c>> + * @generated SignedSource<> */ /** @@ -101,7 +101,7 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi override fun enableViewRecyclingForImage(): Boolean = true - override fun enableViewRecyclingForScrollView(): Boolean = false + override fun enableViewRecyclingForScrollView(): Boolean = true override fun enableViewRecyclingForText(): Boolean = true diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h index 2969a1fc971..2e489dc1b53 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h @@ -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<<6d8adaa4b960407540afb1d6e42a3840>> + * @generated SignedSource<<203fbd20e17d71ad8aed3e4f9a8a9bae>> */ /** @@ -184,7 +184,7 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider { } bool enableViewRecyclingForScrollView() override { - return false; + return true; } bool enableViewRecyclingForText() override { diff --git a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js index 7ec2687d929..115e40f7dc2 100644 --- a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js +++ b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js @@ -463,7 +463,7 @@ const definitions: FeatureFlagDefinitions = { ossReleaseStage: 'none', }, enableViewRecyclingForScrollView: { - defaultValue: false, + defaultValue: true, metadata: { dateAdded: '2025-08-20', description: diff --git a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js index 3ff0dd58d6f..dd2e736e638 100644 --- a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js @@ -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<<2bef8486b596a7593bbc931da63b2682>> + * @generated SignedSource<<043c615bb3aeec8730273826786b336a>> * @flow strict * @noformat */ @@ -359,7 +359,7 @@ export const enableViewRecyclingForImage: Getter = createNativeFlagGett /** * Enables View Recycling for via ReactViewGroup/ReactViewManager. */ -export const enableViewRecyclingForScrollView: Getter = createNativeFlagGetter('enableViewRecyclingForScrollView', false); +export const enableViewRecyclingForScrollView: Getter = createNativeFlagGetter('enableViewRecyclingForScrollView', true); /** * Enables View Recycling for via ReactTextView/ReactTextViewManager. */