Remove feature flag enableDO_NOT_USE_disableStrictPassiveEffect (#33524)

This commit is contained in:
Jan Kassens 2025-06-16 12:22:47 -04:00 committed by GitHub
parent 6b7e207cab
commit 5d24c64cc9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 5 additions and 109 deletions

View File

@ -40,7 +40,6 @@ import {
enableScopeAPI,
enableLegacyHidden,
enableTransitionTracing,
enableDO_NOT_USE_disableStrictPassiveEffect,
disableLegacyMode,
enableObjectFiber,
enableViewTransition,
@ -92,7 +91,6 @@ import {
ProfileMode,
StrictLegacyMode,
StrictEffectsMode,
NoStrictPassiveEffectsMode,
SuspenseyImagesMode,
} from './ReactTypeOfMode';
import {
@ -599,12 +597,6 @@ export function createFiberFromTypeAndProps(
if (disableLegacyMode || (mode & ConcurrentMode) !== NoMode) {
// Strict effects should never run on legacy roots
mode |= StrictEffectsMode;
if (
enableDO_NOT_USE_disableStrictPassiveEffect &&
pendingProps.DO_NOT_USE_disableStrictPassiveEffect
) {
mode |= NoStrictPassiveEffectsMode;
}
}
break;
case REACT_PROFILER_TYPE:

View File

@ -55,7 +55,6 @@ import {
ConcurrentMode,
StrictEffectsMode,
StrictLegacyMode,
NoStrictPassiveEffectsMode,
} from './ReactTypeOfMode';
import {
NoLane,
@ -2672,8 +2671,7 @@ function mountEffect(
): void {
if (
__DEV__ &&
(currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode &&
(currentlyRenderingFiber.mode & NoStrictPassiveEffectsMode) === NoMode
(currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode
) {
mountEffectImpl(
MountPassiveDevEffect | PassiveEffect | PassiveStaticEffect,

View File

@ -123,7 +123,6 @@ import {
ConcurrentMode,
StrictLegacyMode,
StrictEffectsMode,
NoStrictPassiveEffectsMode,
} from './ReactTypeOfMode';
import {
HostRoot,
@ -4607,21 +4606,13 @@ function recursivelyTraverseAndDoubleInvokeEffectsInDEV(
}
// Unconditionally disconnects and connects passive and layout effects.
function doubleInvokeEffectsOnFiber(
root: FiberRoot,
fiber: Fiber,
shouldDoubleInvokePassiveEffects: boolean = true,
) {
function doubleInvokeEffectsOnFiber(root: FiberRoot, fiber: Fiber) {
setIsStrictModeForDevtools(true);
try {
disappearLayoutEffects(fiber);
if (shouldDoubleInvokePassiveEffects) {
disconnectPassiveEffect(fiber);
}
disconnectPassiveEffect(fiber);
reappearLayoutEffects(root, fiber.alternate, fiber, false);
if (shouldDoubleInvokePassiveEffects) {
reconnectPassiveEffects(root, fiber, NoLanes, null, false, 0);
}
reconnectPassiveEffects(root, fiber, NoLanes, null, false, 0);
} finally {
setIsStrictModeForDevtools(false);
}
@ -4640,13 +4631,7 @@ function doubleInvokeEffectsInDEVIfNecessary(
if (fiber.tag !== OffscreenComponent) {
if (fiber.flags & PlacementDEV) {
if (isInStrictMode) {
runWithFiberInDEV(
fiber,
doubleInvokeEffectsOnFiber,
root,
fiber,
(fiber.mode & NoStrictPassiveEffectsMode) === NoMode,
);
runWithFiberInDEV(fiber, doubleInvokeEffectsOnFiber, root, fiber);
}
} else {
recursivelyTraverseAndDoubleInvokeEffectsInDEV(

View File

@ -16,7 +16,6 @@ export const ProfileMode = /* */ 0b0000010;
//export const DebugTracingMode = /* */ 0b0000100; // Removed
export const StrictLegacyMode = /* */ 0b0001000;
export const StrictEffectsMode = /* */ 0b0010000;
export const NoStrictPassiveEffectsMode = /* */ 0b1000000;
// Keep track of if we're in a SuspenseyImages eligible subtree.
// TODO: Remove this when enableSuspenseyImages ship where it's always on.
export const SuspenseyImagesMode = /* */ 0b0100000;

View File

@ -55,28 +55,6 @@ describe('Activity StrictMode', () => {
]);
});
// @gate __DEV__ && enableActivity && enableDO_NOT_USE_disableStrictPassiveEffect
it('does not trigger strict effects when disableStrictPassiveEffect is presented on StrictMode', async () => {
await act(() => {
ReactNoop.render(
<React.StrictMode DO_NOT_USE_disableStrictPassiveEffect={true}>
<Activity>
<Component label="A" />
</Activity>
</React.StrictMode>,
);
});
expect(log).toEqual([
'A: render',
'A: render',
'A: useLayoutEffect mount',
'A: useEffect mount',
'A: useLayoutEffect unmount',
'A: useLayoutEffect mount',
]);
});
// @gate __DEV__ && enableActivity
it('should not trigger strict effects when offscreen is hidden', async () => {
await act(() => {

View File

@ -104,52 +104,6 @@ describe('ReactStrictMode', () => {
]);
});
// @gate enableDO_NOT_USE_disableStrictPassiveEffect
it('should include legacy + strict effects mode, but not strict passive effect with disableStrictPassiveEffect', async () => {
await act(() => {
const container = document.createElement('div');
const root = ReactDOMClient.createRoot(container);
root.render(
<React.StrictMode DO_NOT_USE_disableStrictPassiveEffect={true}>
<Component label="A" />
</React.StrictMode>,
);
});
expect(log).toEqual([
'A: render',
'A: render',
'A: useLayoutEffect mount',
'A: useEffect mount',
'A: useLayoutEffect unmount',
'A: useLayoutEffect mount',
]);
});
// @gate enableDO_NOT_USE_disableStrictPassiveEffect
it('should include legacy + strict effects mode, but not strict passive effect with disableStrictPassiveEffect in Suspense', async () => {
await act(() => {
const container = document.createElement('div');
const root = ReactDOMClient.createRoot(container);
root.render(
<React.StrictMode DO_NOT_USE_disableStrictPassiveEffect={true}>
<React.Suspense>
<Component label="A" />
</React.Suspense>
</React.StrictMode>,
);
});
expect(log).toEqual([
'A: render',
'A: render',
'A: useLayoutEffect mount',
'A: useEffect mount',
'A: useLayoutEffect unmount',
'A: useLayoutEffect mount',
]);
});
it('should allow level to be increased with nesting', async () => {
await act(() => {
const container = document.createElement('div');

View File

@ -260,7 +260,4 @@ export const enableAsyncDebugInfo = __EXPERIMENTAL__;
// Track which Fiber(s) schedule render work.
export const enableUpdaterTracking = __PROFILE__;
// Internal only.
export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
export const ownerStackLimit = 1e4;

View File

@ -44,7 +44,6 @@ export const enableAsyncDebugInfo = false;
export const enableAsyncIterableChildren = false;
export const enableCPUSuspense = true;
export const enableCreateEventHandleAPI = false;
export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
export const enableMoveBefore = true;
export const enableFizzExternalRuntime = true;
export const enableHalt = false;

View File

@ -29,7 +29,6 @@ export const enableAsyncDebugInfo = false;
export const enableAsyncIterableChildren = false;
export const enableCPUSuspense = false;
export const enableCreateEventHandleAPI = false;
export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
export const enableMoveBefore = true;
export const enableFizzExternalRuntime = true;
export const enableHalt = false;

View File

@ -49,7 +49,6 @@ export const enableLegacyHidden = false;
export const enableTransitionTracing = false;
export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
export const enableFizzExternalRuntime = true;
export const alwaysThrottleRetries = true;

View File

@ -24,7 +24,6 @@ export const enableAsyncDebugInfo = false;
export const enableAsyncIterableChildren = false;
export const enableCPUSuspense = true;
export const enableCreateEventHandleAPI = false;
export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
export const enableMoveBefore = false;
export const enableFizzExternalRuntime = true;
export const enableHalt = false;

View File

@ -50,7 +50,6 @@ export const enableLegacyHidden = false;
export const enableTransitionTracing = false;
export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
export const enableFizzExternalRuntime = false;
export const alwaysThrottleRetries = true;

View File

@ -17,7 +17,6 @@ export const alwaysThrottleRetries = __VARIANT__;
export const disableDefaultPropsExceptForClasses = __VARIANT__;
export const disableLegacyContextForFunctionComponents = __VARIANT__;
export const disableSchedulerTimeoutInWorkLoop = __VARIANT__;
export const enableDO_NOT_USE_disableStrictPassiveEffect = __VARIANT__;
export const enableHiddenSubtreeInsertionEffectCleanup = __VARIANT__;
export const enableNoCloningMemoCache = __VARIANT__;
export const enableObjectFiber = __VARIANT__;

View File

@ -19,7 +19,6 @@ export const {
disableDefaultPropsExceptForClasses,
disableLegacyContextForFunctionComponents,
disableSchedulerTimeoutInWorkLoop,
enableDO_NOT_USE_disableStrictPassiveEffect,
enableHiddenSubtreeInsertionEffectCleanup,
enableInfiniteRenderLoopDetection,
enableNoCloningMemoCache,