mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
f1e292b9c1
Summary: TurboModule methods that return promises are synchronously run on the JavaScript thread. Back in D22489338 (https://github.com/facebook/react-native/commit/9c35b5b8c4710dfe6a4b689a5565aa78ae5b37d3), we wrote code to make them dispatch on the NativeModules thread. That code, however, was just left disabled. In this diff, I wire up the TurboModules infra to a MobileConfig, which should allow us to assess the performance impact of async dispatch of promise methods to the NativeModules thread in production, before we roll it out more widely. Changelog: [Internal] NOTE: This diff was reverted, beacuse we landed it it without D24685387. Reviewed By: ejanzer Differential Revision: D24787573 fbshipit-source-id: 324bd22ce79c2c16c7f7b6996496d255a2c6256e
84 lines
3.3 KiB
Java
84 lines
3.3 KiB
Java
/*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
package com.facebook.react.config;
|
|
|
|
/**
|
|
* Hi there, traveller! This configuration class is not meant to be used by end-users of RN. It
|
|
* contains mainly flags for features that are either under active development and not ready for
|
|
* public consumption, or for use in experiments.
|
|
*
|
|
* <p>These values are safe defaults and should not require manual changes.
|
|
*/
|
|
public class ReactFeatureFlags {
|
|
|
|
/**
|
|
* Should this application use TurboModules? If yes, then any module that inherits {@link
|
|
* com.facebook.react.turbomodule.core.interfaces.TurboModule} will NOT be passed in to C++
|
|
* CatalystInstanceImpl
|
|
*/
|
|
public static volatile boolean useTurboModules = false;
|
|
|
|
/** Should we dispatch TurboModule methods with promise returns to the NativeModules thread? */
|
|
public static volatile boolean enableTurboModulePromiseAsyncDispatch = false;
|
|
|
|
/*
|
|
* This feature flag enables logs for Fabric
|
|
*/
|
|
public static boolean enableFabricLogs = false;
|
|
|
|
/**
|
|
* Should this application use a {@link com.facebook.react.uimanager.ViewManagerDelegate} (if
|
|
* provided) to update the view properties. If {@code false}, then the generated {@code
|
|
* ...$$PropsSetter} class will be used instead.
|
|
*/
|
|
public static boolean useViewManagerDelegates = false;
|
|
|
|
/**
|
|
* Should this application use a {@link com.facebook.react.uimanager.ViewManagerDelegate} (if
|
|
* provided) to execute the view commands. If {@code false}, then {@code receiveCommand} method
|
|
* inside view manager will be called instead.
|
|
*/
|
|
public static boolean useViewManagerDelegatesForCommands = false;
|
|
|
|
/**
|
|
* This react flag enables a custom algorithm for the getChildVisibleRect() method in the classes
|
|
* ReactViewGroup, ReactHorizontalScrollView and ReactScrollView.
|
|
*
|
|
* <p>This new algorithm clip child rects if overflow is set to ViewProps.HIDDEN. More details in
|
|
* https://github.com/facebook/react-native/issues/23870 and
|
|
* https://github.com/facebook/react-native/pull/26334
|
|
*
|
|
* <p>The react flag is disabled by default because this is increasing ANRs (T57363204)
|
|
*/
|
|
public static boolean clipChildRectsIfOverflowIsHidden = false;
|
|
|
|
/**
|
|
* Temporary feature flat to control a fix in the transition to layoutOnlyViews TODO T61185028:
|
|
* remove this when bug is fixed
|
|
*/
|
|
public static boolean enableTransitionLayoutOnlyViewCleanup = false;
|
|
|
|
/** Feature flag to configure eager initialization of Fabric */
|
|
public static boolean eagerInitializeFabric = false;
|
|
|
|
/** Feature flag to use stopSurface when ReactRootView is unmounted. */
|
|
public static boolean enableStopSurfaceOnRootViewUnmount = false;
|
|
|
|
/** Use experimental SetState retry mechanism in view? */
|
|
public static boolean enableExperimentalStateUpdateRetry = false;
|
|
|
|
/** Enable caching of Spannable objects using equality of ReadableNativeMaps */
|
|
public static boolean enableSpannableCacheByReadableNativeMapEquality = true;
|
|
|
|
/** Disable customDrawOrder in ReactViewGroup under Fabric only. */
|
|
public static boolean disableCustomDrawOrderFabric = false;
|
|
|
|
/** Potential bugfix for crashes caused by mutating the view hierarchy during onDraw. */
|
|
public static boolean enableDrawMutationFix = true;
|
|
}
|