Skip to content

Commit 67d8858

Browse files
committed
Ensure Performance Track are Clamped and Don't overlap (#34509)
This simplifies the logic for clamping the start times of various phases. Instead of checking in multiple places I ensure we compute a value for each phase that is then clamped to the next phase so they don't overlap. If they're zero they're not printed. I also added a name for all the anonymous labels. Those are mainly fillers for sync work that should be quick but it helps debugging if we can name them. Finally the real fix is to update the clamp time which previously could lead to overlapping entries for consecutive updates when a previous update never finalized before the next update. DiffTrain build for [e3c9656](e3c9656)
1 parent 82642d8 commit 67d8858

24 files changed

+997
-949
lines changed

compiled-rn/VERSION_NATIVE_FB

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
19.2.0-native-fb-78997291-20250916
1+
19.2.0-native-fb-e3c9656d-20250917

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<741380904353ff2ae1ee372981f76ca5>>
10+
* @generated SignedSource<<6f06a3abf79e5e17ca30d04da49eec92>>
1111
*/
1212

1313
"use strict";
@@ -404,5 +404,5 @@ __DEV__ &&
404404
exports.useFormStatus = function () {
405405
return resolveDispatcher().useHostTransitionStatus();
406406
};
407-
exports.version = "19.2.0-native-fb-78997291-20250916";
407+
exports.version = "19.2.0-native-fb-e3c9656d-20250917";
408408
})();

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<860af48ec07a32951a9fd5b4bf683171>>
10+
* @generated SignedSource<<4f3e6c54694d8234f50d9f0ea433dd9e>>
1111
*/
1212

1313
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
203203
exports.useFormStatus = function () {
204204
return ReactSharedInternals.H.useHostTransitionStatus();
205205
};
206-
exports.version = "19.2.0-native-fb-78997291-20250916";
206+
exports.version = "19.2.0-native-fb-e3c9656d-20250917";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<860af48ec07a32951a9fd5b4bf683171>>
10+
* @generated SignedSource<<4f3e6c54694d8234f50d9f0ea433dd9e>>
1111
*/
1212

1313
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
203203
exports.useFormStatus = function () {
204204
return ReactSharedInternals.H.useHostTransitionStatus();
205205
};
206-
exports.version = "19.2.0-native-fb-78997291-20250916";
206+
exports.version = "19.2.0-native-fb-e3c9656d-20250917";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js

Lines changed: 225 additions & 214 deletions
Large diffs are not rendered by default.

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<c3d812087a598dfdf7cd091c3370f88a>>
10+
* @generated SignedSource<<d41a1de4d129e91f1b049f99eb84f94a>>
1111
*/
1212

1313
/*
@@ -17525,14 +17525,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1752517525
};
1752617526
var isomorphicReactPackageVersion$jscomp$inline_2073 = React.version;
1752717527
if (
17528-
"19.2.0-native-fb-78997291-20250916" !==
17528+
"19.2.0-native-fb-e3c9656d-20250917" !==
1752917529
isomorphicReactPackageVersion$jscomp$inline_2073
1753017530
)
1753117531
throw Error(
1753217532
formatProdErrorMessage(
1753317533
527,
1753417534
isomorphicReactPackageVersion$jscomp$inline_2073,
17535-
"19.2.0-native-fb-78997291-20250916"
17535+
"19.2.0-native-fb-e3c9656d-20250917"
1753617536
)
1753717537
);
1753817538
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -17554,10 +17554,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1755417554
};
1755517555
var internals$jscomp$inline_2646 = {
1755617556
bundleType: 0,
17557-
version: "19.2.0-native-fb-78997291-20250916",
17557+
version: "19.2.0-native-fb-e3c9656d-20250917",
1755817558
rendererPackageName: "react-dom",
1755917559
currentDispatcherRef: ReactSharedInternals,
17560-
reconcilerVersion: "19.2.0-native-fb-78997291-20250916"
17560+
reconcilerVersion: "19.2.0-native-fb-e3c9656d-20250917"
1756117561
};
1756217562
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1756317563
var hook$jscomp$inline_2647 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -17664,4 +17664,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1766417664
listenToAllSupportedEvents(container);
1766517665
return new ReactDOMHydrationRoot(initialChildren);
1766617666
};
17667-
exports.version = "19.2.0-native-fb-78997291-20250916";
17667+
exports.version = "19.2.0-native-fb-e3c9656d-20250917";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js

Lines changed: 79 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<3f574b09bb2049e86ed9f3f1cf1cb7b2>>
10+
* @generated SignedSource<<99b1546b0c795036ed5eca82d00783e1>>
1111
*/
1212

1313
/*
@@ -13457,25 +13457,27 @@ function prepareFreshStack(root, lanes) {
1345713457
isSpawnedUpdate = 1 === blockingUpdateType,
1345813458
isPingedUpdate = 2 === blockingUpdateType,
1345913459
renderStartTime$jscomp$0 = renderStartTime;
13460-
if (supportsUserTiming) {
13461-
currentTrack = "Blocking";
13462-
var eventEndTime =
13463-
0 < previousRenderStartTime
13464-
? previousRenderStartTime
13465-
: renderStartTime$jscomp$0;
13466-
0 < endTime &&
13467-
null !== eventType &&
13468-
eventEndTime > endTime &&
13460+
supportsUserTiming &&
13461+
((currentTrack = "Blocking"),
13462+
0 < previousRenderStartTime
13463+
? previousRenderStartTime > renderStartTime$jscomp$0 &&
13464+
(previousRenderStartTime = renderStartTime$jscomp$0)
13465+
: (previousRenderStartTime = renderStartTime$jscomp$0),
13466+
0 < endTime
13467+
? endTime > previousRenderStartTime &&
13468+
(endTime = previousRenderStartTime)
13469+
: (endTime = previousRenderStartTime),
13470+
null !== eventType &&
13471+
previousRenderStartTime > endTime &&
1346913472
console.timeStamp(
13470-
eventIsRepeat ? "" : "Event: " + eventType,
13473+
eventIsRepeat ? "Consecutive" : "Event: " + eventType,
1347113474
endTime,
13472-
eventEndTime,
13475+
previousRenderStartTime,
1347313476
currentTrack,
1347413477
"Scheduler \u269b",
1347513478
eventIsRepeat ? "secondary-light" : "warning"
13476-
);
13477-
0 < previousRenderStartTime &&
13478-
renderStartTime$jscomp$0 > previousRenderStartTime &&
13479+
),
13480+
renderStartTime$jscomp$0 > previousRenderStartTime &&
1347913481
console.timeStamp(
1348013482
isPingedUpdate
1348113483
? "Promise Resolved"
@@ -13493,12 +13495,12 @@ function prepareFreshStack(root, lanes) {
1349313495
: (lanes & 738197653) === lanes
1349413496
? "tertiary-light"
1349513497
: "primary-light"
13496-
);
13497-
}
13498+
));
1349813499
blockingUpdateTime = -1.1;
1349913500
blockingUpdateType = 0;
1350013501
blockingSuspendedTime = -1.1;
1350113502
blockingEventIsRepeat = !0;
13503+
blockingClampTime = now();
1350213504
}
1350313505
0 !== (lanes & 4194048) &&
1350413506
((previousRenderStartTime =
@@ -13509,73 +13511,72 @@ function prepareFreshStack(root, lanes) {
1350913511
0 <= transitionUpdateTime && transitionUpdateTime < transitionClampTime
1351013512
? transitionClampTime
1351113513
: transitionUpdateTime),
13512-
(isSpawnedUpdate =
13514+
(eventType =
1351313515
0 <= transitionEventTime && transitionEventTime < transitionClampTime
1351413516
? transitionClampTime
1351513517
: transitionEventTime),
1351613518
0 <= transitionSuspendedTime &&
1351713519
(setCurrentTrackFromLanes(lanes),
1351813520
logSuspendedWithDelayPhase(
1351913521
transitionSuspendedTime,
13520-
0 <= isSpawnedUpdate
13521-
? isSpawnedUpdate
13522-
: 0 <= endTime
13523-
? endTime
13524-
: renderStartTime,
13522+
0 <= eventType ? eventType : 0 <= endTime ? endTime : renderStartTime,
1352513523
lanes
1352613524
)),
13527-
(isPingedUpdate = transitionEventType),
13528-
(renderStartTime$jscomp$0 = transitionEventIsRepeat),
13529-
(eventType = 2 === transitionUpdateType),
13530-
(eventIsRepeat = renderStartTime),
13525+
(eventIsRepeat = transitionEventType),
13526+
(isSpawnedUpdate = transitionEventIsRepeat),
13527+
(isPingedUpdate = 2 === transitionUpdateType),
13528+
(renderStartTime$jscomp$0 = renderStartTime),
1353113529
supportsUserTiming &&
1353213530
((currentTrack = "Transition"),
13533-
(eventEndTime =
13534-
0 < previousRenderStartTime
13535-
? previousRenderStartTime
13536-
: 0 < endTime
13537-
? endTime
13538-
: eventIsRepeat),
13539-
0 < isSpawnedUpdate &&
13540-
eventEndTime > isSpawnedUpdate &&
13541-
null !== isPingedUpdate &&
13531+
0 < endTime
13532+
? endTime > renderStartTime$jscomp$0 &&
13533+
(endTime = renderStartTime$jscomp$0)
13534+
: (endTime = renderStartTime$jscomp$0),
13535+
0 < previousRenderStartTime
13536+
? previousRenderStartTime > endTime &&
13537+
(previousRenderStartTime = endTime)
13538+
: (previousRenderStartTime = endTime),
13539+
0 < eventType
13540+
? eventType > previousRenderStartTime &&
13541+
(eventType = previousRenderStartTime)
13542+
: (eventType = previousRenderStartTime),
13543+
previousRenderStartTime > eventType &&
13544+
null !== eventIsRepeat &&
1354213545
console.timeStamp(
13543-
renderStartTime$jscomp$0 ? "" : "Event: " + isPingedUpdate,
13544-
isSpawnedUpdate,
13545-
eventEndTime,
13546+
isSpawnedUpdate ? "Consecutive" : "Event: " + eventIsRepeat,
13547+
eventType,
13548+
previousRenderStartTime,
1354613549
currentTrack,
1354713550
"Scheduler \u269b",
13548-
renderStartTime$jscomp$0 ? "secondary-light" : "warning"
13551+
isSpawnedUpdate ? "secondary-light" : "warning"
1354913552
),
13550-
(isSpawnedUpdate = 0 < endTime ? endTime : eventIsRepeat),
13551-
0 < previousRenderStartTime &&
13552-
isSpawnedUpdate > previousRenderStartTime &&
13553+
endTime > previousRenderStartTime &&
1355313554
console.timeStamp(
1355413555
"Action",
1355513556
previousRenderStartTime,
13556-
isSpawnedUpdate,
13557+
endTime,
1355713558
currentTrack,
1355813559
"Scheduler \u269b",
1355913560
"primary-dark"
1356013561
),
13561-
0 < endTime &&
13562-
eventIsRepeat > endTime &&
13562+
renderStartTime$jscomp$0 > endTime &&
1356313563
console.timeStamp(
13564-
eventType
13564+
isPingedUpdate
1356513565
? "Promise Resolved"
13566-
: 5 < eventIsRepeat - endTime
13566+
: 5 < renderStartTime$jscomp$0 - endTime
1356713567
? "Update Blocked"
1356813568
: "Update",
1356913569
endTime,
13570-
eventIsRepeat,
13570+
renderStartTime$jscomp$0,
1357113571
currentTrack,
1357213572
"Scheduler \u269b",
1357313573
"primary-light"
1357413574
)),
1357513575
(transitionUpdateTime = transitionStartTime = -1.1),
1357613576
(transitionUpdateType = 0),
1357713577
(transitionSuspendedTime = -1.1),
13578-
(transitionEventIsRepeat = !0));
13578+
(transitionEventIsRepeat = !0),
13579+
(transitionClampTime = now()));
1357913580
}
1358013581
previousRenderStartTime = root.timeoutHandle;
1358113582
-1 !== previousRenderStartTime &&
@@ -14590,7 +14591,7 @@ function flushPassiveEffects(wasDelayedCommit) {
1459014591
!supportsUserTiming ||
1459114592
passiveEffectStartTime <= commitEndTime ||
1459214593
console.timeStamp(
14593-
wasDelayedCommit ? "Waiting for Paint" : "",
14594+
wasDelayedCommit ? "Waiting for Paint" : "Waiting",
1459414595
commitEndTime,
1459514596
passiveEffectStartTime,
1459614597
currentTrack,
@@ -15176,20 +15177,20 @@ function debounceScrollEnd(targetInst, nativeEvent, nativeEventTarget) {
1517615177
(nativeEventTarget[internalScrollTimer] = targetInst));
1517715178
}
1517815179
for (
15179-
var i$jscomp$inline_1919 = 0;
15180-
i$jscomp$inline_1919 < simpleEventPluginEvents.length;
15181-
i$jscomp$inline_1919++
15180+
var i$jscomp$inline_1916 = 0;
15181+
i$jscomp$inline_1916 < simpleEventPluginEvents.length;
15182+
i$jscomp$inline_1916++
1518215183
) {
15183-
var eventName$jscomp$inline_1920 =
15184-
simpleEventPluginEvents[i$jscomp$inline_1919],
15185-
domEventName$jscomp$inline_1921 =
15186-
eventName$jscomp$inline_1920.toLowerCase(),
15187-
capitalizedEvent$jscomp$inline_1922 =
15188-
eventName$jscomp$inline_1920[0].toUpperCase() +
15189-
eventName$jscomp$inline_1920.slice(1);
15184+
var eventName$jscomp$inline_1917 =
15185+
simpleEventPluginEvents[i$jscomp$inline_1916],
15186+
domEventName$jscomp$inline_1918 =
15187+
eventName$jscomp$inline_1917.toLowerCase(),
15188+
capitalizedEvent$jscomp$inline_1919 =
15189+
eventName$jscomp$inline_1917[0].toUpperCase() +
15190+
eventName$jscomp$inline_1917.slice(1);
1519015191
registerSimpleEvent(
15191-
domEventName$jscomp$inline_1921,
15192-
"on" + capitalizedEvent$jscomp$inline_1922
15192+
domEventName$jscomp$inline_1918,
15193+
"on" + capitalizedEvent$jscomp$inline_1919
1519315194
);
1519415195
}
1519515196
registerSimpleEvent(ANIMATION_END, "onAnimationEnd");
@@ -19530,16 +19531,16 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1953019531
0 === i && attemptExplicitHydrationTarget(target);
1953119532
}
1953219533
};
19533-
var isomorphicReactPackageVersion$jscomp$inline_2330 = React.version;
19534+
var isomorphicReactPackageVersion$jscomp$inline_2327 = React.version;
1953419535
if (
19535-
"19.2.0-native-fb-78997291-20250916" !==
19536-
isomorphicReactPackageVersion$jscomp$inline_2330
19536+
"19.2.0-native-fb-e3c9656d-20250917" !==
19537+
isomorphicReactPackageVersion$jscomp$inline_2327
1953719538
)
1953819539
throw Error(
1953919540
formatProdErrorMessage(
1954019541
527,
19541-
isomorphicReactPackageVersion$jscomp$inline_2330,
19542-
"19.2.0-native-fb-78997291-20250916"
19542+
isomorphicReactPackageVersion$jscomp$inline_2327,
19543+
"19.2.0-native-fb-e3c9656d-20250917"
1954319544
)
1954419545
);
1954519546
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -19559,12 +19560,12 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1955919560
null === componentOrElement ? null : componentOrElement.stateNode;
1956019561
return componentOrElement;
1956119562
};
19562-
var internals$jscomp$inline_2337 = {
19563+
var internals$jscomp$inline_2334 = {
1956319564
bundleType: 0,
19564-
version: "19.2.0-native-fb-78997291-20250916",
19565+
version: "19.2.0-native-fb-e3c9656d-20250917",
1956519566
rendererPackageName: "react-dom",
1956619567
currentDispatcherRef: ReactSharedInternals,
19567-
reconcilerVersion: "19.2.0-native-fb-78997291-20250916",
19568+
reconcilerVersion: "19.2.0-native-fb-e3c9656d-20250917",
1956819569
getLaneLabelMap: function () {
1956919570
for (
1957019571
var map = new Map(), lane = 1, index$324 = 0;
@@ -19582,16 +19583,16 @@ var internals$jscomp$inline_2337 = {
1958219583
}
1958319584
};
1958419585
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
19585-
var hook$jscomp$inline_2904 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
19586+
var hook$jscomp$inline_2901 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
1958619587
if (
19587-
!hook$jscomp$inline_2904.isDisabled &&
19588-
hook$jscomp$inline_2904.supportsFiber
19588+
!hook$jscomp$inline_2901.isDisabled &&
19589+
hook$jscomp$inline_2901.supportsFiber
1958919590
)
1959019591
try {
19591-
(rendererID = hook$jscomp$inline_2904.inject(
19592-
internals$jscomp$inline_2337
19592+
(rendererID = hook$jscomp$inline_2901.inject(
19593+
internals$jscomp$inline_2334
1959319594
)),
19594-
(injectedHook = hook$jscomp$inline_2904);
19595+
(injectedHook = hook$jscomp$inline_2901);
1959519596
} catch (err) {}
1959619597
}
1959719598
exports.createRoot = function (container, options) {
@@ -19687,4 +19688,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1968719688
listenToAllSupportedEvents(container);
1968819689
return new ReactDOMHydrationRoot(initialChildren);
1968919690
};
19690-
exports.version = "19.2.0-native-fb-78997291-20250916";
19691+
exports.version = "19.2.0-native-fb-e3c9656d-20250917";

0 commit comments

Comments
 (0)