Skip to content

Commit 01ac93f

Browse files
committed
[Re-land] Make prerendering always non-blocking: Add missing feature flag checks (#31238)
This is a partial re-land of #31056. We saw breakages surface after the original land and had to revert. Now that they've been fixed, let's try this again. This time we'll split up the commits to give us more control of testing and rollout internally. Original PR: #31056 Original Commit: 2a9fb44 Revert PR: #31080 Commit description: ``` Neglected to wrap some places in the enableSiblingPrerendering flag. ``` Co-authored-by: Andrew Clark <git@andrewclark.io> DiffTrain build for [13411e4](13411e4)
1 parent f114757 commit 01ac93f

23 files changed

+577
-640
lines changed

Diff for: compiled-rn/VERSION_NATIVE_FB

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
19.0.0-native-fb-de43d560-20241009
1+
19.0.0-native-fb-13411e45-20241014

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<550c10c16de0559e53cbd039c2e4f6d9>>
10+
* @generated SignedSource<<1d8dd9e8ce69a34a08cc90461cf3ab97>>
1111
*/
1212

1313
"use strict";
@@ -420,5 +420,5 @@ __DEV__ &&
420420
exports.useFormStatus = function () {
421421
return resolveDispatcher().useHostTransitionStatus();
422422
};
423-
exports.version = "19.0.0-native-fb-de43d560-20241009";
423+
exports.version = "19.0.0-native-fb-13411e45-20241014";
424424
})();

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<4ba3a2044ec1d4234e283594a2af1550>>
10+
* @generated SignedSource<<2dd40d3277960a40fd61ad48c151ffa8>>
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.0.0-native-fb-de43d560-20241009";
206+
exports.version = "19.0.0-native-fb-13411e45-20241014";

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<4ba3a2044ec1d4234e283594a2af1550>>
10+
* @generated SignedSource<<2dd40d3277960a40fd61ad48c151ffa8>>
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.0.0-native-fb-de43d560-20241009";
206+
exports.version = "19.0.0-native-fb-13411e45-20241014";

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

+17-11
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<8180b974f916c25525536140b7314c8a>>
10+
* @generated SignedSource<<d81dd6637407a77fecc43d347e5de1c5>>
1111
*/
1212

1313
/*
@@ -1046,7 +1046,8 @@ __DEV__ &&
10461046
: ((pingedLanes &= nonIdlePendingLanes),
10471047
0 !== pingedLanes
10481048
? (nextLanes = getHighestPriorityLanes(pingedLanes))
1049-
: root ||
1049+
: enableSiblingPrerendering &&
1050+
!root &&
10501051
((warmLanes = nonIdlePendingLanes & ~warmLanes),
10511052
0 !== warmLanes &&
10521053
(nextLanes = getHighestPriorityLanes(warmLanes)))))
@@ -1055,7 +1056,8 @@ __DEV__ &&
10551056
? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))
10561057
: 0 !== pingedLanes
10571058
? (nextLanes = getHighestPriorityLanes(pingedLanes))
1058-
: root ||
1059+
: enableSiblingPrerendering &&
1060+
!root &&
10591061
((warmLanes = pendingLanes & ~warmLanes),
10601062
0 !== warmLanes &&
10611063
(nextLanes = getHighestPriorityLanes(warmLanes))));
@@ -1182,7 +1184,8 @@ __DEV__ &&
11821184
remainingLanes &= ~lane;
11831185
}
11841186
0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);
1185-
0 !== suspendedRetryLanes &&
1187+
enableSiblingPrerendering &&
1188+
0 !== suspendedRetryLanes &&
11861189
0 === updatedLanes &&
11871190
(root.suspendedLanes |=
11881191
suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));
@@ -14095,7 +14098,8 @@ __DEV__ &&
1409514098
((retryQueue =
1409614099
22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),
1409714100
(workInProgress.lanes |= retryQueue),
14098-
(workInProgressSuspendedRetryLanes |= retryQueue));
14101+
enableSiblingPrerendering &&
14102+
(workInProgressSuspendedRetryLanes |= retryQueue));
1409914103
}
1410014104
function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {
1410114105
if (!isHydrating)
@@ -15277,7 +15281,9 @@ __DEV__ &&
1527715281
suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;
1527815282
root.suspendedLanes |= suspendedLanes;
1527915283
root.pingedLanes &= ~suspendedLanes;
15280-
didSkipSuspendedSiblings || (root.warmLanes |= suspendedLanes);
15284+
enableSiblingPrerendering &&
15285+
!didSkipSuspendedSiblings &&
15286+
(root.warmLanes |= suspendedLanes);
1528115287
didSkipSuspendedSiblings = root.expirationTimes;
1528215288
for (var lanes = suspendedLanes; 0 < lanes; ) {
1528315289
var index = 31 - clz32(lanes),
@@ -25304,11 +25310,11 @@ __DEV__ &&
2530425310
};
2530525311
(function () {
2530625312
var isomorphicReactPackageVersion = React.version;
25307-
if ("19.0.0-native-fb-de43d560-20241009" !== isomorphicReactPackageVersion)
25313+
if ("19.0.0-native-fb-13411e45-20241014" !== isomorphicReactPackageVersion)
2530825314
throw Error(
2530925315
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
2531025316
(isomorphicReactPackageVersion +
25311-
"\n - react-dom: 19.0.0-native-fb-de43d560-20241009\nLearn more: https://react.dev/warnings/version-mismatch")
25317+
"\n - react-dom: 19.0.0-native-fb-13411e45-20241014\nLearn more: https://react.dev/warnings/version-mismatch")
2531225318
);
2531325319
})();
2531425320
("function" === typeof Map &&
@@ -25345,11 +25351,11 @@ __DEV__ &&
2534525351
!(function () {
2534625352
var internals = {
2534725353
bundleType: 1,
25348-
version: "19.0.0-native-fb-de43d560-20241009",
25354+
version: "19.0.0-native-fb-13411e45-20241014",
2534925355
rendererPackageName: "react-dom",
2535025356
currentDispatcherRef: ReactSharedInternals,
2535125357
findFiberByHostInstance: getClosestInstanceFromNode,
25352-
reconcilerVersion: "19.0.0-native-fb-de43d560-20241009"
25358+
reconcilerVersion: "19.0.0-native-fb-13411e45-20241014"
2535325359
};
2535425360
internals.overrideHookState = overrideHookState;
2535525361
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -25493,5 +25499,5 @@ __DEV__ &&
2549325499
listenToAllSupportedEvents(container);
2549425500
return new ReactDOMHydrationRoot(initialChildren);
2549525501
};
25496-
exports.version = "19.0.0-native-fb-de43d560-20241009";
25502+
exports.version = "19.0.0-native-fb-13411e45-20241014";
2549725503
})();

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

+17-11
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<86bcc49ed3494f6591ac576b591609e0>>
10+
* @generated SignedSource<<3cc21b65f550413946b26a12d53d1166>>
1111
*/
1212

1313
/*
@@ -674,7 +674,8 @@ function getNextLanes(root, wipLanes) {
674674
: ((pingedLanes &= nonIdlePendingLanes),
675675
0 !== pingedLanes
676676
? (nextLanes = getHighestPriorityLanes(pingedLanes))
677-
: root ||
677+
: enableSiblingPrerendering &&
678+
!root &&
678679
((warmLanes = nonIdlePendingLanes & ~warmLanes),
679680
0 !== warmLanes &&
680681
(nextLanes = getHighestPriorityLanes(warmLanes)))))
@@ -683,7 +684,8 @@ function getNextLanes(root, wipLanes) {
683684
? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))
684685
: 0 !== pingedLanes
685686
? (nextLanes = getHighestPriorityLanes(pingedLanes))
686-
: root ||
687+
: enableSiblingPrerendering &&
688+
!root &&
687689
((warmLanes = pendingLanes & ~warmLanes),
688690
0 !== warmLanes &&
689691
(nextLanes = getHighestPriorityLanes(warmLanes))));
@@ -803,7 +805,8 @@ function markRootFinished(
803805
remainingLanes &= ~lane;
804806
}
805807
0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);
806-
0 !== suspendedRetryLanes &&
808+
enableSiblingPrerendering &&
809+
0 !== suspendedRetryLanes &&
807810
0 === updatedLanes &&
808811
(root.suspendedLanes |=
809812
suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));
@@ -10081,7 +10084,8 @@ function scheduleRetryEffect(workInProgress, retryQueue) {
1008110084
((retryQueue =
1008210085
22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),
1008310086
(workInProgress.lanes |= retryQueue),
10084-
(workInProgressSuspendedRetryLanes |= retryQueue));
10087+
enableSiblingPrerendering &&
10088+
(workInProgressSuspendedRetryLanes |= retryQueue));
1008510089
}
1008610090
function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {
1008710091
if (!isHydrating)
@@ -11051,7 +11055,9 @@ function markRootSuspended(
1105111055
suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;
1105211056
root.suspendedLanes |= suspendedLanes;
1105311057
root.pingedLanes &= ~suspendedLanes;
11054-
didSkipSuspendedSiblings || (root.warmLanes |= suspendedLanes);
11058+
enableSiblingPrerendering &&
11059+
!didSkipSuspendedSiblings &&
11060+
(root.warmLanes |= suspendedLanes);
1105511061
didSkipSuspendedSiblings = root.expirationTimes;
1105611062
for (var lanes = suspendedLanes; 0 < lanes; ) {
1105711063
var index$6 = 31 - clz32(lanes),
@@ -15598,14 +15604,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1559815604
};
1559915605
var isomorphicReactPackageVersion$jscomp$inline_1691 = React.version;
1560015606
if (
15601-
"19.0.0-native-fb-de43d560-20241009" !==
15607+
"19.0.0-native-fb-13411e45-20241014" !==
1560215608
isomorphicReactPackageVersion$jscomp$inline_1691
1560315609
)
1560415610
throw Error(
1560515611
formatProdErrorMessage(
1560615612
527,
1560715613
isomorphicReactPackageVersion$jscomp$inline_1691,
15608-
"19.0.0-native-fb-de43d560-20241009"
15614+
"19.0.0-native-fb-13411e45-20241014"
1560915615
)
1561015616
);
1561115617
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -15627,11 +15633,11 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1562715633
};
1562815634
var internals$jscomp$inline_2144 = {
1562915635
bundleType: 0,
15630-
version: "19.0.0-native-fb-de43d560-20241009",
15636+
version: "19.0.0-native-fb-13411e45-20241014",
1563115637
rendererPackageName: "react-dom",
1563215638
currentDispatcherRef: ReactSharedInternals,
1563315639
findFiberByHostInstance: getClosestInstanceFromNode,
15634-
reconcilerVersion: "19.0.0-native-fb-de43d560-20241009"
15640+
reconcilerVersion: "19.0.0-native-fb-13411e45-20241014"
1563515641
};
1563615642
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1563715643
var hook$jscomp$inline_2145 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -15735,4 +15741,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1573515741
listenToAllSupportedEvents(container);
1573615742
return new ReactDOMHydrationRoot(initialChildren);
1573715743
};
15738-
exports.version = "19.0.0-native-fb-de43d560-20241009";
15744+
exports.version = "19.0.0-native-fb-13411e45-20241014";

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

+17-11
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<4824b23c5f4ff96fb4802c9f8adf2471>>
10+
* @generated SignedSource<<1f9731688cb275b818de4cd35d1795ac>>
1111
*/
1212

1313
/*
@@ -739,7 +739,8 @@ function getNextLanes(root, wipLanes) {
739739
: ((pingedLanes &= nonIdlePendingLanes),
740740
0 !== pingedLanes
741741
? (nextLanes = getHighestPriorityLanes(pingedLanes))
742-
: root ||
742+
: enableSiblingPrerendering &&
743+
!root &&
743744
((warmLanes = nonIdlePendingLanes & ~warmLanes),
744745
0 !== warmLanes &&
745746
(nextLanes = getHighestPriorityLanes(warmLanes)))))
@@ -748,7 +749,8 @@ function getNextLanes(root, wipLanes) {
748749
? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))
749750
: 0 !== pingedLanes
750751
? (nextLanes = getHighestPriorityLanes(pingedLanes))
751-
: root ||
752+
: enableSiblingPrerendering &&
753+
!root &&
752754
((warmLanes = pendingLanes & ~warmLanes),
753755
0 !== warmLanes &&
754756
(nextLanes = getHighestPriorityLanes(warmLanes))));
@@ -868,7 +870,8 @@ function markRootFinished(
868870
remainingLanes &= ~lane;
869871
}
870872
0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);
871-
0 !== suspendedRetryLanes &&
873+
enableSiblingPrerendering &&
874+
0 !== suspendedRetryLanes &&
872875
0 === updatedLanes &&
873876
(root.suspendedLanes |=
874877
suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));
@@ -10552,7 +10555,8 @@ function scheduleRetryEffect(workInProgress, retryQueue) {
1055210555
((retryQueue =
1055310556
22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),
1055410557
(workInProgress.lanes |= retryQueue),
10555-
(workInProgressSuspendedRetryLanes |= retryQueue));
10558+
enableSiblingPrerendering &&
10559+
(workInProgressSuspendedRetryLanes |= retryQueue));
1055610560
}
1055710561
function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {
1055810562
if (!isHydrating)
@@ -11589,7 +11593,9 @@ function markRootSuspended(
1158911593
suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;
1159011594
root.suspendedLanes |= suspendedLanes;
1159111595
root.pingedLanes &= ~suspendedLanes;
11592-
didSkipSuspendedSiblings || (root.warmLanes |= suspendedLanes);
11596+
enableSiblingPrerendering &&
11597+
!didSkipSuspendedSiblings &&
11598+
(root.warmLanes |= suspendedLanes);
1159311599
didSkipSuspendedSiblings = root.expirationTimes;
1159411600
for (var lanes = suspendedLanes; 0 < lanes; ) {
1159511601
var index$6 = 31 - clz32(lanes),
@@ -16255,14 +16261,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1625516261
};
1625616262
var isomorphicReactPackageVersion$jscomp$inline_1781 = React.version;
1625716263
if (
16258-
"19.0.0-native-fb-de43d560-20241009" !==
16264+
"19.0.0-native-fb-13411e45-20241014" !==
1625916265
isomorphicReactPackageVersion$jscomp$inline_1781
1626016266
)
1626116267
throw Error(
1626216268
formatProdErrorMessage(
1626316269
527,
1626416270
isomorphicReactPackageVersion$jscomp$inline_1781,
16265-
"19.0.0-native-fb-de43d560-20241009"
16271+
"19.0.0-native-fb-13411e45-20241014"
1626616272
)
1626716273
);
1626816274
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -16284,11 +16290,11 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1628416290
};
1628516291
var internals$jscomp$inline_1788 = {
1628616292
bundleType: 0,
16287-
version: "19.0.0-native-fb-de43d560-20241009",
16293+
version: "19.0.0-native-fb-13411e45-20241014",
1628816294
rendererPackageName: "react-dom",
1628916295
currentDispatcherRef: ReactSharedInternals,
1629016296
findFiberByHostInstance: getClosestInstanceFromNode,
16291-
reconcilerVersion: "19.0.0-native-fb-de43d560-20241009",
16297+
reconcilerVersion: "19.0.0-native-fb-13411e45-20241014",
1629216298
getLaneLabelMap: function () {
1629316299
for (
1629416300
var map = new Map(), lane = 1, index$286 = 0;
@@ -16407,4 +16413,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1640716413
listenToAllSupportedEvents(container);
1640816414
return new ReactDOMHydrationRoot(initialChildren);
1640916415
};
16410-
exports.version = "19.0.0-native-fb-de43d560-20241009";
16416+
exports.version = "19.0.0-native-fb-13411e45-20241014";

0 commit comments

Comments
 (0)