From 5f14963da081deeac2fb540d58c8667c2d2c5d08 Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Thu, 1 Aug 2024 12:06:40 -0700 Subject: [PATCH] Breaking: Set "enableBackgroundStyleApplicator" by default (#45866) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/45866 This turns on enableBackgroundStyleApplicator() by default, which will get us more screenshot tests over existing apps, and let us add new screenshot tests for box-shadow against stock RNTester. This is a breaking change, for the small number of libraries which use CSSBackgroundDrawable/ReactViewBackgroundDrawable off of a view directly, for setting or accessing styles (this was already unreliably), along with libraries which read `mBorderRadius` from views using reflection. This is more or less confined to Reanimated, react-native-navigation, and one internal library. Users who want to access or mutate background styles should use the public `BackgroundStyleApplicator` instead. Changelog: [Android][Breaking] - Set "enableBackgroundStyleApplicator" by default Reviewed By: joevilches Differential Revision: D60365677 fbshipit-source-id: aab8588b27c1125920adb257406c53dadb356767 --- .../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 751cf85ea82..e474406143b 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<<4c87f6bbb603ad9a66d08600fba93554>> + * @generated SignedSource<<2fe2a37cfa83ae9a6a53d1e2e17382b7>> */ /** @@ -39,7 +39,7 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi override fun enableAlignItemsBaselineOnFabricIOS(): Boolean = true - override fun enableBackgroundStyleApplicator(): Boolean = false + override fun enableBackgroundStyleApplicator(): Boolean = true override fun enableCleanTextInputYogaNode(): Boolean = false diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h index ae07e6ba58d..38d72717f6e 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<<0d95cb065819310058a7b088db43ec2d>> + * @generated SignedSource<<06d4d5356769bc25529b987aa7e0abb8>> */ /** @@ -60,7 +60,7 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider { } bool enableBackgroundStyleApplicator() override { - return false; + return true; } bool enableCleanTextInputYogaNode() override { diff --git a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js index 29d15ada5f9..da1cf30e46e 100644 --- a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js +++ b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js @@ -75,7 +75,7 @@ const definitions: FeatureFlagDefinitions = { 'Kill-switch to turn off support for aling-items:baseline on Fabric iOS.', }, enableBackgroundStyleApplicator: { - defaultValue: false, + defaultValue: true, description: 'Use BackgroundStyleApplicator in place of other background/border drawing code', }, diff --git a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js index 088b0880984..258dbbb86dc 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<> + * @generated SignedSource<<0b57a2e853d1f2872ddf0c0b610805bb>> * @flow strict-local */ @@ -185,7 +185,7 @@ export const enableAlignItemsBaselineOnFabricIOS: Getter = createNative /** * Use BackgroundStyleApplicator in place of other background/border drawing code */ -export const enableBackgroundStyleApplicator: Getter = createNativeFlagGetter('enableBackgroundStyleApplicator', false); +export const enableBackgroundStyleApplicator: Getter = createNativeFlagGetter('enableBackgroundStyleApplicator', true); /** * Clean yoga node when does not change. */