Skip to content

Commit f14d7f0

Browse files
authored
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 ```
1 parent 05a3a7f commit f14d7f0

File tree

3 files changed

+150
-196
lines changed

3 files changed

+150
-196
lines changed

Diff for: packages/shared/forks/ReactFeatureFlags.native-fb.js

+45-54
Original file line numberDiff line numberDiff line change
@@ -31,75 +31,66 @@ export const {
3131
} = dynamicFlags;
3232

3333
// 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;
3445
export const enableAsyncActions = true;
35-
export const enableDebugTracing = false;
3646
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;
4449
export const enableCache = true;
4550
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;
4857
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;
5165
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__;
5674
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;
6276
export const enableSuspenseAvoidThisFallback = false;
6377
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;
6785
export const enableUseEffectEventHook = false;
86+
export const enableUseMemoCacheHook = true;
6887
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;
7489
export const renameElementSymbol = false;
75-
76-
export const enableRetryLaneExpiration = false;
7790
export const retryLaneExpirationMs = 5000;
7891
export const syncLaneExpirationMs = 250;
7992
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;
10394

10495
// Flow magic to verify the exports of this file match the original version.
10596
((((null: any): ExportsType): FeatureFlagsType): ExportsType);

Diff for: packages/shared/forks/ReactFeatureFlags.native-oss.js

+52-75
Original file line numberDiff line numberDiff line change
@@ -12,100 +12,77 @@ import typeof * as ExportsType from './ReactFeatureFlags.native-oss';
1212

1313
// TODO: Align these flags with canary and delete this file once RN ships from Canary.
1414

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-
5815
// DEV-only but enabled in the next RN Major.
5916
// Not supported by flag script to avoid the special case.
6017
export const debugRenderPhaseSideEffectsForStrictMode = __DEV__;
6118

62-
// TODO: decide on React 19
63-
export const enableUseMemoCacheHook = true;
64-
export const enableNoCloningMemoCache = false;
65-
export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__;
66-
6719
// -----------------------------------------------------------------------------
6820
// All other flags
6921
// -----------------------------------------------------------------------------
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;
7042
export const enableCPUSuspense = false;
43+
export const enableCreateEventHandleAPI = false;
7144
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;
7454
export const enableLegacyCache = false;
55+
export const enableLegacyFBSupport = false;
56+
export const enableLegacyHidden = false;
57+
export const enableNoCloningMemoCache = false;
58+
export const enableOwnerStacks = __EXPERIMENTAL__;
7559
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__;
7965
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;
8468
export const enableSuspenseAvoidThisFallback = false;
8569
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;
8676
export const enableUseEffectEventHook = false;
77+
export const enableUseMemoCacheHook = true;
8778
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;
9879
export const forceConcurrentByDefaultForTesting = false;
99-
export const allowConcurrentByDefault = false;
100-
export const enableTransitionTracing = false;
101-
export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
10280
export const passChildrenWhenCloningPersistedNodes = false;
103-
export const enableAsyncIterableChildren = false;
104-
export const enableAddPropertiesFastPath = false;
105-
export const enableShallowPropDiffing = false;
10681
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;
10986

11087
// Profiling Only
11188
export const enableProfilerTimer = __PROFILE__;

0 commit comments

Comments
 (0)