[flags] remove enableDeferRootSchedulingToMicrotask (#32008)
Wait for me to merge, but this has landed everywhere and is ready to remove.
Ricky committed
Jan 8, 2025 at 12:03 UTC
379089d28875f565a488ec169e84c78e87a1dc4d
10 files changed
+32
-100
packages/react-reconciler/src/ReactFiberRootScheduler.js
+1
-13
@@ -14,7 +14,6 @@ import type {BatchConfigTransition} from './ReactFiberTracingMarkerComponent';
14
15
import {
16
disableLegacyMode,
17
- enableDeferRootSchedulingToMicrotask,
17
disableSchedulerTimeoutInWorkLoop,
18
enableProfilerTimer,
19
enableProfilerNestedUpdatePhase,
@@ -139,14 +138,6 @@ export function ensureRootIsScheduled(root: FiberRoot): void {
138
}
139
}
140
142
- if (!enableDeferRootSchedulingToMicrotask) {
143
- // While this flag is disabled, we schedule the render task immediately
144
- // instead of waiting a microtask.
145
- // TODO: We need to land enableDeferRootSchedulingToMicrotask ASAP to
146
- // unblock additional features we have planned.
147
- scheduleTaskForRootDuringMicrotask(root, now());
148
- }
149
-
141
if (
142
__DEV__ &&
143
!disableLegacyMode &&
@@ -325,10 +316,7 @@ function scheduleTaskForRootDuringMicrotask(
316
// This function is always called inside a microtask, or at the very end of a
317
// rendering task right before we yield to the main thread. It should never be
318
// called synchronously.
328
- //
329
- // TODO: Unless enableDeferRootSchedulingToMicrotask is off. We need to land
330
- // that ASAP to unblock additional features we have planned.
331
- //
319
+
320
// This function also never performs React work synchronously; it should
321
// only schedule work to be performed later, in a separate task or microtask.
322
packages/react/src/__tests__/ReactProfiler-test.internal.js
+31
-76
@@ -161,83 +161,38 @@ describe(`onRender`, () => {
161
// Restore original mock
162
jest.mock('scheduler', () => jest.requireActual('scheduler/unstable_mock'));
163
164
- // TODO: unstable_now is called by more places than just the profiler.
165
- // Rewrite this test so it's less fragile.
166
- if (gate(flags => flags.enableDeferRootSchedulingToMicrotask)) {
167
- if (gate(flags => flags.enableComponentPerformanceTrack)) {
168
- assertLog([
169
- 'read current time',
170
- 'read current time',
171
- 'read current time',
172
- 'read current time',
173
- 'read current time',
174
- 'read current time',
175
- 'read current time',
176
- 'read current time',
177
- 'read current time',
178
- 'read current time',
179
- 'read current time',
180
- 'read current time',
181
- 'read current time',
182
- 'read current time',
183
- 'read current time',
184
- ]);
185
- } else {
186
- assertLog([
187
- 'read current time',
188
- 'read current time',
189
- 'read current time',
190
- 'read current time',
191
- 'read current time',
192
- 'read current time',
193
- 'read current time',
194
- 'read current time',
195
- 'read current time',
196
- 'read current time',
197
- 'read current time',
198
- ]);
199
- }
164
+ if (gate(flags => flags.enableComponentPerformanceTrack)) {
165
+ assertLog([
166
+ 'read current time',
167
+ 'read current time',
168
+ 'read current time',
169
+ 'read current time',
170
+ 'read current time',
171
+ 'read current time',
172
+ 'read current time',
173
+ 'read current time',
174
+ 'read current time',
175
+ 'read current time',
176
+ 'read current time',
177
+ 'read current time',
178
+ 'read current time',
179
+ 'read current time',
180
+ 'read current time',
181
+ ]);
182
} else {
201
- if (gate(flags => flags.enableComponentPerformanceTrack)) {
202
- assertLog([
203
- 'read current time',
204
- 'read current time',
205
- 'read current time',
206
- 'read current time',
207
- 'read current time',
208
- 'read current time',
209
- 'read current time',
210
- 'read current time',
211
- 'read current time',
212
- 'read current time',
213
- 'read current time',
214
- 'read current time',
215
- 'read current time',
216
- 'read current time',
217
- 'read current time',
218
- 'read current time',
219
- 'read current time',
220
- 'read current time',
221
- 'read current time',
222
- ]);
223
- } else {
224
- assertLog([
225
- 'read current time',
226
- 'read current time',
227
- 'read current time',
228
- 'read current time',
229
- 'read current time',
230
- 'read current time',
231
- 'read current time',
232
- 'read current time',
233
- 'read current time',
234
- 'read current time',
235
- 'read current time',
236
- 'read current time',
237
- 'read current time',
238
- 'read current time',
239
- ]);
240
- }
183
+ assertLog([
184
+ 'read current time',
185
+ 'read current time',
186
+ 'read current time',
187
+ 'read current time',
188
+ 'read current time',
189
+ 'read current time',
190
+ 'read current time',
191
+ 'read current time',
192
+ 'read current time',
193
+ 'read current time',
194
+ 'read current time',
195
+ ]);
196
}
197
});
198
packages/shared/ReactFeatureFlags.js
-4
@@ -37,10 +37,6 @@ export const favorSafetyOverHydrationPerf = true;
37
// Need to remove didTimeout argument from Scheduler before landing
38
export const disableSchedulerTimeoutInWorkLoop = false;
39
40
-// This will break some internal tests at Meta so we need to gate this until
41
-// those can be fixed.
42
-export const enableDeferRootSchedulingToMicrotask = true;
43
-
40
// TODO: Land at Meta before removing.
41
export const disableDefaultPropsExceptForClasses = true;
42
packages/shared/forks/ReactFeatureFlags.native-fb.js
-1
@@ -45,7 +45,6 @@ export const enableAsyncDebugInfo = false;
45
export const enableAsyncIterableChildren = false;
46
export const enableCPUSuspense = true;
47
export const enableCreateEventHandleAPI = false;
48
-export const enableDeferRootSchedulingToMicrotask = true;
48
export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
49
export const enableMoveBefore = true;
50
export const enableFizzExternalRuntime = true;
packages/shared/forks/ReactFeatureFlags.native-oss.js
-1
@@ -29,7 +29,6 @@ export const enableAsyncDebugInfo = false;
29
export const enableAsyncIterableChildren = false;
30
export const enableCPUSuspense = false;
31
export const enableCreateEventHandleAPI = false;
32
-export const enableDeferRootSchedulingToMicrotask = true;
32
export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
33
export const enableFabricCompleteRootInCommitPhase = false;
34
export const enableMoveBefore = true;
packages/shared/forks/ReactFeatureFlags.test-renderer.js
-1
@@ -53,7 +53,6 @@ export const enableTransitionTracing = false;
53
54
export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
55
export const enableFizzExternalRuntime = true;
56
-export const enableDeferRootSchedulingToMicrotask = true;
56
57
export const alwaysThrottleRetries = true;
58
packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js
-1
@@ -24,7 +24,6 @@ export const enableAsyncDebugInfo = false;
24
export const enableAsyncIterableChildren = false;
25
export const enableCPUSuspense = true;
26
export const enableCreateEventHandleAPI = false;
27
-export const enableDeferRootSchedulingToMicrotask = true;
27
export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
28
export const enableMoveBefore = false;
29
export const enableFizzExternalRuntime = true;
packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
-1
@@ -55,7 +55,6 @@ export const enableTransitionTracing = false;
55
56
export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
57
export const enableFizzExternalRuntime = false;
58
-export const enableDeferRootSchedulingToMicrotask = true;
58
59
export const alwaysThrottleRetries = true;
60
packages/shared/forks/ReactFeatureFlags.www-dynamic.js
-1
@@ -17,7 +17,6 @@ export const alwaysThrottleRetries = true;
17
export const disableDefaultPropsExceptForClasses = __VARIANT__;
18
export const disableLegacyContextForFunctionComponents = __VARIANT__;
19
export const disableSchedulerTimeoutInWorkLoop = __VARIANT__;
20
-export const enableDeferRootSchedulingToMicrotask = __VARIANT__;
20
export const enableDO_NOT_USE_disableStrictPassiveEffect = __VARIANT__;
21
export const enableHiddenSubtreeInsertionEffectCleanup = __VARIANT__;
22
export const enableNoCloningMemoCache = __VARIANT__;
packages/shared/forks/ReactFeatureFlags.www.js
-1
@@ -19,7 +19,6 @@ export const {
19
disableDefaultPropsExceptForClasses,
20
disableLegacyContextForFunctionComponents,
21
disableSchedulerTimeoutInWorkLoop,
22
- enableDeferRootSchedulingToMicrotask,
22
enableDO_NOT_USE_disableStrictPassiveEffect,
23
enableHiddenSubtreeInsertionEffectCleanup,
24
enableInfiniteRenderLoopDetection,