Skip to content

Commit 9979b3e

Browse files
committed
Make shadowTreeMountPhase feature flag
1 parent 27d86bb commit 9979b3e

20 files changed

+140
-24
lines changed

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<c52f3977ea07f976e36177f13c1ec684>>
7+
* @generated SignedSource<<7550955526f976d80ddc4eca0ba17486>>
88
*/
99

1010
/**
@@ -396,6 +396,12 @@ public object ReactNativeFeatureFlags {
396396
@JvmStatic
397397
public fun virtualViewPrerenderRatio(): Double = accessor.virtualViewPrerenderRatio()
398398

399+
/**
400+
* Makes sure that one thread needs to finish mounting first before a new one can
401+
*/
402+
@JvmStatic
403+
public fun shadowTreeLockMountPhase(): Boolean = accessor.shadowTreeLockMountPhase()
404+
399405
/**
400406
* Overrides the feature flags with the ones provided by the given provider
401407
* (generally one that extends `ReactNativeFeatureFlagsDefaults`).

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<8e0125e82b359e6a175ffc49a4df5537>>
7+
* @generated SignedSource<<889c062fb82ff5976adfcd29db539adc>>
88
*/
99

1010
/**
@@ -81,6 +81,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
8181
private var useTurboModuleInteropCache: Boolean? = null
8282
private var useTurboModulesCache: Boolean? = null
8383
private var virtualViewPrerenderRatioCache: Double? = null
84+
private var shadowTreeLockMountPhaseCache: Boolean? = null
8485

8586
override fun commonTestFlag(): Boolean {
8687
var cached = commonTestFlagCache
@@ -631,6 +632,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
631632
return cached
632633
}
633634

635+
override fun shadowTreeLockMountPhase(): Boolean {
636+
var cached = shadowTreeLockMountPhaseCache
637+
if (cached == null) {
638+
cached = ReactNativeFeatureFlagsCxxInterop.shadowTreeLockMountPhase()
639+
shadowTreeLockMountPhaseCache = cached
640+
}
641+
return cached
642+
}
643+
634644
override fun override(provider: ReactNativeFeatureFlagsProvider): Unit =
635645
ReactNativeFeatureFlagsCxxInterop.override(provider as Any)
636646

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<a5d9d11cc2a6529641243dc47a61f201>>
7+
* @generated SignedSource<<701b2ea9a0aabc82c49cfd48aba100d9>>
88
*/
99

1010
/**
@@ -150,6 +150,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
150150

151151
@DoNotStrip @JvmStatic public external fun virtualViewPrerenderRatio(): Double
152152

153+
@DoNotStrip @JvmStatic public external fun shadowTreeLockMountPhase(): Boolean
154+
153155
@DoNotStrip @JvmStatic public external fun override(provider: Any)
154156

155157
@DoNotStrip @JvmStatic public external fun dangerouslyReset()

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<10d708ce4449eede46d750a1ed48d02e>>
7+
* @generated SignedSource<<0f75d476cfd17f6ab2d64f2a2e1fd8dc>>
88
*/
99

1010
/**
@@ -39,7 +39,7 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
3939

4040
override fun enableAccessibilityOrder(): Boolean = false
4141

42-
override fun enableAccumulatedUpdatesInRawPropsAndroid(): Boolean = true
42+
override fun enableAccumulatedUpdatesInRawPropsAndroid(): Boolean = false
4343

4444
override fun enableAndroidTextMeasurementOptimizations(): Boolean = false
4545

@@ -137,11 +137,13 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
137137

138138
override fun useRawPropsJsiValue(): Boolean = false
139139

140-
override fun useShadowNodeStateOnClone(): Boolean = true
140+
override fun useShadowNodeStateOnClone(): Boolean = false
141141

142142
override fun useTurboModuleInterop(): Boolean = false
143143

144144
override fun useTurboModules(): Boolean = false
145145

146146
override fun virtualViewPrerenderRatio(): Double = 5.0
147+
148+
override fun shadowTreeLockMountPhase(): Boolean = false
147149
}

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<b04948c792c5db63decf1df80d3a867e>>
7+
* @generated SignedSource<<91a23e6bedd7821becd20afc7c48092c>>
88
*/
99

1010
/**
@@ -85,6 +85,7 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
8585
private var useTurboModuleInteropCache: Boolean? = null
8686
private var useTurboModulesCache: Boolean? = null
8787
private var virtualViewPrerenderRatioCache: Double? = null
88+
private var shadowTreeLockMountPhaseCache: Boolean? = null
8889

8990
override fun commonTestFlag(): Boolean {
9091
var cached = commonTestFlagCache
@@ -696,6 +697,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
696697
return cached
697698
}
698699

700+
override fun shadowTreeLockMountPhase(): Boolean {
701+
var cached = shadowTreeLockMountPhaseCache
702+
if (cached == null) {
703+
cached = currentProvider.shadowTreeLockMountPhase()
704+
accessedFeatureFlags.add("shadowTreeLockMountPhase")
705+
shadowTreeLockMountPhaseCache = cached
706+
}
707+
return cached
708+
}
709+
699710
override fun override(provider: ReactNativeFeatureFlagsProvider) {
700711
if (accessedFeatureFlags.isNotEmpty()) {
701712
val accessedFeatureFlagsStr = accessedFeatureFlags.joinToString(separator = ", ") { it }

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<21704207ce520def05b05f89dfba1048>>
7+
* @generated SignedSource<<a14c37993f7cfa44fb568584eb72b289>>
88
*/
99

1010
/**
@@ -144,4 +144,6 @@ public interface ReactNativeFeatureFlagsProvider {
144144
@DoNotStrip public fun useTurboModules(): Boolean
145145

146146
@DoNotStrip public fun virtualViewPrerenderRatio(): Double
147+
148+
@DoNotStrip public fun shadowTreeLockMountPhase(): Boolean
147149
}

packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<bbad4ee8cacd33099874d0c3078ea716>>
7+
* @generated SignedSource<<b92b694b777e016e2688aae7486934b8>>
88
*/
99

1010
/**
@@ -405,6 +405,12 @@ class ReactNativeFeatureFlagsJavaProvider
405405
return method(javaProvider_);
406406
}
407407

408+
bool shadowTreeLockMountPhase() override {
409+
static const auto method =
410+
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("shadowTreeLockMountPhase");
411+
return method(javaProvider_);
412+
}
413+
408414
private:
409415
jni::global_ref<jobject> javaProvider_;
410416
};
@@ -714,6 +720,11 @@ double JReactNativeFeatureFlagsCxxInterop::virtualViewPrerenderRatio(
714720
return ReactNativeFeatureFlags::virtualViewPrerenderRatio();
715721
}
716722

723+
bool JReactNativeFeatureFlagsCxxInterop::shadowTreeLockMountPhase(
724+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
725+
return ReactNativeFeatureFlags::shadowTreeLockMountPhase();
726+
}
727+
717728
void JReactNativeFeatureFlagsCxxInterop::override(
718729
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/,
719730
jni::alias_ref<jobject> provider) {
@@ -928,6 +939,9 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
928939
makeNativeMethod(
929940
"virtualViewPrerenderRatio",
930941
JReactNativeFeatureFlagsCxxInterop::virtualViewPrerenderRatio),
942+
makeNativeMethod(
943+
"shadowTreeLockMountPhase",
944+
JReactNativeFeatureFlagsCxxInterop::shadowTreeLockMountPhase),
931945
});
932946
}
933947

packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<57f2dcf4b71512c6b15e8021258d6036>>
7+
* @generated SignedSource<<949a32e47d8b53bb25f5f66de645862c>>
88
*/
99

1010
/**
@@ -213,6 +213,9 @@ class JReactNativeFeatureFlagsCxxInterop
213213
static double virtualViewPrerenderRatio(
214214
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
215215

216+
static bool shadowTreeLockMountPhase(
217+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
218+
216219
static void override(
217220
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>,
218221
jni::alias_ref<jobject> provider);

packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<2cabd888b74b84201ff027457efc6007>>
7+
* @generated SignedSource<<89255c959bb302b7ffb9c32701c112fb>>
88
*/
99

1010
/**
@@ -270,6 +270,10 @@ double ReactNativeFeatureFlags::virtualViewPrerenderRatio() {
270270
return getAccessor().virtualViewPrerenderRatio();
271271
}
272272

273+
bool ReactNativeFeatureFlags::shadowTreeLockMountPhase() {
274+
return getAccessor().shadowTreeLockMountPhase();
275+
}
276+
273277
void ReactNativeFeatureFlags::override(
274278
std::unique_ptr<ReactNativeFeatureFlagsProvider> provider) {
275279
getAccessor().override(std::move(provider));

packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<e26a0c35f1499abf24e46275bbcbe06d>>
7+
* @generated SignedSource<<4adf7c18e5b0458dd2c1c588cfb84849>>
88
*/
99

1010
/**
@@ -344,6 +344,11 @@ class ReactNativeFeatureFlags {
344344
*/
345345
RN_EXPORT static double virtualViewPrerenderRatio();
346346

347+
/**
348+
* Makes sure that one thread needs to finish mounting first before a new one can
349+
*/
350+
RN_EXPORT static bool shadowTreeLockMountPhase();
351+
347352
/**
348353
* Overrides the feature flags with the ones provided by the given provider
349354
* (generally one that extends `ReactNativeFeatureFlagsDefaults`).

0 commit comments

Comments
 (0)