mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
remove enableFixForClippedSubviewsCrash experiment (#43963)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43963 changelog: [internal] This experiment did work out. Let's clean it up Reviewed By: cortinico Differential Revision: D55797519 fbshipit-source-id: a5da97a7d31b9395b25bfd37db567054721599b0
This commit is contained in:
committed by
Facebook GitHub Bot
parent
49b0d26d45
commit
3e73dfb535
+2
-21
@@ -35,7 +35,6 @@ import com.facebook.react.fabric.GuardedFrameCallback;
|
||||
import com.facebook.react.fabric.events.EventEmitterWrapper;
|
||||
import com.facebook.react.fabric.mounting.MountingManager.MountItemExecutor;
|
||||
import com.facebook.react.fabric.mounting.mountitems.MountItem;
|
||||
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags;
|
||||
import com.facebook.react.modules.core.ReactChoreographer;
|
||||
import com.facebook.react.touch.JSResponderHandler;
|
||||
import com.facebook.react.uimanager.IViewGroupManager;
|
||||
@@ -50,7 +49,6 @@ import com.facebook.react.uimanager.ThemedReactContext;
|
||||
import com.facebook.react.uimanager.ViewManager;
|
||||
import com.facebook.react.uimanager.ViewManagerRegistry;
|
||||
import com.facebook.react.uimanager.events.EventCategoryDef;
|
||||
import com.facebook.react.views.view.ReactViewGroup;
|
||||
import java.util.ArrayDeque;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
@@ -384,25 +382,8 @@ public class SurfaceMountingManager {
|
||||
// should be impossible - we mark this as a "readded" View and
|
||||
// thus prevent the RemoveDeleteTree worker from deleting this
|
||||
// View in the future.
|
||||
if (ReactNativeFeatureFlags.enableFixForClippedSubviewsCrash()) {
|
||||
if (viewParent instanceof ReactViewGroup) {
|
||||
ReactViewGroup viewParentGroup = (ReactViewGroup) viewParent;
|
||||
// If the parent group has subview clipping enabled, we need to use the specialized
|
||||
// method.
|
||||
// Otherwise, ReactViewGroup's member variables managing subview clipping
|
||||
// will get out of sync with Android's view hierarchy, leading to a crash.
|
||||
if (viewParentGroup.getRemoveClippedSubviews()) {
|
||||
viewParentGroup.removeViewWithSubviewClippingEnabled(view);
|
||||
} else {
|
||||
viewParentGroup.removeView(view);
|
||||
}
|
||||
} else if (viewParent instanceof ViewGroup) {
|
||||
((ViewGroup) viewParent).removeView(view);
|
||||
}
|
||||
} else {
|
||||
if (viewParent instanceof ViewGroup) {
|
||||
((ViewGroup) viewParent).removeView(view);
|
||||
}
|
||||
if (viewParent instanceof ViewGroup) {
|
||||
((ViewGroup) viewParent).removeView(view);
|
||||
}
|
||||
mErroneouslyReaddedReactTags.add(tag);
|
||||
}
|
||||
|
||||
+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<<cc44495e0b264e2d56e155a164a774e7>>
|
||||
* @generated SignedSource<<4c0ede4fa927bc8361d0355bc7cddb10>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -58,12 +58,6 @@ public object ReactNativeFeatureFlags {
|
||||
@JvmStatic
|
||||
public fun enableCustomDrawOrderFabric(): Boolean = accessor.enableCustomDrawOrderFabric()
|
||||
|
||||
/**
|
||||
* Attempt at fixing a crash related to subview clipping on Android. This is a kill switch for the fix
|
||||
*/
|
||||
@JvmStatic
|
||||
public fun enableFixForClippedSubviewsCrash(): Boolean = accessor.enableFixForClippedSubviewsCrash()
|
||||
|
||||
/**
|
||||
* Enables the use of microtasks in Hermes (scheduling) and RuntimeScheduler (execution).
|
||||
*/
|
||||
|
||||
+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<<99c459dce42767a7da84810fbceea73e>>
|
||||
* @generated SignedSource<<aa5b9eac9da720ff1a1bc44325a92c46>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -25,7 +25,6 @@ public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccesso
|
||||
private var enableBackgroundExecutorCache: Boolean? = null
|
||||
private var enableCleanTextInputYogaNodeCache: Boolean? = null
|
||||
private var enableCustomDrawOrderFabricCache: Boolean? = null
|
||||
private var enableFixForClippedSubviewsCrashCache: Boolean? = null
|
||||
private var enableMicrotasksCache: Boolean? = null
|
||||
private var enableMountHooksAndroidCache: Boolean? = null
|
||||
private var enableSpannableBuildingUnificationCache: Boolean? = null
|
||||
@@ -81,15 +80,6 @@ public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccesso
|
||||
return cached
|
||||
}
|
||||
|
||||
override fun enableFixForClippedSubviewsCrash(): Boolean {
|
||||
var cached = enableFixForClippedSubviewsCrashCache
|
||||
if (cached == null) {
|
||||
cached = ReactNativeFeatureFlagsCxxInterop.enableFixForClippedSubviewsCrash()
|
||||
enableFixForClippedSubviewsCrashCache = cached
|
||||
}
|
||||
return cached
|
||||
}
|
||||
|
||||
override fun enableMicrotasks(): Boolean {
|
||||
var cached = enableMicrotasksCache
|
||||
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<<e3a1a041fc9d4f8ea504d064ea01607a>>
|
||||
* @generated SignedSource<<69c4a4aa9621adfe02c15f5f011b3804>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -38,8 +38,6 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
||||
|
||||
@DoNotStrip @JvmStatic public external fun enableCustomDrawOrderFabric(): Boolean
|
||||
|
||||
@DoNotStrip @JvmStatic public external fun enableFixForClippedSubviewsCrash(): Boolean
|
||||
|
||||
@DoNotStrip @JvmStatic public external fun enableMicrotasks(): Boolean
|
||||
|
||||
@DoNotStrip @JvmStatic public external fun enableMountHooksAndroid(): 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<<cc645d933e253361d5933f56501a35e9>>
|
||||
* @generated SignedSource<<299901489d5059ed7124f6738be0e48d>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -33,8 +33,6 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
||||
|
||||
override fun enableCustomDrawOrderFabric(): Boolean = false
|
||||
|
||||
override fun enableFixForClippedSubviewsCrash(): Boolean = false
|
||||
|
||||
override fun enableMicrotasks(): Boolean = false
|
||||
|
||||
override fun enableMountHooksAndroid(): 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<<dc699311bdbebb8db4ee313611d192b5>>
|
||||
* @generated SignedSource<<1c5e5d965ec746a3d06748ef922b8460>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -29,7 +29,6 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces
|
||||
private var enableBackgroundExecutorCache: Boolean? = null
|
||||
private var enableCleanTextInputYogaNodeCache: Boolean? = null
|
||||
private var enableCustomDrawOrderFabricCache: Boolean? = null
|
||||
private var enableFixForClippedSubviewsCrashCache: Boolean? = null
|
||||
private var enableMicrotasksCache: Boolean? = null
|
||||
private var enableMountHooksAndroidCache: Boolean? = null
|
||||
private var enableSpannableBuildingUnificationCache: Boolean? = null
|
||||
@@ -90,16 +89,6 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces
|
||||
return cached
|
||||
}
|
||||
|
||||
override fun enableFixForClippedSubviewsCrash(): Boolean {
|
||||
var cached = enableFixForClippedSubviewsCrashCache
|
||||
if (cached == null) {
|
||||
cached = currentProvider.enableFixForClippedSubviewsCrash()
|
||||
accessedFeatureFlags.add("enableFixForClippedSubviewsCrash")
|
||||
enableFixForClippedSubviewsCrashCache = cached
|
||||
}
|
||||
return cached
|
||||
}
|
||||
|
||||
override fun enableMicrotasks(): Boolean {
|
||||
var cached = enableMicrotasksCache
|
||||
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<<51dd25e88ebf2ac9929c477e710d3d8d>>
|
||||
* @generated SignedSource<<2412f7c99bf424397e091a529ac05f32>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -33,8 +33,6 @@ public interface ReactNativeFeatureFlagsProvider {
|
||||
|
||||
@DoNotStrip public fun enableCustomDrawOrderFabric(): Boolean
|
||||
|
||||
@DoNotStrip public fun enableFixForClippedSubviewsCrash(): Boolean
|
||||
|
||||
@DoNotStrip public fun enableMicrotasks(): Boolean
|
||||
|
||||
@DoNotStrip public fun enableMountHooksAndroid(): Boolean
|
||||
|
||||
+1
-3
@@ -692,9 +692,7 @@ public class ReactViewGroup extends ViewGroup
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: make this method package only once we remove Android's mounting layer retry mechanism.
|
||||
@VisibleForTesting
|
||||
public void removeViewWithSubviewClippingEnabled(View view) {
|
||||
/*package*/ void removeViewWithSubviewClippingEnabled(View view) {
|
||||
UiThreadUtil.assertOnUiThread();
|
||||
|
||||
Assertions.assertCondition(mRemoveClippedSubviews);
|
||||
|
||||
+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<<ade99ab28f82affa77445231caed9e9d>>
|
||||
* @generated SignedSource<<0756d56ae2ce45f020ac9a87e9a3d1c3>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -69,12 +69,6 @@ class ReactNativeFeatureFlagsProviderHolder
|
||||
return method(javaProvider_);
|
||||
}
|
||||
|
||||
bool enableFixForClippedSubviewsCrash() override {
|
||||
static const auto method =
|
||||
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("enableFixForClippedSubviewsCrash");
|
||||
return method(javaProvider_);
|
||||
}
|
||||
|
||||
bool enableMicrotasks() override {
|
||||
static const auto method =
|
||||
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("enableMicrotasks");
|
||||
@@ -158,11 +152,6 @@ bool JReactNativeFeatureFlagsCxxInterop::enableCustomDrawOrderFabric(
|
||||
return ReactNativeFeatureFlags::enableCustomDrawOrderFabric();
|
||||
}
|
||||
|
||||
bool JReactNativeFeatureFlagsCxxInterop::enableFixForClippedSubviewsCrash(
|
||||
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
||||
return ReactNativeFeatureFlags::enableFixForClippedSubviewsCrash();
|
||||
}
|
||||
|
||||
bool JReactNativeFeatureFlagsCxxInterop::enableMicrotasks(
|
||||
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
||||
return ReactNativeFeatureFlags::enableMicrotasks();
|
||||
@@ -240,9 +229,6 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
||||
makeNativeMethod(
|
||||
"enableCustomDrawOrderFabric",
|
||||
JReactNativeFeatureFlagsCxxInterop::enableCustomDrawOrderFabric),
|
||||
makeNativeMethod(
|
||||
"enableFixForClippedSubviewsCrash",
|
||||
JReactNativeFeatureFlagsCxxInterop::enableFixForClippedSubviewsCrash),
|
||||
makeNativeMethod(
|
||||
"enableMicrotasks",
|
||||
JReactNativeFeatureFlagsCxxInterop::enableMicrotasks),
|
||||
|
||||
+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<<ca2e44ed44d1ba779bb4ac49d795299f>>
|
||||
* @generated SignedSource<<1ae5c51e5b1c1725565e57a02d19c3a7>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -45,9 +45,6 @@ class JReactNativeFeatureFlagsCxxInterop
|
||||
static bool enableCustomDrawOrderFabric(
|
||||
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
||||
|
||||
static bool enableFixForClippedSubviewsCrash(
|
||||
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
||||
|
||||
static bool enableMicrotasks(
|
||||
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<<f1a871bce940e7558363902e56a1ed5e>>
|
||||
* @generated SignedSource<<520ae882fb57dec58ededd47411c0b1d>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -41,10 +41,6 @@ bool ReactNativeFeatureFlags::enableCustomDrawOrderFabric() {
|
||||
return getAccessor().enableCustomDrawOrderFabric();
|
||||
}
|
||||
|
||||
bool ReactNativeFeatureFlags::enableFixForClippedSubviewsCrash() {
|
||||
return getAccessor().enableFixForClippedSubviewsCrash();
|
||||
}
|
||||
|
||||
bool ReactNativeFeatureFlags::enableMicrotasks() {
|
||||
return getAccessor().enableMicrotasks();
|
||||
}
|
||||
|
||||
@@ -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<<881b149aca14f4f73e45e02089787a88>>
|
||||
* @generated SignedSource<<e9fbc07cb8f1c50e015e34035d50b8d1>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -62,11 +62,6 @@ class ReactNativeFeatureFlags {
|
||||
*/
|
||||
RN_EXPORT static bool enableCustomDrawOrderFabric();
|
||||
|
||||
/**
|
||||
* Attempt at fixing a crash related to subview clipping on Android. This is a kill switch for the fix
|
||||
*/
|
||||
RN_EXPORT static bool enableFixForClippedSubviewsCrash();
|
||||
|
||||
/**
|
||||
* Enables the use of microtasks in Hermes (scheduling) and RuntimeScheduler (execution).
|
||||
*/
|
||||
|
||||
+10
-28
@@ -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<<a6f3bb8f6215eb4178483add1df7c626>>
|
||||
* @generated SignedSource<<65cbd0e1b92ee06da3f466386c516dbc>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -119,24 +119,6 @@ bool ReactNativeFeatureFlagsAccessor::enableCustomDrawOrderFabric() {
|
||||
return flagValue.value();
|
||||
}
|
||||
|
||||
bool ReactNativeFeatureFlagsAccessor::enableFixForClippedSubviewsCrash() {
|
||||
auto flagValue = enableFixForClippedSubviewsCrash_.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(5, "enableFixForClippedSubviewsCrash");
|
||||
|
||||
flagValue = currentProvider_->enableFixForClippedSubviewsCrash();
|
||||
enableFixForClippedSubviewsCrash_ = flagValue;
|
||||
}
|
||||
|
||||
return flagValue.value();
|
||||
}
|
||||
|
||||
bool ReactNativeFeatureFlagsAccessor::enableMicrotasks() {
|
||||
auto flagValue = enableMicrotasks_.load();
|
||||
|
||||
@@ -146,7 +128,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(6, "enableMicrotasks");
|
||||
markFlagAsAccessed(5, "enableMicrotasks");
|
||||
|
||||
flagValue = currentProvider_->enableMicrotasks();
|
||||
enableMicrotasks_ = flagValue;
|
||||
@@ -164,7 +146,7 @@ bool ReactNativeFeatureFlagsAccessor::enableMountHooksAndroid() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(7, "enableMountHooksAndroid");
|
||||
markFlagAsAccessed(6, "enableMountHooksAndroid");
|
||||
|
||||
flagValue = currentProvider_->enableMountHooksAndroid();
|
||||
enableMountHooksAndroid_ = flagValue;
|
||||
@@ -182,7 +164,7 @@ bool ReactNativeFeatureFlagsAccessor::enableSpannableBuildingUnification() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(8, "enableSpannableBuildingUnification");
|
||||
markFlagAsAccessed(7, "enableSpannableBuildingUnification");
|
||||
|
||||
flagValue = currentProvider_->enableSpannableBuildingUnification();
|
||||
enableSpannableBuildingUnification_ = 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::inspectorEnableCxxInspectorPackagerConnect
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(11, "inspectorEnableCxxInspectorPackagerConnection");
|
||||
markFlagAsAccessed(10, "inspectorEnableCxxInspectorPackagerConnection");
|
||||
|
||||
flagValue = currentProvider_->inspectorEnableCxxInspectorPackagerConnection();
|
||||
inspectorEnableCxxInspectorPackagerConnection_ = flagValue;
|
||||
@@ -254,7 +236,7 @@ bool ReactNativeFeatureFlagsAccessor::inspectorEnableModernCDPRegistry() {
|
||||
// be accessing the provider multiple times but the end state of this
|
||||
// instance and the returned flag value would be the same.
|
||||
|
||||
markFlagAsAccessed(12, "inspectorEnableModernCDPRegistry");
|
||||
markFlagAsAccessed(11, "inspectorEnableModernCDPRegistry");
|
||||
|
||||
flagValue = currentProvider_->inspectorEnableModernCDPRegistry();
|
||||
inspectorEnableModernCDPRegistry_ = flagValue;
|
||||
@@ -272,7 +254,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(13, "useModernRuntimeScheduler");
|
||||
markFlagAsAccessed(12, "useModernRuntimeScheduler");
|
||||
|
||||
flagValue = currentProvider_->useModernRuntimeScheduler();
|
||||
useModernRuntimeScheduler_ = flagValue;
|
||||
@@ -290,7 +272,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(14, "useNativeViewConfigsInBridgelessMode");
|
||||
markFlagAsAccessed(13, "useNativeViewConfigsInBridgelessMode");
|
||||
|
||||
flagValue = currentProvider_->useNativeViewConfigsInBridgelessMode();
|
||||
useNativeViewConfigsInBridgelessMode_ = 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<<48b454c264577c4e85eb6b9b46d5d2c5>>
|
||||
* @generated SignedSource<<00e1c8f5c451c9744257e0b3fc566949>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -36,7 +36,6 @@ class ReactNativeFeatureFlagsAccessor {
|
||||
bool enableBackgroundExecutor();
|
||||
bool enableCleanTextInputYogaNode();
|
||||
bool enableCustomDrawOrderFabric();
|
||||
bool enableFixForClippedSubviewsCrash();
|
||||
bool enableMicrotasks();
|
||||
bool enableMountHooksAndroid();
|
||||
bool enableSpannableBuildingUnification();
|
||||
@@ -56,14 +55,13 @@ class ReactNativeFeatureFlagsAccessor {
|
||||
std::unique_ptr<ReactNativeFeatureFlagsProvider> currentProvider_;
|
||||
bool wasOverridden_;
|
||||
|
||||
std::array<std::atomic<const char*>, 15> accessedFeatureFlags_;
|
||||
std::array<std::atomic<const char*>, 14> accessedFeatureFlags_;
|
||||
|
||||
std::atomic<std::optional<bool>> commonTestFlag_;
|
||||
std::atomic<std::optional<bool>> batchRenderingUpdatesInEventLoop_;
|
||||
std::atomic<std::optional<bool>> enableBackgroundExecutor_;
|
||||
std::atomic<std::optional<bool>> enableCleanTextInputYogaNode_;
|
||||
std::atomic<std::optional<bool>> enableCustomDrawOrderFabric_;
|
||||
std::atomic<std::optional<bool>> enableFixForClippedSubviewsCrash_;
|
||||
std::atomic<std::optional<bool>> enableMicrotasks_;
|
||||
std::atomic<std::optional<bool>> enableMountHooksAndroid_;
|
||||
std::atomic<std::optional<bool>> enableSpannableBuildingUnification_;
|
||||
|
||||
+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<<6b07d06ca1f100cca35e2b8b108f1993>>
|
||||
* @generated SignedSource<<57c83d1855f16d4c3ffdd5cb98d57571>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -47,10 +47,6 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool enableFixForClippedSubviewsCrash() override {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool enableMicrotasks() 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<<633090e21068e67cff5aa9b0d4f9e323>>
|
||||
* @generated SignedSource<<664351a329e558acf1923baeafe35e9d>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -30,7 +30,6 @@ class ReactNativeFeatureFlagsProvider {
|
||||
virtual bool enableBackgroundExecutor() = 0;
|
||||
virtual bool enableCleanTextInputYogaNode() = 0;
|
||||
virtual bool enableCustomDrawOrderFabric() = 0;
|
||||
virtual bool enableFixForClippedSubviewsCrash() = 0;
|
||||
virtual bool enableMicrotasks() = 0;
|
||||
virtual bool enableMountHooksAndroid() = 0;
|
||||
virtual bool enableSpannableBuildingUnification() = 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<<8b20f7b7385c91e54cd385d6af54691b>>
|
||||
* @generated SignedSource<<8c7e1d8afe1bc2068c94148a258c2ed0>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -62,11 +62,6 @@ bool NativeReactNativeFeatureFlags::enableCustomDrawOrderFabric(
|
||||
return ReactNativeFeatureFlags::enableCustomDrawOrderFabric();
|
||||
}
|
||||
|
||||
bool NativeReactNativeFeatureFlags::enableFixForClippedSubviewsCrash(
|
||||
jsi::Runtime& /*runtime*/) {
|
||||
return ReactNativeFeatureFlags::enableFixForClippedSubviewsCrash();
|
||||
}
|
||||
|
||||
bool NativeReactNativeFeatureFlags::enableMicrotasks(
|
||||
jsi::Runtime& /*runtime*/) {
|
||||
return ReactNativeFeatureFlags::enableMicrotasks();
|
||||
|
||||
+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<<0dcfc928ff0eca1cb37766170d9b4379>>
|
||||
* @generated SignedSource<<9d8d8fd8a9da981fd35c9f134f575e57>>
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -45,8 +45,6 @@ class NativeReactNativeFeatureFlags
|
||||
|
||||
bool enableCustomDrawOrderFabric(jsi::Runtime& runtime);
|
||||
|
||||
bool enableFixForClippedSubviewsCrash(jsi::Runtime& runtime);
|
||||
|
||||
bool enableMicrotasks(jsi::Runtime& runtime);
|
||||
|
||||
bool enableMountHooksAndroid(jsi::Runtime& runtime);
|
||||
|
||||
@@ -51,11 +51,6 @@ const definitions: FeatureFlagDefinitions = {
|
||||
description:
|
||||
'When enabled, Fabric will use customDrawOrder in ReactViewGroup (similar to old architecture).',
|
||||
},
|
||||
enableFixForClippedSubviewsCrash: {
|
||||
defaultValue: false,
|
||||
description:
|
||||
'Attempt at fixing a crash related to subview clipping on Android. This is a kill switch for the fix',
|
||||
},
|
||||
enableMicrotasks: {
|
||||
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<<ee6090277aad4b98818b1a3ecb913a23>>
|
||||
* @generated SignedSource<<9286e5fc6398d839d271af4f4a8ae94b>>
|
||||
* @flow strict-local
|
||||
*/
|
||||
|
||||
@@ -45,7 +45,6 @@ export type ReactNativeFeatureFlags = {
|
||||
enableBackgroundExecutor: Getter<boolean>,
|
||||
enableCleanTextInputYogaNode: Getter<boolean>,
|
||||
enableCustomDrawOrderFabric: Getter<boolean>,
|
||||
enableFixForClippedSubviewsCrash: Getter<boolean>,
|
||||
enableMicrotasks: Getter<boolean>,
|
||||
enableMountHooksAndroid: Getter<boolean>,
|
||||
enableSpannableBuildingUnification: Getter<boolean>,
|
||||
@@ -117,10 +116,6 @@ export const enableCleanTextInputYogaNode: Getter<boolean> = createNativeFlagGet
|
||||
* When enabled, Fabric will use customDrawOrder in ReactViewGroup (similar to old architecture).
|
||||
*/
|
||||
export const enableCustomDrawOrderFabric: Getter<boolean> = createNativeFlagGetter('enableCustomDrawOrderFabric', false);
|
||||
/**
|
||||
* Attempt at fixing a crash related to subview clipping on Android. This is a kill switch for the fix
|
||||
*/
|
||||
export const enableFixForClippedSubviewsCrash: Getter<boolean> = createNativeFlagGetter('enableFixForClippedSubviewsCrash', false);
|
||||
/**
|
||||
* Enables the use of microtasks in Hermes (scheduling) and RuntimeScheduler (execution).
|
||||
*/
|
||||
|
||||
+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<<9e0489da8f2a77565018ee983f7fae7e>>
|
||||
* @generated SignedSource<<ac87a6f3de21bd3dd244b99322cb2d2c>>
|
||||
* @flow strict-local
|
||||
*/
|
||||
|
||||
@@ -28,7 +28,6 @@ export interface Spec extends TurboModule {
|
||||
+enableBackgroundExecutor?: () => boolean;
|
||||
+enableCleanTextInputYogaNode?: () => boolean;
|
||||
+enableCustomDrawOrderFabric?: () => boolean;
|
||||
+enableFixForClippedSubviewsCrash?: () => boolean;
|
||||
+enableMicrotasks?: () => boolean;
|
||||
+enableMountHooksAndroid?: () => boolean;
|
||||
+enableSpannableBuildingUnification?: () => boolean;
|
||||
|
||||
Reference in New Issue
Block a user