@samitouri / QOS-React-2 / commits / f14d7f0d25

Prepare Feature Flags for React Native 0.75 (#29903)

## Summary Configures the React Native open source feature flags in preparation for React Native 0.75, which will be upgraded to React 19. ## How did you test this change? ``` $ yarn test $ yarn flow fabric ```

Timothy Yung committed Jun 14, 2024 at 17:09 UTC f14d7f0d2597ea25da12bcf97772e8803f2a394c
3 files changed +150 -196
packages/shared/forks/ReactFeatureFlags.native-fb.js
+45 -54
@@ -31,75 +31,66 @@ export const {
31 } = dynamicFlags;
32
33 // The rest of the flags are static for better dead code elimination.
34 +export const allowConcurrentByDefault = false;
35 +export const debugRenderPhaseSideEffectsForStrictMode = __DEV__;
36 +export const disableClientCache = true;
37 +export const disableCommentsAsDOMContainers = true;
38 +export const disableIEWorkarounds = true;
39 +export const disableInputAttributeSyncing = false;
40 +export const disableLegacyContext = false;
41 +export const disableLegacyMode = false;
42 +export const disableSchedulerTimeoutInWorkLoop = false;
43 +export const disableStringRefs = true;
44 +export const disableTextareaChildren = false;
45 export const enableAsyncActions = true;
35 -export const enableDebugTracing = false;
46 export const enableAsyncDebugInfo = false;
37 -export const enableRenderableContext = true;
38 -export const enableSchedulingProfiler = __PROFILE__;
39 -export const enableProfilerTimer = __PROFILE__;
40 -export const enableProfilerCommitHooks = __PROFILE__;
41 -export const enableProfilerNestedUpdatePhase = __PROFILE__;
42 -export const enableUpdaterTracking = __PROFILE__;
43 -export const enableUnifiedSyncLane = true;
47 +export const enableAsyncIterableChildren = false;
48 +export const enableBinaryFlight = true;
49 export const enableCache = true;
50 export const enableComponentStackLocations = true;
46 -export const enableLegacyCache = false;
47 -export const enableBinaryFlight = true;
51 +export const enableCPUSuspense = true;
52 +export const enableCreateEventHandleAPI = false;
53 +export const enableDebugTracing = false;
54 +export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
55 +export const enableFilterEmptyStringAttributesDOM = true;
56 +export const enableFizzExternalRuntime = true;
57 export const enableFlightReadableStream = true;
49 -export const enableAsyncIterableChildren = false;
50 -export const enableTaint = true;
58 +export const enableGetInspectorDataForInstanceInProduction = true;
59 +export const enableLazyContextPropagation = false;
60 +export const enableLegacyCache = false;
61 +export const enableLegacyFBSupport = false;
62 +export const enableLegacyHidden = false;
63 +export const enableNoCloningMemoCache = false;
64 +export const enableOwnerStacks = false;
65 export const enablePostpone = false;
52 -export const debugRenderPhaseSideEffectsForStrictMode = __DEV__;
53 -export const disableCommentsAsDOMContainers = true;
54 -export const disableInputAttributeSyncing = false;
55 -export const disableIEWorkarounds = true;
66 +export const enableProfilerCommitHooks = __PROFILE__;
67 +export const enableProfilerNestedUpdatePhase = __PROFILE__;
68 +export const enableProfilerTimer = __PROFILE__;
69 +export const enableReactTestRendererWarning = false;
70 +export const enableRefAsProp = true;
71 +export const enableRenderableContext = true;
72 +export const enableRetryLaneExpiration = false;
73 +export const enableSchedulingProfiler = __PROFILE__;
74 export const enableScopeAPI = false;
57 -export const enableCreateEventHandleAPI = false;
58 -export const enableSuspenseCallback = false;
59 -export const disableLegacyContext = false;
60 -export const enableTrustedTypesIntegration = false;
61 -export const disableTextareaChildren = false;
75 +export const enableServerComponentLogs = true;
76 export const enableSuspenseAvoidThisFallback = false;
77 export const enableSuspenseAvoidThisFallbackFizz = false;
64 -export const enableCPUSuspense = true;
65 -export const enableUseMemoCacheHook = true;
66 -export const enableNoCloningMemoCache = false;
78 +export const enableSuspenseCallback = false;
79 +export const enableTaint = true;
80 +export const enableTransitionTracing = false;
81 +export const enableTrustedTypesIntegration = false;
82 +export const enableUnifiedSyncLane = true;
83 +export const enableUpdaterTracking = __PROFILE__;
84 +export const enableUseDeferredValueInitialArg = true;
85 export const enableUseEffectEventHook = false;
86 +export const enableUseMemoCacheHook = true;
87 export const favorSafetyOverHydrationPerf = true;
69 -export const enableLegacyFBSupport = false;
70 -export const enableFilterEmptyStringAttributesDOM = true;
71 -export const enableGetInspectorDataForInstanceInProduction = true;
72 -export const useModernStrictMode = true;
73 -
88 +export const forceConcurrentByDefaultForTesting = false;
89 export const renameElementSymbol = false;
75 -
76 -export const enableRetryLaneExpiration = false;
90 export const retryLaneExpirationMs = 5000;
91 export const syncLaneExpirationMs = 250;
92 export const transitionLaneExpirationMs = 5000;
80 -
81 -export const disableSchedulerTimeoutInWorkLoop = false;
82 -export const enableLazyContextPropagation = false;
83 -export const enableLegacyHidden = false;
84 -export const forceConcurrentByDefaultForTesting = false;
85 -export const allowConcurrentByDefault = false;
86 -
87 -export const enableTransitionTracing = false;
88 -
89 -export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
90 -export const enableFizzExternalRuntime = true;
91 -
92 -export const enableUseDeferredValueInitialArg = true;
93 -export const disableClientCache = true;
94 -
95 -export const enableServerComponentLogs = true;
96 -
97 -export const enableRefAsProp = true;
98 -export const disableStringRefs = true;
99 -
100 -export const enableReactTestRendererWarning = false;
101 -export const disableLegacyMode = false;
102 -export const enableOwnerStacks = false;
93 +export const useModernStrictMode = true;
94
95 // Flow magic to verify the exports of this file match the original version.
96 ((((null: any): ExportsType): FeatureFlagsType): ExportsType);
packages/shared/forks/ReactFeatureFlags.native-oss.js
+52 -75
@@ -12,100 +12,77 @@ import typeof * as ExportsType from './ReactFeatureFlags.native-oss';
12
13 // TODO: Align these flags with canary and delete this file once RN ships from Canary.
14
15 -// -----------------------------------------------------------------------------
16 -// TODO for next React Native major.
17 -//
18 -// Alias __TODO_NEXT_RN_MAJOR__ to false for easier skimming.
19 -// -----------------------------------------------------------------------------
20 -const __TODO_NEXT_RN_MAJOR__ = false;
21 -export const enableRefAsProp = __TODO_NEXT_RN_MAJOR__;
22 -export const disableStringRefs = __TODO_NEXT_RN_MAJOR__;
23 -export const enableFastJSX = __TODO_NEXT_RN_MAJOR__;
24 -export const disableLegacyMode = __TODO_NEXT_RN_MAJOR__;
25 -export const useModernStrictMode = __TODO_NEXT_RN_MAJOR__;
26 -export const enableReactTestRendererWarning = __TODO_NEXT_RN_MAJOR__;
27 -export const enableAsyncActions = __TODO_NEXT_RN_MAJOR__;
28 -export const consoleManagedByDevToolsDuringStrictMode = __TODO_NEXT_RN_MAJOR__;
29 -export const enableDeferRootSchedulingToMicrotask = __TODO_NEXT_RN_MAJOR__;
30 -export const alwaysThrottleRetries = __TODO_NEXT_RN_MAJOR__;
31 -export const enableInfiniteRenderLoopDetection = __TODO_NEXT_RN_MAJOR__;
32 -export const enableComponentStackLocations = __TODO_NEXT_RN_MAJOR__;
33 -
34 -// -----------------------------------------------------------------------------
35 -// These are ready to flip after the next React npm release (or RN switches to
36 -// Canary, but can't flip before then because of react/renderer mismatches.
37 -// -----------------------------------------------------------------------------
38 -export const enableCache = __TODO_NEXT_RN_MAJOR__;
39 -export const enableRenderableContext = __TODO_NEXT_RN_MAJOR__;
40 -export const disableDefaultPropsExceptForClasses = __TODO_NEXT_RN_MAJOR__;
41 -
42 -// -----------------------------------------------------------------------------
43 -// Already enabled for next React Native major.
44 -// Hardcode these to true after the next RN major.
45 -//
46 -// Alias __NEXT_RN_MAJOR__ to true for easier skimming.
47 -// -----------------------------------------------------------------------------
48 -const __NEXT_RN_MAJOR__ = true;
49 -export const disableClientCache = __NEXT_RN_MAJOR__;
50 -export const disableLegacyContext = __NEXT_RN_MAJOR__;
51 -export const enableTaint = __NEXT_RN_MAJOR__;
52 -export const enableUnifiedSyncLane = __NEXT_RN_MAJOR__;
53 -export const enableFizzExternalRuntime = __NEXT_RN_MAJOR__; // DOM-only
54 -export const enableBinaryFlight = true;
55 -export const enableFlightReadableStream = true;
56 -export const enableServerComponentLogs = __NEXT_RN_MAJOR__;
57 -
15 // DEV-only but enabled in the next RN Major.
16 // Not supported by flag script to avoid the special case.
17 export const debugRenderPhaseSideEffectsForStrictMode = __DEV__;
18
62 -// TODO: decide on React 19
63 -export const enableUseMemoCacheHook = true;
64 -export const enableNoCloningMemoCache = false;
65 -export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__;
66 -
19 // -----------------------------------------------------------------------------
20 // All other flags
21 // -----------------------------------------------------------------------------
22 +export const allowConcurrentByDefault = false;
23 +export const alwaysThrottleRetries = false;
24 +export const consoleManagedByDevToolsDuringStrictMode = true;
25 +export const disableClientCache = true;
26 +export const disableCommentsAsDOMContainers = true;
27 +export const disableDefaultPropsExceptForClasses = true;
28 +export const disableIEWorkarounds = true;
29 +export const disableInputAttributeSyncing = false;
30 +export const disableLegacyContext = true;
31 +export const disableLegacyMode = false;
32 +export const disableSchedulerTimeoutInWorkLoop = false;
33 +export const disableStringRefs = true;
34 +export const disableTextareaChildren = false;
35 +export const enableAddPropertiesFastPath = false;
36 +export const enableAsyncActions = true;
37 +export const enableAsyncDebugInfo = false;
38 +export const enableAsyncIterableChildren = false;
39 +export const enableBinaryFlight = true;
40 +export const enableCache = true;
41 +export const enableComponentStackLocations = true;
42 export const enableCPUSuspense = false;
43 +export const enableCreateEventHandleAPI = false;
44 export const enableDebugTracing = false;
72 -export const enableAsyncDebugInfo = false;
73 -export const enableSchedulingProfiler = __PROFILE__;
45 +export const enableDeferRootSchedulingToMicrotask = true;
46 +export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
47 +export const enableFastJSX = true;
48 +export const enableFilterEmptyStringAttributesDOM = true;
49 +export const enableFizzExternalRuntime = true;
50 +export const enableFlightReadableStream = true;
51 +export const enableGetInspectorDataForInstanceInProduction = false;
52 +export const enableInfiniteRenderLoopDetection = true;
53 +export const enableLazyContextPropagation = false;
54 export const enableLegacyCache = false;
55 +export const enableLegacyFBSupport = false;
56 +export const enableLegacyHidden = false;
57 +export const enableNoCloningMemoCache = false;
58 +export const enableOwnerStacks = __EXPERIMENTAL__;
59 export const enablePostpone = false;
76 -export const disableCommentsAsDOMContainers = true;
77 -export const disableInputAttributeSyncing = false;
78 -export const disableIEWorkarounds = true;
60 +export const enableReactTestRendererWarning = false;
61 +export const enableRefAsProp = true;
62 +export const enableRenderableContext = true;
63 +export const enableRetryLaneExpiration = false;
64 +export const enableSchedulingProfiler = __PROFILE__;
65 export const enableScopeAPI = false;
80 -export const enableCreateEventHandleAPI = false;
81 -export const enableSuspenseCallback = false;
82 -export const enableTrustedTypesIntegration = false;
83 -export const disableTextareaChildren = false;
66 +export const enableServerComponentLogs = true;
67 +export const enableShallowPropDiffing = false;
68 export const enableSuspenseAvoidThisFallback = false;
69 export const enableSuspenseAvoidThisFallbackFizz = false;
70 +export const enableSuspenseCallback = false;
71 +export const enableTaint = true;
72 +export const enableTransitionTracing = false;
73 +export const enableTrustedTypesIntegration = false;
74 +export const enableUnifiedSyncLane = true;
75 +export const enableUseDeferredValueInitialArg = true;
76 export const enableUseEffectEventHook = false;
77 +export const enableUseMemoCacheHook = true;
78 export const favorSafetyOverHydrationPerf = true;
88 -export const enableLegacyFBSupport = false;
89 -export const enableFilterEmptyStringAttributesDOM = true;
90 -export const enableGetInspectorDataForInstanceInProduction = false;
91 -export const enableRetryLaneExpiration = false;
92 -export const retryLaneExpirationMs = 5000;
93 -export const syncLaneExpirationMs = 250;
94 -export const transitionLaneExpirationMs = 5000;
95 -export const disableSchedulerTimeoutInWorkLoop = false;
96 -export const enableLazyContextPropagation = false;
97 -export const enableLegacyHidden = false;
79 export const forceConcurrentByDefaultForTesting = false;
99 -export const allowConcurrentByDefault = false;
100 -export const enableTransitionTracing = false;
101 -export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
80 export const passChildrenWhenCloningPersistedNodes = false;
103 -export const enableAsyncIterableChildren = false;
104 -export const enableAddPropertiesFastPath = false;
105 -export const enableShallowPropDiffing = false;
81 export const renameElementSymbol = true;
107 -
108 -export const enableOwnerStacks = __EXPERIMENTAL__;
82 +export const retryLaneExpirationMs = 5000;
83 +export const syncLaneExpirationMs = 250;
84 +export const transitionLaneExpirationMs = 5000;
85 +export const useModernStrictMode = true;
86
87 // Profiling Only
88 export const enableProfilerTimer = __PROFILE__;
packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js
+53 -67
@@ -10,89 +10,75 @@
10 import typeof * as FeatureFlagsType from 'shared/ReactFeatureFlags';
11 import typeof * as ExportsType from './ReactFeatureFlags.test-renderer';
12
13 +export const allowConcurrentByDefault = true;
14 +export const alwaysThrottleRetries = false;
15 +export const consoleManagedByDevToolsDuringStrictMode = false;
16 export const debugRenderPhaseSideEffectsForStrictMode = false;
14 -export const enableDebugTracing = false;
15 -export const enableAsyncDebugInfo = false;
16 -export const enableSchedulingProfiler = __PROFILE__;
17 -export const enableProfilerTimer = __PROFILE__;
18 -export const enableProfilerCommitHooks = __PROFILE__;
19 -export const enableProfilerNestedUpdatePhase = __PROFILE__;
20 -export const enableUpdaterTracking = false;
21 -export const enableCache = true;
22 -export const enableLegacyCache = false;
23 -export const enableBinaryFlight = true;
24 -export const enableFlightReadableStream = true;
25 -export const enableAsyncIterableChildren = false;
26 -export const enableTaint = true;
27 -export const enablePostpone = false;
17 +export const disableClientCache = true;
18 export const disableCommentsAsDOMContainers = true;
29 -export const disableInputAttributeSyncing = false;
19 +export const disableDefaultPropsExceptForClasses = false;
20 export const disableIEWorkarounds = true;
31 -export const enableScopeAPI = false;
32 -export const enableCreateEventHandleAPI = false;
33 -export const enableSuspenseCallback = false;
21 +export const disableInputAttributeSyncing = false;
22 export const disableLegacyContext = false;
35 -export const enableTrustedTypesIntegration = false;
23 +export const disableLegacyMode = false;
24 +export const disableSchedulerTimeoutInWorkLoop = false;
25 +export const disableStringRefs = true;
26 export const disableTextareaChildren = false;
27 +export const enableAddPropertiesFastPath = false;
28 +export const enableAsyncActions = true;
29 +export const enableAsyncDebugInfo = false;
30 +export const enableAsyncIterableChildren = false;
31 +export const enableBinaryFlight = true;
32 +export const enableCache = true;
33 export const enableComponentStackLocations = true;
38 -export const enableLegacyFBSupport = false;
34 +export const enableCPUSuspense = true;
35 +export const enableCreateEventHandleAPI = false;
36 +export const enableDebugTracing = false;
37 +export const enableDeferRootSchedulingToMicrotask = false;
38 +export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
39 +export const enableFastJSX = true;
40 export const enableFilterEmptyStringAttributesDOM = true;
41 +export const enableFizzExternalRuntime = true;
42 +export const enableFlightReadableStream = true;
43 export const enableGetInspectorDataForInstanceInProduction = false;
44 +export const enableInfiniteRenderLoopDetection = false;
45 +export const enableLazyContextPropagation = false;
46 +export const enableLegacyCache = false;
47 +export const enableLegacyFBSupport = false;
48 +export const enableLegacyHidden = false;
49 +export const enableNoCloningMemoCache = false;
50 +export const enableOwnerStacks = false;
51 +export const enablePostpone = false;
52 +export const enableProfilerCommitHooks = __PROFILE__;
53 +export const enableProfilerNestedUpdatePhase = __PROFILE__;
54 +export const enableProfilerTimer = __PROFILE__;
55 +export const enableReactTestRendererWarning = false;
56 +export const enableRefAsProp = true;
57 +export const enableRenderableContext = true;
58 +export const enableRetryLaneExpiration = false;
59 +export const enableSchedulingProfiler = __PROFILE__;
60 +export const enableScopeAPI = false;
61 +export const enableServerComponentLogs = true;
62 +export const enableShallowPropDiffing = false;
63 export const enableSuspenseAvoidThisFallback = false;
64 export const enableSuspenseAvoidThisFallbackFizz = false;
43 -export const enableCPUSuspense = true;
44 -export const enableUseMemoCacheHook = true;
45 -export const enableNoCloningMemoCache = false;
65 +export const enableSuspenseCallback = false;
66 +export const enableTaint = true;
67 +export const enableTransitionTracing = false;
68 +export const enableTrustedTypesIntegration = false;
69 +export const enableUnifiedSyncLane = true;
70 +export const enableUpdaterTracking = false;
71 +export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__;
72 export const enableUseEffectEventHook = false;
73 +export const enableUseMemoCacheHook = true;
74 export const favorSafetyOverHydrationPerf = true;
48 -export const enableInfiniteRenderLoopDetection = false;
49 -export const enableRenderableContext = true;
50 -
51 -export const enableRetryLaneExpiration = false;
75 +export const forceConcurrentByDefaultForTesting = false;
76 +export const passChildrenWhenCloningPersistedNodes = false;
77 +export const renameElementSymbol = false;
78 export const retryLaneExpirationMs = 5000;
79 export const syncLaneExpirationMs = 250;
80 export const transitionLaneExpirationMs = 5000;
55 -
56 -export const disableSchedulerTimeoutInWorkLoop = false;
57 -export const enableLazyContextPropagation = false;
58 -export const enableLegacyHidden = false;
59 -export const forceConcurrentByDefaultForTesting = false;
60 -export const enableUnifiedSyncLane = true;
61 -export const allowConcurrentByDefault = true;
62 -
63 -export const consoleManagedByDevToolsDuringStrictMode = false;
64 -
65 -export const enableTransitionTracing = false;
66 -
81 export const useModernStrictMode = true;
68 -export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
69 -export const enableFizzExternalRuntime = true;
70 -export const enableDeferRootSchedulingToMicrotask = false;
71 -
72 -export const enableAsyncActions = true;
73 -
74 -export const alwaysThrottleRetries = false;
75 -
76 -export const passChildrenWhenCloningPersistedNodes = false;
77 -export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__;
78 -export const disableClientCache = true;
79 -
80 -export const enableServerComponentLogs = true;
81 -
82 -export const enableRefAsProp = true;
83 -export const disableStringRefs = true;
84 -export const enableFastJSX = true;
85 -
86 -export const enableReactTestRendererWarning = false;
87 -export const disableLegacyMode = false;
88 -
89 -export const disableDefaultPropsExceptForClasses = false;
90 -export const enableAddPropertiesFastPath = false;
91 -
92 -export const renameElementSymbol = false;
93 -
94 -export const enableOwnerStacks = false;
95 -export const enableShallowPropDiffing = false;
82
83 // Flow magic to verify the exports of this file match the original version.
84 ((((null: any): ExportsType): FeatureFlagsType): ExportsType);