Skip to content

Commit bbc2d59

Browse files
authored
Traverse down an updated tree even if it has no passive effects in profiling mode (facebook#34667)
We need this to be able to log the renders that happened inside. This is the same thing we do here but for the offscreen special cases: https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberCommitWork.js#L3452-L3457
1 parent 1bd1f01 commit bbc2d59

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

packages/react-reconciler/src/ReactFiberCommitWork.js

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3945,7 +3945,12 @@ function commitPassiveMountOnFiber(
39453945
instance._visibility |= OffscreenPassiveEffectsConnected;
39463946

39473947
const includeWorkInProgressEffects =
3948-
(finishedWork.subtreeFlags & PassiveMask) !== NoFlags;
3948+
(finishedWork.subtreeFlags & PassiveMask) !== NoFlags ||
3949+
(enableProfilerTimer &&
3950+
enableComponentPerformanceTrack &&
3951+
finishedWork.actualDuration !== 0 &&
3952+
(finishedWork.alternate === null ||
3953+
finishedWork.alternate.child !== finishedWork.child));
39493954
recursivelyTraverseReconnectPassiveEffects(
39503955
finishedRoot,
39513956
finishedWork,
@@ -4113,7 +4118,12 @@ function recursivelyTraverseReconnectPassiveEffects(
41134118
// node was reused.
41144119
const childShouldIncludeWorkInProgressEffects =
41154120
includeWorkInProgressEffects &&
4116-
(parentFiber.subtreeFlags & PassiveMask) !== NoFlags;
4121+
((parentFiber.subtreeFlags & PassiveMask) !== NoFlags ||
4122+
(enableProfilerTimer &&
4123+
enableComponentPerformanceTrack &&
4124+
parentFiber.actualDuration !== 0 &&
4125+
(parentFiber.alternate === null ||
4126+
parentFiber.alternate.child !== parentFiber.child)));
41174127

41184128
// TODO (Offscreen) Check: flags & (RefStatic | LayoutStatic)
41194129
let child = parentFiber.child;
@@ -4379,7 +4389,14 @@ function recursivelyTraverseAtomicPassiveEffects(
43794389
// pre-rendering. We call this function when traversing a hidden tree whose
43804390
// regular effects are currently disconnected.
43814391
// TODO: Add special flag for atomic effects
4382-
if (parentFiber.subtreeFlags & PassiveMask) {
4392+
if (
4393+
parentFiber.subtreeFlags & PassiveMask ||
4394+
(enableProfilerTimer &&
4395+
enableComponentPerformanceTrack &&
4396+
parentFiber.actualDuration !== 0 &&
4397+
(parentFiber.alternate === null ||
4398+
parentFiber.alternate.child !== parentFiber.child))
4399+
) {
43834400
let child = parentFiber.child;
43844401
while (child !== null) {
43854402
if (enableProfilerTimer && enableComponentPerformanceTrack) {

0 commit comments

Comments
 (0)