Skip to content

Commit e0cc720

Browse files
authored
[flags] Clean up enableHiddenSubtreeInsertionEffectCleanup (#35918)
Been enabled in stable for quite a while, also rolled out at Meta.
1 parent 843d69f commit e0cc720

13 files changed

Lines changed: 17 additions & 53 deletions

‎packages/react-reconciler/src/ReactFiberCommitWork.js‎

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import {
4848
alwaysThrottleRetries,
4949
enableCreateEventHandleAPI,
5050
enableEffectEventMutationPhase,
51-
enableHiddenSubtreeInsertionEffectCleanup,
5251
enableProfilerTimer,
5352
enableProfilerCommitHooks,
5453
enableSuspenseCallback,
@@ -1663,17 +1662,12 @@ function commitDeletionEffectsOnFiber(
16631662
caseForwardRef:
16641663
caseMemoComponent:
16651664
caseSimpleMemoComponent: {
1666-
if(
1667-
enableHiddenSubtreeInsertionEffectCleanup||
1668-
!offscreenSubtreeWasHidden
1669-
){
1670-
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1671-
commitHookEffectListUnmount(
1672-
HookInsertion,
1673-
deletedFiber,
1674-
nearestMountedAncestor,
1675-
);
1676-
}
1665+
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1666+
commitHookEffectListUnmount(
1667+
HookInsertion,
1668+
deletedFiber,
1669+
nearestMountedAncestor,
1670+
);
16771671
if(!offscreenSubtreeWasHidden){
16781672
commitHookLayoutUnmountEffects(
16791673
deletedFiber,

‎packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js‎

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3070,14 +3070,10 @@ describe('ReactHooksWithNoopRenderer', () => {
30703070
awaitact(()=>{
30713071
root.render(<Activitymode="hidden"/>);
30723072
});
3073-
assertConsoleErrorDev(
3074-
gate('enableHiddenSubtreeInsertionEffectCleanup')
3075-
? [
3076-
'useInsertionEffect must not schedule updates.\n'+
3077-
' in App (at **)',
3078-
]
3079-
: [],
3080-
);
3073+
assertConsoleErrorDev([
3074+
'useInsertionEffect must not schedule updates.\n'+
3075+
' in App (at **)',
3076+
]);
30813077

30823078
// Should not warn for regular effects after throw.
30833079
functionNotInsertion(){

‎packages/react-reconciler/src/__tests__/ReactSuspenseEffectsSemantics-test.js‎

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1610,9 +1610,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
16101610
'AsyncText:InnerAsync_1 render',
16111611
'Text:OuterFallback destroy insertion',
16121612
'Text:OuterFallback destroy layout',
1613-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1614-
? ['Text:InnerFallback destroy insertion']
1615-
: []),
1613+
'Text:InnerFallback destroy insertion',
16161614
'Text:Outer create layout',
16171615
'AsyncText:OuterAsync_1 create layout',
16181616
'Text:Inner create layout',
@@ -1757,9 +1755,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
17571755
assertLog([
17581756
'Text:Inside render',
17591757
'AsyncText:OutsideAsync render',
1760-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1761-
? ['Text:Fallback:Inside destroy insertion']
1762-
: []),
1758+
'Text:Fallback:Inside destroy insertion',
17631759
'Text:Fallback:Fallback destroy insertion',
17641760
'Text:Fallback:Fallback destroy layout',
17651761
'Text:Fallback:Outside destroy insertion',
@@ -2248,9 +2244,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
22482244

22492245
// Destroy layout and passive effects in the errored tree.
22502246
'App destroy layout',
2251-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2252-
? ['Text:Inside destroy insertion']
2253-
: []),
2247+
'Text:Inside destroy insertion',
22542248
'Text:Fallback destroy insertion',
22552249
'Text:Fallback destroy layout',
22562250
'Text:Outside destroy insertion',
@@ -2511,9 +2505,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
25112505

25122506
// Destroy layout and passive effects in the errored tree.
25132507
'App destroy layout',
2514-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2515-
? ['Text:Inside destroy insertion']
2516-
: []),
2508+
'Text:Inside destroy insertion',
25172509
'Text:Fallback destroy insertion',
25182510
'Text:Fallback destroy layout',
25192511
'Text:Outside destroy insertion',

‎packages/react-reconciler/src/__tests__/useEffectEvent-test.js‎

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -938,14 +938,9 @@ describe('useEffectEvent', () => {
938938
assertLog([
939939
'Parent Insertion Create: A 3 2',
940940
'Parent Layout Cleanup: A 3 2',
941-
...(gate('enableHiddenSubtreeInsertionEffectCleanup')
942-
? [
943-
gate('enableViewTransition')&&
944-
!gate('enableEffectEventMutationPhase')
945-
? 'Child Insertion Destroy A 3 2 B 1 1 1'
946-
: 'Child Insertion Destroy A 3 2 B 3 2 2',
947-
]
948-
: []),
941+
gate('enableViewTransition')&&!gate('enableEffectEventMutationPhase')
942+
? 'Child Insertion Destroy A 3 2 B 1 1 1'
943+
: 'Child Insertion Destroy A 3 2 B 3 2 2',
949944
]);
950945
});
951946

‎packages/shared/ReactFeatureFlags.js‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,6 @@ export const enableInternalInstanceMap: boolean = false;
162162

163163
// const __NEXT_MAJOR__ = __EXPERIMENTAL__;
164164

165-
/**
166-
* Enables a fix to run insertion effect cleanup on hidden subtrees.
167-
*/
168-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=true;
169-
170165
/**
171166
* Removes legacy style context defined using static `contextTypes` and consumed with static `childContextTypes`.
172167
*/

‎packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
exportconstalwaysThrottleRetries=__VARIANT__;
2121
exportconstenableObjectFiber=__VARIANT__;
22-
exportconstenableHiddenSubtreeInsertionEffectCleanup=__VARIANT__;
2322
exportconstenableEagerAlternateStateNodeCleanup=__VARIANT__;
2423
exportconstpassChildrenWhenCloningPersistedNodes=__VARIANT__;
2524
exportconstenableFragmentRefs=__VARIANT__;

‎packages/shared/forks/ReactFeatureFlags.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ const dynamicFlags: DynamicExportsType = (dynamicFlagsUntyped: any);
2121
exportconst{
2222
alwaysThrottleRetries,
2323
enableEffectEventMutationPhase,
24-
enableHiddenSubtreeInsertionEffectCleanup,
2524
enableObjectFiber,
2625
enableEagerAlternateStateNodeCleanup,
2726
passChildrenWhenCloningPersistedNodes,

‎packages/shared/forks/ReactFeatureFlags.native-oss.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ export const enableCPUSuspense: boolean = false;
3030
exportconstenableCreateEventHandleAPI: boolean=false;
3131
exportconstenableMoveBefore: boolean=true;
3232
exportconstenableFizzExternalRuntime: boolean=true;
33-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3433
exportconstenableInfiniteRenderLoopDetection: boolean=false;
3534
exportconstenableLegacyCache: boolean=false;
3635
exportconstenableLegacyFBSupport: boolean=false;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ export const enableCPUSuspense: boolean = false;
3333
exportconstenableNoCloningMemoCache: boolean=false;
3434
exportconstenableLegacyFBSupport: boolean=false;
3535
exportconstenableMoveBefore: boolean=false;
36-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3736

3837
exportconstenableRetryLaneExpiration: boolean=false;
3938
exportconstretryLaneExpirationMs=5000;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ export const enableCreateEventHandleAPI = false;
2626
exportconstenableMoveBefore=false;
2727
exportconstenableFizzExternalRuntime=true;
2828
exportconstenableInfiniteRenderLoopDetection=false;
29-
exportconstenableHiddenSubtreeInsertionEffectCleanup=true;
3029
exportconstenableLegacyCache=false;
3130
exportconstenableLegacyFBSupport=false;
3231
exportconstenableLegacyHidden=false;

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
[flags] Clean up `enableHiddenSubtreeInsertionEffectCleanup` (#35918) · react/react@e0cc720 · GitHub
Skip to content

Commit e0cc720

Browse files
authored
[flags] Clean up enableHiddenSubtreeInsertionEffectCleanup (#35918)
Been enabled in stable for quite a while, also rolled out at Meta.
1 parent 843d69f commit e0cc720

13 files changed

Lines changed: 17 additions & 53 deletions

‎packages/react-reconciler/src/ReactFiberCommitWork.js‎

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import {
4848
alwaysThrottleRetries,
4949
enableCreateEventHandleAPI,
5050
enableEffectEventMutationPhase,
51-
enableHiddenSubtreeInsertionEffectCleanup,
5251
enableProfilerTimer,
5352
enableProfilerCommitHooks,
5453
enableSuspenseCallback,
@@ -1663,17 +1662,12 @@ function commitDeletionEffectsOnFiber(
16631662
caseForwardRef:
16641663
caseMemoComponent:
16651664
caseSimpleMemoComponent: {
1666-
if(
1667-
enableHiddenSubtreeInsertionEffectCleanup||
1668-
!offscreenSubtreeWasHidden
1669-
){
1670-
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1671-
commitHookEffectListUnmount(
1672-
HookInsertion,
1673-
deletedFiber,
1674-
nearestMountedAncestor,
1675-
);
1676-
}
1665+
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1666+
commitHookEffectListUnmount(
1667+
HookInsertion,
1668+
deletedFiber,
1669+
nearestMountedAncestor,
1670+
);
16771671
if(!offscreenSubtreeWasHidden){
16781672
commitHookLayoutUnmountEffects(
16791673
deletedFiber,

‎packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js‎

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3070,14 +3070,10 @@ describe('ReactHooksWithNoopRenderer', () => {
30703070
awaitact(()=>{
30713071
root.render(<Activitymode="hidden"/>);
30723072
});
3073-
assertConsoleErrorDev(
3074-
gate('enableHiddenSubtreeInsertionEffectCleanup')
3075-
? [
3076-
'useInsertionEffect must not schedule updates.\n'+
3077-
' in App (at **)',
3078-
]
3079-
: [],
3080-
);
3073+
assertConsoleErrorDev([
3074+
'useInsertionEffect must not schedule updates.\n'+
3075+
' in App (at **)',
3076+
]);
30813077

30823078
// Should not warn for regular effects after throw.
30833079
functionNotInsertion(){

‎packages/react-reconciler/src/__tests__/ReactSuspenseEffectsSemantics-test.js‎

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1610,9 +1610,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
16101610
'AsyncText:InnerAsync_1 render',
16111611
'Text:OuterFallback destroy insertion',
16121612
'Text:OuterFallback destroy layout',
1613-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1614-
? ['Text:InnerFallback destroy insertion']
1615-
: []),
1613+
'Text:InnerFallback destroy insertion',
16161614
'Text:Outer create layout',
16171615
'AsyncText:OuterAsync_1 create layout',
16181616
'Text:Inner create layout',
@@ -1757,9 +1755,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
17571755
assertLog([
17581756
'Text:Inside render',
17591757
'AsyncText:OutsideAsync render',
1760-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1761-
? ['Text:Fallback:Inside destroy insertion']
1762-
: []),
1758+
'Text:Fallback:Inside destroy insertion',
17631759
'Text:Fallback:Fallback destroy insertion',
17641760
'Text:Fallback:Fallback destroy layout',
17651761
'Text:Fallback:Outside destroy insertion',
@@ -2248,9 +2244,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
22482244

22492245
// Destroy layout and passive effects in the errored tree.
22502246
'App destroy layout',
2251-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2252-
? ['Text:Inside destroy insertion']
2253-
: []),
2247+
'Text:Inside destroy insertion',
22542248
'Text:Fallback destroy insertion',
22552249
'Text:Fallback destroy layout',
22562250
'Text:Outside destroy insertion',
@@ -2511,9 +2505,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
25112505

25122506
// Destroy layout and passive effects in the errored tree.
25132507
'App destroy layout',
2514-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2515-
? ['Text:Inside destroy insertion']
2516-
: []),
2508+
'Text:Inside destroy insertion',
25172509
'Text:Fallback destroy insertion',
25182510
'Text:Fallback destroy layout',
25192511
'Text:Outside destroy insertion',

‎packages/react-reconciler/src/__tests__/useEffectEvent-test.js‎

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -938,14 +938,9 @@ describe('useEffectEvent', () => {
938938
assertLog([
939939
'Parent Insertion Create: A 3 2',
940940
'Parent Layout Cleanup: A 3 2',
941-
...(gate('enableHiddenSubtreeInsertionEffectCleanup')
942-
? [
943-
gate('enableViewTransition')&&
944-
!gate('enableEffectEventMutationPhase')
945-
? 'Child Insertion Destroy A 3 2 B 1 1 1'
946-
: 'Child Insertion Destroy A 3 2 B 3 2 2',
947-
]
948-
: []),
941+
gate('enableViewTransition')&&!gate('enableEffectEventMutationPhase')
942+
? 'Child Insertion Destroy A 3 2 B 1 1 1'
943+
: 'Child Insertion Destroy A 3 2 B 3 2 2',
949944
]);
950945
});
951946

‎packages/shared/ReactFeatureFlags.js‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,6 @@ export const enableInternalInstanceMap: boolean = false;
162162

163163
// const __NEXT_MAJOR__ = __EXPERIMENTAL__;
164164

165-
/**
166-
* Enables a fix to run insertion effect cleanup on hidden subtrees.
167-
*/
168-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=true;
169-
170165
/**
171166
* Removes legacy style context defined using static `contextTypes` and consumed with static `childContextTypes`.
172167
*/

‎packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
exportconstalwaysThrottleRetries=__VARIANT__;
2121
exportconstenableObjectFiber=__VARIANT__;
22-
exportconstenableHiddenSubtreeInsertionEffectCleanup=__VARIANT__;
2322
exportconstenableEagerAlternateStateNodeCleanup=__VARIANT__;
2423
exportconstpassChildrenWhenCloningPersistedNodes=__VARIANT__;
2524
exportconstenableFragmentRefs=__VARIANT__;

‎packages/shared/forks/ReactFeatureFlags.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ const dynamicFlags: DynamicExportsType = (dynamicFlagsUntyped: any);
2121
exportconst{
2222
alwaysThrottleRetries,
2323
enableEffectEventMutationPhase,
24-
enableHiddenSubtreeInsertionEffectCleanup,
2524
enableObjectFiber,
2625
enableEagerAlternateStateNodeCleanup,
2726
passChildrenWhenCloningPersistedNodes,

‎packages/shared/forks/ReactFeatureFlags.native-oss.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ export const enableCPUSuspense: boolean = false;
3030
exportconstenableCreateEventHandleAPI: boolean=false;
3131
exportconstenableMoveBefore: boolean=true;
3232
exportconstenableFizzExternalRuntime: boolean=true;
33-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3433
exportconstenableInfiniteRenderLoopDetection: boolean=false;
3534
exportconstenableLegacyCache: boolean=false;
3635
exportconstenableLegacyFBSupport: boolean=false;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ export const enableCPUSuspense: boolean = false;
3333
exportconstenableNoCloningMemoCache: boolean=false;
3434
exportconstenableLegacyFBSupport: boolean=false;
3535
exportconstenableMoveBefore: boolean=false;
36-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3736

3837
exportconstenableRetryLaneExpiration: boolean=false;
3938
exportconstretryLaneExpirationMs=5000;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ export const enableCreateEventHandleAPI = false;
2626
exportconstenableMoveBefore=false;
2727
exportconstenableFizzExternalRuntime=true;
2828
exportconstenableInfiniteRenderLoopDetection=false;
29-
exportconstenableHiddenSubtreeInsertionEffectCleanup=true;
3029
exportconstenableLegacyCache=false;
3130
exportconstenableLegacyFBSupport=false;
3231
exportconstenableLegacyHidden=false;

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [flags] Clean up `enableHiddenSubtreeInsertionEffectCleanup` (#35918) · react/react@e0cc720 · GitHub
Skip to content

Commit e0cc720

Browse files
authored
[flags] Clean up enableHiddenSubtreeInsertionEffectCleanup (#35918)
Been enabled in stable for quite a while, also rolled out at Meta.
1 parent 843d69f commit e0cc720

13 files changed

Lines changed: 17 additions & 53 deletions

‎packages/react-reconciler/src/ReactFiberCommitWork.js‎

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import {
4848
alwaysThrottleRetries,
4949
enableCreateEventHandleAPI,
5050
enableEffectEventMutationPhase,
51-
enableHiddenSubtreeInsertionEffectCleanup,
5251
enableProfilerTimer,
5352
enableProfilerCommitHooks,
5453
enableSuspenseCallback,
@@ -1663,17 +1662,12 @@ function commitDeletionEffectsOnFiber(
16631662
caseForwardRef:
16641663
caseMemoComponent:
16651664
caseSimpleMemoComponent: {
1666-
if(
1667-
enableHiddenSubtreeInsertionEffectCleanup||
1668-
!offscreenSubtreeWasHidden
1669-
){
1670-
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1671-
commitHookEffectListUnmount(
1672-
HookInsertion,
1673-
deletedFiber,
1674-
nearestMountedAncestor,
1675-
);
1676-
}
1665+
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1666+
commitHookEffectListUnmount(
1667+
HookInsertion,
1668+
deletedFiber,
1669+
nearestMountedAncestor,
1670+
);
16771671
if(!offscreenSubtreeWasHidden){
16781672
commitHookLayoutUnmountEffects(
16791673
deletedFiber,

‎packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js‎

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3070,14 +3070,10 @@ describe('ReactHooksWithNoopRenderer', () => {
30703070
awaitact(()=>{
30713071
root.render(<Activitymode="hidden"/>);
30723072
});
3073-
assertConsoleErrorDev(
3074-
gate('enableHiddenSubtreeInsertionEffectCleanup')
3075-
? [
3076-
'useInsertionEffect must not schedule updates.\n'+
3077-
' in App (at **)',
3078-
]
3079-
: [],
3080-
);
3073+
assertConsoleErrorDev([
3074+
'useInsertionEffect must not schedule updates.\n'+
3075+
' in App (at **)',
3076+
]);
30813077

30823078
// Should not warn for regular effects after throw.
30833079
functionNotInsertion(){

‎packages/react-reconciler/src/__tests__/ReactSuspenseEffectsSemantics-test.js‎

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1610,9 +1610,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
16101610
'AsyncText:InnerAsync_1 render',
16111611
'Text:OuterFallback destroy insertion',
16121612
'Text:OuterFallback destroy layout',
1613-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1614-
? ['Text:InnerFallback destroy insertion']
1615-
: []),
1613+
'Text:InnerFallback destroy insertion',
16161614
'Text:Outer create layout',
16171615
'AsyncText:OuterAsync_1 create layout',
16181616
'Text:Inner create layout',
@@ -1757,9 +1755,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
17571755
assertLog([
17581756
'Text:Inside render',
17591757
'AsyncText:OutsideAsync render',
1760-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1761-
? ['Text:Fallback:Inside destroy insertion']
1762-
: []),
1758+
'Text:Fallback:Inside destroy insertion',
17631759
'Text:Fallback:Fallback destroy insertion',
17641760
'Text:Fallback:Fallback destroy layout',
17651761
'Text:Fallback:Outside destroy insertion',
@@ -2248,9 +2244,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
22482244

22492245
// Destroy layout and passive effects in the errored tree.
22502246
'App destroy layout',
2251-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2252-
? ['Text:Inside destroy insertion']
2253-
: []),
2247+
'Text:Inside destroy insertion',
22542248
'Text:Fallback destroy insertion',
22552249
'Text:Fallback destroy layout',
22562250
'Text:Outside destroy insertion',
@@ -2511,9 +2505,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
25112505

25122506
// Destroy layout and passive effects in the errored tree.
25132507
'App destroy layout',
2514-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2515-
? ['Text:Inside destroy insertion']
2516-
: []),
2508+
'Text:Inside destroy insertion',
25172509
'Text:Fallback destroy insertion',
25182510
'Text:Fallback destroy layout',
25192511
'Text:Outside destroy insertion',

‎packages/react-reconciler/src/__tests__/useEffectEvent-test.js‎

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -938,14 +938,9 @@ describe('useEffectEvent', () => {
938938
assertLog([
939939
'Parent Insertion Create: A 3 2',
940940
'Parent Layout Cleanup: A 3 2',
941-
...(gate('enableHiddenSubtreeInsertionEffectCleanup')
942-
? [
943-
gate('enableViewTransition')&&
944-
!gate('enableEffectEventMutationPhase')
945-
? 'Child Insertion Destroy A 3 2 B 1 1 1'
946-
: 'Child Insertion Destroy A 3 2 B 3 2 2',
947-
]
948-
: []),
941+
gate('enableViewTransition')&&!gate('enableEffectEventMutationPhase')
942+
? 'Child Insertion Destroy A 3 2 B 1 1 1'
943+
: 'Child Insertion Destroy A 3 2 B 3 2 2',
949944
]);
950945
});
951946

‎packages/shared/ReactFeatureFlags.js‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,6 @@ export const enableInternalInstanceMap: boolean = false;
162162

163163
// const __NEXT_MAJOR__ = __EXPERIMENTAL__;
164164

165-
/**
166-
* Enables a fix to run insertion effect cleanup on hidden subtrees.
167-
*/
168-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=true;
169-
170165
/**
171166
* Removes legacy style context defined using static `contextTypes` and consumed with static `childContextTypes`.
172167
*/

‎packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
exportconstalwaysThrottleRetries=__VARIANT__;
2121
exportconstenableObjectFiber=__VARIANT__;
22-
exportconstenableHiddenSubtreeInsertionEffectCleanup=__VARIANT__;
2322
exportconstenableEagerAlternateStateNodeCleanup=__VARIANT__;
2423
exportconstpassChildrenWhenCloningPersistedNodes=__VARIANT__;
2524
exportconstenableFragmentRefs=__VARIANT__;

‎packages/shared/forks/ReactFeatureFlags.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ const dynamicFlags: DynamicExportsType = (dynamicFlagsUntyped: any);
2121
exportconst{
2222
alwaysThrottleRetries,
2323
enableEffectEventMutationPhase,
24-
enableHiddenSubtreeInsertionEffectCleanup,
2524
enableObjectFiber,
2625
enableEagerAlternateStateNodeCleanup,
2726
passChildrenWhenCloningPersistedNodes,

‎packages/shared/forks/ReactFeatureFlags.native-oss.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ export const enableCPUSuspense: boolean = false;
3030
exportconstenableCreateEventHandleAPI: boolean=false;
3131
exportconstenableMoveBefore: boolean=true;
3232
exportconstenableFizzExternalRuntime: boolean=true;
33-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3433
exportconstenableInfiniteRenderLoopDetection: boolean=false;
3534
exportconstenableLegacyCache: boolean=false;
3635
exportconstenableLegacyFBSupport: boolean=false;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ export const enableCPUSuspense: boolean = false;
3333
exportconstenableNoCloningMemoCache: boolean=false;
3434
exportconstenableLegacyFBSupport: boolean=false;
3535
exportconstenableMoveBefore: boolean=false;
36-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3736

3837
exportconstenableRetryLaneExpiration: boolean=false;
3938
exportconstretryLaneExpirationMs=5000;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ export const enableCreateEventHandleAPI = false;
2626
exportconstenableMoveBefore=false;
2727
exportconstenableFizzExternalRuntime=true;
2828
exportconstenableInfiniteRenderLoopDetection=false;
29-
exportconstenableHiddenSubtreeInsertionEffectCleanup=true;
3029
exportconstenableLegacyCache=false;
3130
exportconstenableLegacyFBSupport=false;
3231
exportconstenableLegacyHidden=false;

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [flags] Clean up `enableHiddenSubtreeInsertionEffectCleanup` (#35918) · react/react@e0cc720 · GitHub
Skip to content

Commit e0cc720

Browse files
authored
[flags] Clean up enableHiddenSubtreeInsertionEffectCleanup (#35918)
Been enabled in stable for quite a while, also rolled out at Meta.
1 parent 843d69f commit e0cc720

13 files changed

Lines changed: 17 additions & 53 deletions

‎packages/react-reconciler/src/ReactFiberCommitWork.js‎

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import {
4848
alwaysThrottleRetries,
4949
enableCreateEventHandleAPI,
5050
enableEffectEventMutationPhase,
51-
enableHiddenSubtreeInsertionEffectCleanup,
5251
enableProfilerTimer,
5352
enableProfilerCommitHooks,
5453
enableSuspenseCallback,
@@ -1663,17 +1662,12 @@ function commitDeletionEffectsOnFiber(
16631662
caseForwardRef:
16641663
caseMemoComponent:
16651664
caseSimpleMemoComponent: {
1666-
if(
1667-
enableHiddenSubtreeInsertionEffectCleanup||
1668-
!offscreenSubtreeWasHidden
1669-
){
1670-
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1671-
commitHookEffectListUnmount(
1672-
HookInsertion,
1673-
deletedFiber,
1674-
nearestMountedAncestor,
1675-
);
1676-
}
1665+
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1666+
commitHookEffectListUnmount(
1667+
HookInsertion,
1668+
deletedFiber,
1669+
nearestMountedAncestor,
1670+
);
16771671
if(!offscreenSubtreeWasHidden){
16781672
commitHookLayoutUnmountEffects(
16791673
deletedFiber,

‎packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js‎

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3070,14 +3070,10 @@ describe('ReactHooksWithNoopRenderer', () => {
30703070
awaitact(()=>{
30713071
root.render(<Activitymode="hidden"/>);
30723072
});
3073-
assertConsoleErrorDev(
3074-
gate('enableHiddenSubtreeInsertionEffectCleanup')
3075-
? [
3076-
'useInsertionEffect must not schedule updates.\n'+
3077-
' in App (at **)',
3078-
]
3079-
: [],
3080-
);
3073+
assertConsoleErrorDev([
3074+
'useInsertionEffect must not schedule updates.\n'+
3075+
' in App (at **)',
3076+
]);
30813077

30823078
// Should not warn for regular effects after throw.
30833079
functionNotInsertion(){

‎packages/react-reconciler/src/__tests__/ReactSuspenseEffectsSemantics-test.js‎

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1610,9 +1610,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
16101610
'AsyncText:InnerAsync_1 render',
16111611
'Text:OuterFallback destroy insertion',
16121612
'Text:OuterFallback destroy layout',
1613-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1614-
? ['Text:InnerFallback destroy insertion']
1615-
: []),
1613+
'Text:InnerFallback destroy insertion',
16161614
'Text:Outer create layout',
16171615
'AsyncText:OuterAsync_1 create layout',
16181616
'Text:Inner create layout',
@@ -1757,9 +1755,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
17571755
assertLog([
17581756
'Text:Inside render',
17591757
'AsyncText:OutsideAsync render',
1760-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1761-
? ['Text:Fallback:Inside destroy insertion']
1762-
: []),
1758+
'Text:Fallback:Inside destroy insertion',
17631759
'Text:Fallback:Fallback destroy insertion',
17641760
'Text:Fallback:Fallback destroy layout',
17651761
'Text:Fallback:Outside destroy insertion',
@@ -2248,9 +2244,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
22482244

22492245
// Destroy layout and passive effects in the errored tree.
22502246
'App destroy layout',
2251-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2252-
? ['Text:Inside destroy insertion']
2253-
: []),
2247+
'Text:Inside destroy insertion',
22542248
'Text:Fallback destroy insertion',
22552249
'Text:Fallback destroy layout',
22562250
'Text:Outside destroy insertion',
@@ -2511,9 +2505,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
25112505

25122506
// Destroy layout and passive effects in the errored tree.
25132507
'App destroy layout',
2514-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2515-
? ['Text:Inside destroy insertion']
2516-
: []),
2508+
'Text:Inside destroy insertion',
25172509
'Text:Fallback destroy insertion',
25182510
'Text:Fallback destroy layout',
25192511
'Text:Outside destroy insertion',

‎packages/react-reconciler/src/__tests__/useEffectEvent-test.js‎

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -938,14 +938,9 @@ describe('useEffectEvent', () => {
938938
assertLog([
939939
'Parent Insertion Create: A 3 2',
940940
'Parent Layout Cleanup: A 3 2',
941-
...(gate('enableHiddenSubtreeInsertionEffectCleanup')
942-
? [
943-
gate('enableViewTransition')&&
944-
!gate('enableEffectEventMutationPhase')
945-
? 'Child Insertion Destroy A 3 2 B 1 1 1'
946-
: 'Child Insertion Destroy A 3 2 B 3 2 2',
947-
]
948-
: []),
941+
gate('enableViewTransition')&&!gate('enableEffectEventMutationPhase')
942+
? 'Child Insertion Destroy A 3 2 B 1 1 1'
943+
: 'Child Insertion Destroy A 3 2 B 3 2 2',
949944
]);
950945
});
951946

‎packages/shared/ReactFeatureFlags.js‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,6 @@ export const enableInternalInstanceMap: boolean = false;
162162

163163
// const __NEXT_MAJOR__ = __EXPERIMENTAL__;
164164

165-
/**
166-
* Enables a fix to run insertion effect cleanup on hidden subtrees.
167-
*/
168-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=true;
169-
170165
/**
171166
* Removes legacy style context defined using static `contextTypes` and consumed with static `childContextTypes`.
172167
*/

‎packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
exportconstalwaysThrottleRetries=__VARIANT__;
2121
exportconstenableObjectFiber=__VARIANT__;
22-
exportconstenableHiddenSubtreeInsertionEffectCleanup=__VARIANT__;
2322
exportconstenableEagerAlternateStateNodeCleanup=__VARIANT__;
2423
exportconstpassChildrenWhenCloningPersistedNodes=__VARIANT__;
2524
exportconstenableFragmentRefs=__VARIANT__;

‎packages/shared/forks/ReactFeatureFlags.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ const dynamicFlags: DynamicExportsType = (dynamicFlagsUntyped: any);
2121
exportconst{
2222
alwaysThrottleRetries,
2323
enableEffectEventMutationPhase,
24-
enableHiddenSubtreeInsertionEffectCleanup,
2524
enableObjectFiber,
2625
enableEagerAlternateStateNodeCleanup,
2726
passChildrenWhenCloningPersistedNodes,

‎packages/shared/forks/ReactFeatureFlags.native-oss.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ export const enableCPUSuspense: boolean = false;
3030
exportconstenableCreateEventHandleAPI: boolean=false;
3131
exportconstenableMoveBefore: boolean=true;
3232
exportconstenableFizzExternalRuntime: boolean=true;
33-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3433
exportconstenableInfiniteRenderLoopDetection: boolean=false;
3534
exportconstenableLegacyCache: boolean=false;
3635
exportconstenableLegacyFBSupport: boolean=false;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ export const enableCPUSuspense: boolean = false;
3333
exportconstenableNoCloningMemoCache: boolean=false;
3434
exportconstenableLegacyFBSupport: boolean=false;
3535
exportconstenableMoveBefore: boolean=false;
36-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3736

3837
exportconstenableRetryLaneExpiration: boolean=false;
3938
exportconstretryLaneExpirationMs=5000;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ export const enableCreateEventHandleAPI = false;
2626
exportconstenableMoveBefore=false;
2727
exportconstenableFizzExternalRuntime=true;
2828
exportconstenableInfiniteRenderLoopDetection=false;
29-
exportconstenableHiddenSubtreeInsertionEffectCleanup=true;
3029
exportconstenableLegacyCache=false;
3130
exportconstenableLegacyFBSupport=false;
3231
exportconstenableLegacyHidden=false;

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' [flags] Clean up `enableHiddenSubtreeInsertionEffectCleanup` (#35918) · react/react@e0cc720 · GitHub
Skip to content

Commit e0cc720

Browse files
authored
[flags] Clean up enableHiddenSubtreeInsertionEffectCleanup (#35918)
Been enabled in stable for quite a while, also rolled out at Meta.
1 parent 843d69f commit e0cc720

13 files changed

Lines changed: 17 additions & 53 deletions

‎packages/react-reconciler/src/ReactFiberCommitWork.js‎

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import {
4848
alwaysThrottleRetries,
4949
enableCreateEventHandleAPI,
5050
enableEffectEventMutationPhase,
51-
enableHiddenSubtreeInsertionEffectCleanup,
5251
enableProfilerTimer,
5352
enableProfilerCommitHooks,
5453
enableSuspenseCallback,
@@ -1663,17 +1662,12 @@ function commitDeletionEffectsOnFiber(
16631662
caseForwardRef:
16641663
caseMemoComponent:
16651664
caseSimpleMemoComponent: {
1666-
if(
1667-
enableHiddenSubtreeInsertionEffectCleanup||
1668-
!offscreenSubtreeWasHidden
1669-
){
1670-
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1671-
commitHookEffectListUnmount(
1672-
HookInsertion,
1673-
deletedFiber,
1674-
nearestMountedAncestor,
1675-
);
1676-
}
1665+
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1666+
commitHookEffectListUnmount(
1667+
HookInsertion,
1668+
deletedFiber,
1669+
nearestMountedAncestor,
1670+
);
16771671
if(!offscreenSubtreeWasHidden){
16781672
commitHookLayoutUnmountEffects(
16791673
deletedFiber,

‎packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js‎

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3070,14 +3070,10 @@ describe('ReactHooksWithNoopRenderer', () => {
30703070
awaitact(()=>{
30713071
root.render(<Activitymode="hidden"/>);
30723072
});
3073-
assertConsoleErrorDev(
3074-
gate('enableHiddenSubtreeInsertionEffectCleanup')
3075-
? [
3076-
'useInsertionEffect must not schedule updates.\n'+
3077-
' in App (at **)',
3078-
]
3079-
: [],
3080-
);
3073+
assertConsoleErrorDev([
3074+
'useInsertionEffect must not schedule updates.\n'+
3075+
' in App (at **)',
3076+
]);
30813077

30823078
// Should not warn for regular effects after throw.
30833079
functionNotInsertion(){

‎packages/react-reconciler/src/__tests__/ReactSuspenseEffectsSemantics-test.js‎

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1610,9 +1610,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
16101610
'AsyncText:InnerAsync_1 render',
16111611
'Text:OuterFallback destroy insertion',
16121612
'Text:OuterFallback destroy layout',
1613-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1614-
? ['Text:InnerFallback destroy insertion']
1615-
: []),
1613+
'Text:InnerFallback destroy insertion',
16161614
'Text:Outer create layout',
16171615
'AsyncText:OuterAsync_1 create layout',
16181616
'Text:Inner create layout',
@@ -1757,9 +1755,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
17571755
assertLog([
17581756
'Text:Inside render',
17591757
'AsyncText:OutsideAsync render',
1760-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1761-
? ['Text:Fallback:Inside destroy insertion']
1762-
: []),
1758+
'Text:Fallback:Inside destroy insertion',
17631759
'Text:Fallback:Fallback destroy insertion',
17641760
'Text:Fallback:Fallback destroy layout',
17651761
'Text:Fallback:Outside destroy insertion',
@@ -2248,9 +2244,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
22482244

22492245
// Destroy layout and passive effects in the errored tree.
22502246
'App destroy layout',
2251-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2252-
? ['Text:Inside destroy insertion']
2253-
: []),
2247+
'Text:Inside destroy insertion',
22542248
'Text:Fallback destroy insertion',
22552249
'Text:Fallback destroy layout',
22562250
'Text:Outside destroy insertion',
@@ -2511,9 +2505,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
25112505

25122506
// Destroy layout and passive effects in the errored tree.
25132507
'App destroy layout',
2514-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2515-
? ['Text:Inside destroy insertion']
2516-
: []),
2508+
'Text:Inside destroy insertion',
25172509
'Text:Fallback destroy insertion',
25182510
'Text:Fallback destroy layout',
25192511
'Text:Outside destroy insertion',

‎packages/react-reconciler/src/__tests__/useEffectEvent-test.js‎

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -938,14 +938,9 @@ describe('useEffectEvent', () => {
938938
assertLog([
939939
'Parent Insertion Create: A 3 2',
940940
'Parent Layout Cleanup: A 3 2',
941-
...(gate('enableHiddenSubtreeInsertionEffectCleanup')
942-
? [
943-
gate('enableViewTransition')&&
944-
!gate('enableEffectEventMutationPhase')
945-
? 'Child Insertion Destroy A 3 2 B 1 1 1'
946-
: 'Child Insertion Destroy A 3 2 B 3 2 2',
947-
]
948-
: []),
941+
gate('enableViewTransition')&&!gate('enableEffectEventMutationPhase')
942+
? 'Child Insertion Destroy A 3 2 B 1 1 1'
943+
: 'Child Insertion Destroy A 3 2 B 3 2 2',
949944
]);
950945
});
951946

‎packages/shared/ReactFeatureFlags.js‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,6 @@ export const enableInternalInstanceMap: boolean = false;
162162

163163
// const __NEXT_MAJOR__ = __EXPERIMENTAL__;
164164

165-
/**
166-
* Enables a fix to run insertion effect cleanup on hidden subtrees.
167-
*/
168-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=true;
169-
170165
/**
171166
* Removes legacy style context defined using static `contextTypes` and consumed with static `childContextTypes`.
172167
*/

‎packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
exportconstalwaysThrottleRetries=__VARIANT__;
2121
exportconstenableObjectFiber=__VARIANT__;
22-
exportconstenableHiddenSubtreeInsertionEffectCleanup=__VARIANT__;
2322
exportconstenableEagerAlternateStateNodeCleanup=__VARIANT__;
2423
exportconstpassChildrenWhenCloningPersistedNodes=__VARIANT__;
2524
exportconstenableFragmentRefs=__VARIANT__;

‎packages/shared/forks/ReactFeatureFlags.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ const dynamicFlags: DynamicExportsType = (dynamicFlagsUntyped: any);
2121
exportconst{
2222
alwaysThrottleRetries,
2323
enableEffectEventMutationPhase,
24-
enableHiddenSubtreeInsertionEffectCleanup,
2524
enableObjectFiber,
2625
enableEagerAlternateStateNodeCleanup,
2726
passChildrenWhenCloningPersistedNodes,

‎packages/shared/forks/ReactFeatureFlags.native-oss.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ export const enableCPUSuspense: boolean = false;
3030
exportconstenableCreateEventHandleAPI: boolean=false;
3131
exportconstenableMoveBefore: boolean=true;
3232
exportconstenableFizzExternalRuntime: boolean=true;
33-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3433
exportconstenableInfiniteRenderLoopDetection: boolean=false;
3534
exportconstenableLegacyCache: boolean=false;
3635
exportconstenableLegacyFBSupport: boolean=false;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ export const enableCPUSuspense: boolean = false;
3333
exportconstenableNoCloningMemoCache: boolean=false;
3434
exportconstenableLegacyFBSupport: boolean=false;
3535
exportconstenableMoveBefore: boolean=false;
36-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3736

3837
exportconstenableRetryLaneExpiration: boolean=false;
3938
exportconstretryLaneExpirationMs=5000;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ export const enableCreateEventHandleAPI = false;
2626
exportconstenableMoveBefore=false;
2727
exportconstenableFizzExternalRuntime=true;
2828
exportconstenableInfiniteRenderLoopDetection=false;
29-
exportconstenableHiddenSubtreeInsertionEffectCleanup=true;
3029
exportconstenableLegacyCache=false;
3130
exportconstenableLegacyFBSupport=false;
3231
exportconstenableLegacyHidden=false;

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [flags] Clean up `enableHiddenSubtreeInsertionEffectCleanup` (#35918) · react/react@e0cc720 · GitHub
Skip to content

Commit e0cc720

Browse files
authored
[flags] Clean up enableHiddenSubtreeInsertionEffectCleanup (#35918)
Been enabled in stable for quite a while, also rolled out at Meta.
1 parent 843d69f commit e0cc720

13 files changed

Lines changed: 17 additions & 53 deletions

‎packages/react-reconciler/src/ReactFiberCommitWork.js‎

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import {
4848
alwaysThrottleRetries,
4949
enableCreateEventHandleAPI,
5050
enableEffectEventMutationPhase,
51-
enableHiddenSubtreeInsertionEffectCleanup,
5251
enableProfilerTimer,
5352
enableProfilerCommitHooks,
5453
enableSuspenseCallback,
@@ -1663,17 +1662,12 @@ function commitDeletionEffectsOnFiber(
16631662
caseForwardRef:
16641663
caseMemoComponent:
16651664
caseSimpleMemoComponent: {
1666-
if(
1667-
enableHiddenSubtreeInsertionEffectCleanup||
1668-
!offscreenSubtreeWasHidden
1669-
){
1670-
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1671-
commitHookEffectListUnmount(
1672-
HookInsertion,
1673-
deletedFiber,
1674-
nearestMountedAncestor,
1675-
);
1676-
}
1665+
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1666+
commitHookEffectListUnmount(
1667+
HookInsertion,
1668+
deletedFiber,
1669+
nearestMountedAncestor,
1670+
);
16771671
if(!offscreenSubtreeWasHidden){
16781672
commitHookLayoutUnmountEffects(
16791673
deletedFiber,

‎packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js‎

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3070,14 +3070,10 @@ describe('ReactHooksWithNoopRenderer', () => {
30703070
awaitact(()=>{
30713071
root.render(<Activitymode="hidden"/>);
30723072
});
3073-
assertConsoleErrorDev(
3074-
gate('enableHiddenSubtreeInsertionEffectCleanup')
3075-
? [
3076-
'useInsertionEffect must not schedule updates.\n'+
3077-
' in App (at **)',
3078-
]
3079-
: [],
3080-
);
3073+
assertConsoleErrorDev([
3074+
'useInsertionEffect must not schedule updates.\n'+
3075+
' in App (at **)',
3076+
]);
30813077

30823078
// Should not warn for regular effects after throw.
30833079
functionNotInsertion(){

‎packages/react-reconciler/src/__tests__/ReactSuspenseEffectsSemantics-test.js‎

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1610,9 +1610,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
16101610
'AsyncText:InnerAsync_1 render',
16111611
'Text:OuterFallback destroy insertion',
16121612
'Text:OuterFallback destroy layout',
1613-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1614-
? ['Text:InnerFallback destroy insertion']
1615-
: []),
1613+
'Text:InnerFallback destroy insertion',
16161614
'Text:Outer create layout',
16171615
'AsyncText:OuterAsync_1 create layout',
16181616
'Text:Inner create layout',
@@ -1757,9 +1755,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
17571755
assertLog([
17581756
'Text:Inside render',
17591757
'AsyncText:OutsideAsync render',
1760-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1761-
? ['Text:Fallback:Inside destroy insertion']
1762-
: []),
1758+
'Text:Fallback:Inside destroy insertion',
17631759
'Text:Fallback:Fallback destroy insertion',
17641760
'Text:Fallback:Fallback destroy layout',
17651761
'Text:Fallback:Outside destroy insertion',
@@ -2248,9 +2244,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
22482244

22492245
// Destroy layout and passive effects in the errored tree.
22502246
'App destroy layout',
2251-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2252-
? ['Text:Inside destroy insertion']
2253-
: []),
2247+
'Text:Inside destroy insertion',
22542248
'Text:Fallback destroy insertion',
22552249
'Text:Fallback destroy layout',
22562250
'Text:Outside destroy insertion',
@@ -2511,9 +2505,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
25112505

25122506
// Destroy layout and passive effects in the errored tree.
25132507
'App destroy layout',
2514-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2515-
? ['Text:Inside destroy insertion']
2516-
: []),
2508+
'Text:Inside destroy insertion',
25172509
'Text:Fallback destroy insertion',
25182510
'Text:Fallback destroy layout',
25192511
'Text:Outside destroy insertion',

‎packages/react-reconciler/src/__tests__/useEffectEvent-test.js‎

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -938,14 +938,9 @@ describe('useEffectEvent', () => {
938938
assertLog([
939939
'Parent Insertion Create: A 3 2',
940940
'Parent Layout Cleanup: A 3 2',
941-
...(gate('enableHiddenSubtreeInsertionEffectCleanup')
942-
? [
943-
gate('enableViewTransition')&&
944-
!gate('enableEffectEventMutationPhase')
945-
? 'Child Insertion Destroy A 3 2 B 1 1 1'
946-
: 'Child Insertion Destroy A 3 2 B 3 2 2',
947-
]
948-
: []),
941+
gate('enableViewTransition')&&!gate('enableEffectEventMutationPhase')
942+
? 'Child Insertion Destroy A 3 2 B 1 1 1'
943+
: 'Child Insertion Destroy A 3 2 B 3 2 2',
949944
]);
950945
});
951946

‎packages/shared/ReactFeatureFlags.js‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,6 @@ export const enableInternalInstanceMap: boolean = false;
162162

163163
// const __NEXT_MAJOR__ = __EXPERIMENTAL__;
164164

165-
/**
166-
* Enables a fix to run insertion effect cleanup on hidden subtrees.
167-
*/
168-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=true;
169-
170165
/**
171166
* Removes legacy style context defined using static `contextTypes` and consumed with static `childContextTypes`.
172167
*/

‎packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
exportconstalwaysThrottleRetries=__VARIANT__;
2121
exportconstenableObjectFiber=__VARIANT__;
22-
exportconstenableHiddenSubtreeInsertionEffectCleanup=__VARIANT__;
2322
exportconstenableEagerAlternateStateNodeCleanup=__VARIANT__;
2423
exportconstpassChildrenWhenCloningPersistedNodes=__VARIANT__;
2524
exportconstenableFragmentRefs=__VARIANT__;

‎packages/shared/forks/ReactFeatureFlags.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ const dynamicFlags: DynamicExportsType = (dynamicFlagsUntyped: any);
2121
exportconst{
2222
alwaysThrottleRetries,
2323
enableEffectEventMutationPhase,
24-
enableHiddenSubtreeInsertionEffectCleanup,
2524
enableObjectFiber,
2625
enableEagerAlternateStateNodeCleanup,
2726
passChildrenWhenCloningPersistedNodes,

‎packages/shared/forks/ReactFeatureFlags.native-oss.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ export const enableCPUSuspense: boolean = false;
3030
exportconstenableCreateEventHandleAPI: boolean=false;
3131
exportconstenableMoveBefore: boolean=true;
3232
exportconstenableFizzExternalRuntime: boolean=true;
33-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3433
exportconstenableInfiniteRenderLoopDetection: boolean=false;
3534
exportconstenableLegacyCache: boolean=false;
3635
exportconstenableLegacyFBSupport: boolean=false;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ export const enableCPUSuspense: boolean = false;
3333
exportconstenableNoCloningMemoCache: boolean=false;
3434
exportconstenableLegacyFBSupport: boolean=false;
3535
exportconstenableMoveBefore: boolean=false;
36-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3736

3837
exportconstenableRetryLaneExpiration: boolean=false;
3938
exportconstretryLaneExpirationMs=5000;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ export const enableCreateEventHandleAPI = false;
2626
exportconstenableMoveBefore=false;
2727
exportconstenableFizzExternalRuntime=true;
2828
exportconstenableInfiniteRenderLoopDetection=false;
29-
exportconstenableHiddenSubtreeInsertionEffectCleanup=true;
3029
exportconstenableLegacyCache=false;
3130
exportconstenableLegacyFBSupport=false;
3231
exportconstenableLegacyHidden=false;

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [flags] Clean up `enableHiddenSubtreeInsertionEffectCleanup` (#35918) · react/react@e0cc720 · GitHub
Skip to content

Commit e0cc720

Browse files
authored
[flags] Clean up enableHiddenSubtreeInsertionEffectCleanup (#35918)
Been enabled in stable for quite a while, also rolled out at Meta.
1 parent 843d69f commit e0cc720

13 files changed

Lines changed: 17 additions & 53 deletions

‎packages/react-reconciler/src/ReactFiberCommitWork.js‎

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import {
4848
alwaysThrottleRetries,
4949
enableCreateEventHandleAPI,
5050
enableEffectEventMutationPhase,
51-
enableHiddenSubtreeInsertionEffectCleanup,
5251
enableProfilerTimer,
5352
enableProfilerCommitHooks,
5453
enableSuspenseCallback,
@@ -1663,17 +1662,12 @@ function commitDeletionEffectsOnFiber(
16631662
caseForwardRef:
16641663
caseMemoComponent:
16651664
caseSimpleMemoComponent: {
1666-
if(
1667-
enableHiddenSubtreeInsertionEffectCleanup||
1668-
!offscreenSubtreeWasHidden
1669-
){
1670-
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1671-
commitHookEffectListUnmount(
1672-
HookInsertion,
1673-
deletedFiber,
1674-
nearestMountedAncestor,
1675-
);
1676-
}
1665+
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1666+
commitHookEffectListUnmount(
1667+
HookInsertion,
1668+
deletedFiber,
1669+
nearestMountedAncestor,
1670+
);
16771671
if(!offscreenSubtreeWasHidden){
16781672
commitHookLayoutUnmountEffects(
16791673
deletedFiber,

‎packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js‎

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3070,14 +3070,10 @@ describe('ReactHooksWithNoopRenderer', () => {
30703070
awaitact(()=>{
30713071
root.render(<Activitymode="hidden"/>);
30723072
});
3073-
assertConsoleErrorDev(
3074-
gate('enableHiddenSubtreeInsertionEffectCleanup')
3075-
? [
3076-
'useInsertionEffect must not schedule updates.\n'+
3077-
' in App (at **)',
3078-
]
3079-
: [],
3080-
);
3073+
assertConsoleErrorDev([
3074+
'useInsertionEffect must not schedule updates.\n'+
3075+
' in App (at **)',
3076+
]);
30813077

30823078
// Should not warn for regular effects after throw.
30833079
functionNotInsertion(){

‎packages/react-reconciler/src/__tests__/ReactSuspenseEffectsSemantics-test.js‎

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1610,9 +1610,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
16101610
'AsyncText:InnerAsync_1 render',
16111611
'Text:OuterFallback destroy insertion',
16121612
'Text:OuterFallback destroy layout',
1613-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1614-
? ['Text:InnerFallback destroy insertion']
1615-
: []),
1613+
'Text:InnerFallback destroy insertion',
16161614
'Text:Outer create layout',
16171615
'AsyncText:OuterAsync_1 create layout',
16181616
'Text:Inner create layout',
@@ -1757,9 +1755,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
17571755
assertLog([
17581756
'Text:Inside render',
17591757
'AsyncText:OutsideAsync render',
1760-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1761-
? ['Text:Fallback:Inside destroy insertion']
1762-
: []),
1758+
'Text:Fallback:Inside destroy insertion',
17631759
'Text:Fallback:Fallback destroy insertion',
17641760
'Text:Fallback:Fallback destroy layout',
17651761
'Text:Fallback:Outside destroy insertion',
@@ -2248,9 +2244,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
22482244

22492245
// Destroy layout and passive effects in the errored tree.
22502246
'App destroy layout',
2251-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2252-
? ['Text:Inside destroy insertion']
2253-
: []),
2247+
'Text:Inside destroy insertion',
22542248
'Text:Fallback destroy insertion',
22552249
'Text:Fallback destroy layout',
22562250
'Text:Outside destroy insertion',
@@ -2511,9 +2505,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
25112505

25122506
// Destroy layout and passive effects in the errored tree.
25132507
'App destroy layout',
2514-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2515-
? ['Text:Inside destroy insertion']
2516-
: []),
2508+
'Text:Inside destroy insertion',
25172509
'Text:Fallback destroy insertion',
25182510
'Text:Fallback destroy layout',
25192511
'Text:Outside destroy insertion',

‎packages/react-reconciler/src/__tests__/useEffectEvent-test.js‎

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -938,14 +938,9 @@ describe('useEffectEvent', () => {
938938
assertLog([
939939
'Parent Insertion Create: A 3 2',
940940
'Parent Layout Cleanup: A 3 2',
941-
...(gate('enableHiddenSubtreeInsertionEffectCleanup')
942-
? [
943-
gate('enableViewTransition')&&
944-
!gate('enableEffectEventMutationPhase')
945-
? 'Child Insertion Destroy A 3 2 B 1 1 1'
946-
: 'Child Insertion Destroy A 3 2 B 3 2 2',
947-
]
948-
: []),
941+
gate('enableViewTransition')&&!gate('enableEffectEventMutationPhase')
942+
? 'Child Insertion Destroy A 3 2 B 1 1 1'
943+
: 'Child Insertion Destroy A 3 2 B 3 2 2',
949944
]);
950945
});
951946

‎packages/shared/ReactFeatureFlags.js‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,6 @@ export const enableInternalInstanceMap: boolean = false;
162162

163163
// const __NEXT_MAJOR__ = __EXPERIMENTAL__;
164164

165-
/**
166-
* Enables a fix to run insertion effect cleanup on hidden subtrees.
167-
*/
168-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=true;
169-
170165
/**
171166
* Removes legacy style context defined using static `contextTypes` and consumed with static `childContextTypes`.
172167
*/

‎packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
exportconstalwaysThrottleRetries=__VARIANT__;
2121
exportconstenableObjectFiber=__VARIANT__;
22-
exportconstenableHiddenSubtreeInsertionEffectCleanup=__VARIANT__;
2322
exportconstenableEagerAlternateStateNodeCleanup=__VARIANT__;
2423
exportconstpassChildrenWhenCloningPersistedNodes=__VARIANT__;
2524
exportconstenableFragmentRefs=__VARIANT__;

‎packages/shared/forks/ReactFeatureFlags.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ const dynamicFlags: DynamicExportsType = (dynamicFlagsUntyped: any);
2121
exportconst{
2222
alwaysThrottleRetries,
2323
enableEffectEventMutationPhase,
24-
enableHiddenSubtreeInsertionEffectCleanup,
2524
enableObjectFiber,
2625
enableEagerAlternateStateNodeCleanup,
2726
passChildrenWhenCloningPersistedNodes,

‎packages/shared/forks/ReactFeatureFlags.native-oss.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ export const enableCPUSuspense: boolean = false;
3030
exportconstenableCreateEventHandleAPI: boolean=false;
3131
exportconstenableMoveBefore: boolean=true;
3232
exportconstenableFizzExternalRuntime: boolean=true;
33-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3433
exportconstenableInfiniteRenderLoopDetection: boolean=false;
3534
exportconstenableLegacyCache: boolean=false;
3635
exportconstenableLegacyFBSupport: boolean=false;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ export const enableCPUSuspense: boolean = false;
3333
exportconstenableNoCloningMemoCache: boolean=false;
3434
exportconstenableLegacyFBSupport: boolean=false;
3535
exportconstenableMoveBefore: boolean=false;
36-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3736

3837
exportconstenableRetryLaneExpiration: boolean=false;
3938
exportconstretryLaneExpirationMs=5000;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ export const enableCreateEventHandleAPI = false;
2626
exportconstenableMoveBefore=false;
2727
exportconstenableFizzExternalRuntime=true;
2828
exportconstenableInfiniteRenderLoopDetection=false;
29-
exportconstenableHiddenSubtreeInsertionEffectCleanup=true;
3029
exportconstenableLegacyCache=false;
3130
exportconstenableLegacyFBSupport=false;
3231
exportconstenableLegacyHidden=false;

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); [flags] Clean up `enableHiddenSubtreeInsertionEffectCleanup` (#35918) · react/react@e0cc720 · GitHub
Skip to content

Commit e0cc720

Browse files
authored
[flags] Clean up enableHiddenSubtreeInsertionEffectCleanup (#35918)
Been enabled in stable for quite a while, also rolled out at Meta.
1 parent 843d69f commit e0cc720

13 files changed

Lines changed: 17 additions & 53 deletions

‎packages/react-reconciler/src/ReactFiberCommitWork.js‎

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import {
4848
alwaysThrottleRetries,
4949
enableCreateEventHandleAPI,
5050
enableEffectEventMutationPhase,
51-
enableHiddenSubtreeInsertionEffectCleanup,
5251
enableProfilerTimer,
5352
enableProfilerCommitHooks,
5453
enableSuspenseCallback,
@@ -1663,17 +1662,12 @@ function commitDeletionEffectsOnFiber(
16631662
caseForwardRef:
16641663
caseMemoComponent:
16651664
caseSimpleMemoComponent: {
1666-
if(
1667-
enableHiddenSubtreeInsertionEffectCleanup||
1668-
!offscreenSubtreeWasHidden
1669-
){
1670-
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1671-
commitHookEffectListUnmount(
1672-
HookInsertion,
1673-
deletedFiber,
1674-
nearestMountedAncestor,
1675-
);
1676-
}
1665+
// TODO: Use a commitHookInsertionUnmountEffects wrapper to record timings.
1666+
commitHookEffectListUnmount(
1667+
HookInsertion,
1668+
deletedFiber,
1669+
nearestMountedAncestor,
1670+
);
16771671
if(!offscreenSubtreeWasHidden){
16781672
commitHookLayoutUnmountEffects(
16791673
deletedFiber,

‎packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js‎

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3070,14 +3070,10 @@ describe('ReactHooksWithNoopRenderer', () => {
30703070
awaitact(()=>{
30713071
root.render(<Activitymode="hidden"/>);
30723072
});
3073-
assertConsoleErrorDev(
3074-
gate('enableHiddenSubtreeInsertionEffectCleanup')
3075-
? [
3076-
'useInsertionEffect must not schedule updates.\n'+
3077-
' in App (at **)',
3078-
]
3079-
: [],
3080-
);
3073+
assertConsoleErrorDev([
3074+
'useInsertionEffect must not schedule updates.\n'+
3075+
' in App (at **)',
3076+
]);
30813077

30823078
// Should not warn for regular effects after throw.
30833079
functionNotInsertion(){

‎packages/react-reconciler/src/__tests__/ReactSuspenseEffectsSemantics-test.js‎

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1610,9 +1610,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
16101610
'AsyncText:InnerAsync_1 render',
16111611
'Text:OuterFallback destroy insertion',
16121612
'Text:OuterFallback destroy layout',
1613-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1614-
? ['Text:InnerFallback destroy insertion']
1615-
: []),
1613+
'Text:InnerFallback destroy insertion',
16161614
'Text:Outer create layout',
16171615
'AsyncText:OuterAsync_1 create layout',
16181616
'Text:Inner create layout',
@@ -1757,9 +1755,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
17571755
assertLog([
17581756
'Text:Inside render',
17591757
'AsyncText:OutsideAsync render',
1760-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
1761-
? ['Text:Fallback:Inside destroy insertion']
1762-
: []),
1758+
'Text:Fallback:Inside destroy insertion',
17631759
'Text:Fallback:Fallback destroy insertion',
17641760
'Text:Fallback:Fallback destroy layout',
17651761
'Text:Fallback:Outside destroy insertion',
@@ -2248,9 +2244,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
22482244

22492245
// Destroy layout and passive effects in the errored tree.
22502246
'App destroy layout',
2251-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2252-
? ['Text:Inside destroy insertion']
2253-
: []),
2247+
'Text:Inside destroy insertion',
22542248
'Text:Fallback destroy insertion',
22552249
'Text:Fallback destroy layout',
22562250
'Text:Outside destroy insertion',
@@ -2511,9 +2505,7 @@ describe('ReactSuspenseEffectsSemantics', () => {
25112505

25122506
// Destroy layout and passive effects in the errored tree.
25132507
'App destroy layout',
2514-
...(gate(flags=>flags.enableHiddenSubtreeInsertionEffectCleanup)
2515-
? ['Text:Inside destroy insertion']
2516-
: []),
2508+
'Text:Inside destroy insertion',
25172509
'Text:Fallback destroy insertion',
25182510
'Text:Fallback destroy layout',
25192511
'Text:Outside destroy insertion',

‎packages/react-reconciler/src/__tests__/useEffectEvent-test.js‎

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -938,14 +938,9 @@ describe('useEffectEvent', () => {
938938
assertLog([
939939
'Parent Insertion Create: A 3 2',
940940
'Parent Layout Cleanup: A 3 2',
941-
...(gate('enableHiddenSubtreeInsertionEffectCleanup')
942-
? [
943-
gate('enableViewTransition')&&
944-
!gate('enableEffectEventMutationPhase')
945-
? 'Child Insertion Destroy A 3 2 B 1 1 1'
946-
: 'Child Insertion Destroy A 3 2 B 3 2 2',
947-
]
948-
: []),
941+
gate('enableViewTransition')&&!gate('enableEffectEventMutationPhase')
942+
? 'Child Insertion Destroy A 3 2 B 1 1 1'
943+
: 'Child Insertion Destroy A 3 2 B 3 2 2',
949944
]);
950945
});
951946

‎packages/shared/ReactFeatureFlags.js‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,6 @@ export const enableInternalInstanceMap: boolean = false;
162162

163163
// const __NEXT_MAJOR__ = __EXPERIMENTAL__;
164164

165-
/**
166-
* Enables a fix to run insertion effect cleanup on hidden subtrees.
167-
*/
168-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=true;
169-
170165
/**
171166
* Removes legacy style context defined using static `contextTypes` and consumed with static `childContextTypes`.
172167
*/

‎packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
exportconstalwaysThrottleRetries=__VARIANT__;
2121
exportconstenableObjectFiber=__VARIANT__;
22-
exportconstenableHiddenSubtreeInsertionEffectCleanup=__VARIANT__;
2322
exportconstenableEagerAlternateStateNodeCleanup=__VARIANT__;
2423
exportconstpassChildrenWhenCloningPersistedNodes=__VARIANT__;
2524
exportconstenableFragmentRefs=__VARIANT__;

‎packages/shared/forks/ReactFeatureFlags.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ const dynamicFlags: DynamicExportsType = (dynamicFlagsUntyped: any);
2121
exportconst{
2222
alwaysThrottleRetries,
2323
enableEffectEventMutationPhase,
24-
enableHiddenSubtreeInsertionEffectCleanup,
2524
enableObjectFiber,
2625
enableEagerAlternateStateNodeCleanup,
2726
passChildrenWhenCloningPersistedNodes,

‎packages/shared/forks/ReactFeatureFlags.native-oss.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ export const enableCPUSuspense: boolean = false;
3030
exportconstenableCreateEventHandleAPI: boolean=false;
3131
exportconstenableMoveBefore: boolean=true;
3232
exportconstenableFizzExternalRuntime: boolean=true;
33-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3433
exportconstenableInfiniteRenderLoopDetection: boolean=false;
3534
exportconstenableLegacyCache: boolean=false;
3635
exportconstenableLegacyFBSupport: boolean=false;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ export const enableCPUSuspense: boolean = false;
3333
exportconstenableNoCloningMemoCache: boolean=false;
3434
exportconstenableLegacyFBSupport: boolean=false;
3535
exportconstenableMoveBefore: boolean=false;
36-
exportconstenableHiddenSubtreeInsertionEffectCleanup: boolean=false;
3736

3837
exportconstenableRetryLaneExpiration: boolean=false;
3938
exportconstretryLaneExpirationMs=5000;

‎packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ export const enableCreateEventHandleAPI = false;
2626
exportconstenableMoveBefore=false;
2727
exportconstenableFizzExternalRuntime=true;
2828
exportconstenableInfiniteRenderLoopDetection=false;
29-
exportconstenableHiddenSubtreeInsertionEffectCleanup=true;
3029
exportconstenableLegacyCache=false;
3130
exportconstenableLegacyFBSupport=false;
3231
exportconstenableLegacyHidden=false;

0 commit comments

Comments
 (0)