@samitouri / QOS-React / commits / 379089d288

[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,