mirror of
https://github.com/zebrajr/react.git
synced 2025-12-06 12:20:20 +01:00
Traverse down an updated tree even if it has no passive effects in profiling mode (#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
This commit is contained in:
parent
1bd1f01f2a
commit
bbc2d596fa
|
|
@ -3945,7 +3945,12 @@ function commitPassiveMountOnFiber(
|
||||||
instance._visibility |= OffscreenPassiveEffectsConnected;
|
instance._visibility |= OffscreenPassiveEffectsConnected;
|
||||||
|
|
||||||
const includeWorkInProgressEffects =
|
const includeWorkInProgressEffects =
|
||||||
(finishedWork.subtreeFlags & PassiveMask) !== NoFlags;
|
(finishedWork.subtreeFlags & PassiveMask) !== NoFlags ||
|
||||||
|
(enableProfilerTimer &&
|
||||||
|
enableComponentPerformanceTrack &&
|
||||||
|
finishedWork.actualDuration !== 0 &&
|
||||||
|
(finishedWork.alternate === null ||
|
||||||
|
finishedWork.alternate.child !== finishedWork.child));
|
||||||
recursivelyTraverseReconnectPassiveEffects(
|
recursivelyTraverseReconnectPassiveEffects(
|
||||||
finishedRoot,
|
finishedRoot,
|
||||||
finishedWork,
|
finishedWork,
|
||||||
|
|
@ -4113,7 +4118,12 @@ function recursivelyTraverseReconnectPassiveEffects(
|
||||||
// node was reused.
|
// node was reused.
|
||||||
const childShouldIncludeWorkInProgressEffects =
|
const childShouldIncludeWorkInProgressEffects =
|
||||||
includeWorkInProgressEffects &&
|
includeWorkInProgressEffects &&
|
||||||
(parentFiber.subtreeFlags & PassiveMask) !== NoFlags;
|
((parentFiber.subtreeFlags & PassiveMask) !== NoFlags ||
|
||||||
|
(enableProfilerTimer &&
|
||||||
|
enableComponentPerformanceTrack &&
|
||||||
|
parentFiber.actualDuration !== 0 &&
|
||||||
|
(parentFiber.alternate === null ||
|
||||||
|
parentFiber.alternate.child !== parentFiber.child)));
|
||||||
|
|
||||||
// TODO (Offscreen) Check: flags & (RefStatic | LayoutStatic)
|
// TODO (Offscreen) Check: flags & (RefStatic | LayoutStatic)
|
||||||
let child = parentFiber.child;
|
let child = parentFiber.child;
|
||||||
|
|
@ -4379,7 +4389,14 @@ function recursivelyTraverseAtomicPassiveEffects(
|
||||||
// pre-rendering. We call this function when traversing a hidden tree whose
|
// pre-rendering. We call this function when traversing a hidden tree whose
|
||||||
// regular effects are currently disconnected.
|
// regular effects are currently disconnected.
|
||||||
// TODO: Add special flag for atomic effects
|
// TODO: Add special flag for atomic effects
|
||||||
if (parentFiber.subtreeFlags & PassiveMask) {
|
if (
|
||||||
|
parentFiber.subtreeFlags & PassiveMask ||
|
||||||
|
(enableProfilerTimer &&
|
||||||
|
enableComponentPerformanceTrack &&
|
||||||
|
parentFiber.actualDuration !== 0 &&
|
||||||
|
(parentFiber.alternate === null ||
|
||||||
|
parentFiber.alternate.child !== parentFiber.child))
|
||||||
|
) {
|
||||||
let child = parentFiber.child;
|
let child = parentFiber.child;
|
||||||
while (child !== null) {
|
while (child !== null) {
|
||||||
if (enableProfilerTimer && enableComponentPerformanceTrack) {
|
if (enableProfilerTimer && enableComponentPerformanceTrack) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user