Skip to content

Commit 9008f16

Browse files
Don't outline Suspense boundaries with suspensey CSS during shell flush (facebook#35824)
When flushing the shell, stylesheets with precedence are emitted in the `<head>` which blocks paint regardless. Outlining a boundary solely because it has suspensey CSS provides no benefit during the shell flush and causes a higher-level fallback to be shown unnecessarily (e.g. "Middle Fallback" instead of "Inner Fallback"). This change passes a flushingInShell flag to hasSuspenseyContent so the host config can skip stylesheet-only suspensey content when flushing the shell. Suspensey images (used for ViewTransition animation reveals) still trigger outlining during the shell since their motivation is different. When flushing streamed completions the behavior is unchanged — suspensey CSS still causes outlining so the parent content can display sooner while the stylesheet loads. DiffTrain build for [38cd020](facebook@38cd020)
1 parent 2bd2686 commit 9008f16

37 files changed

Lines changed: 1731 additions & 1590 deletions

compiled/eslint-plugin-react-hooks/index.js

Lines changed: 64 additions & 34 deletions
Large diffs are not rendered by default.

compiled/facebook-www/REVISION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
8b276df415a29bee586473bfced9191b25166790
1+
38cd020c1fb8a1e88b7852160796f411926a6fac
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
8b276df415a29bee586473bfced9191b25166790
1+
38cd020c1fb8a1e88b7852160796f411926a6fac

compiled/facebook-www/React-dev.classic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1482,7 +1482,7 @@ __DEV__ &&
14821482
exports.useTransition = function () {
14831483
return resolveDispatcher().useTransition();
14841484
};
1485-
exports.version = "19.3.0-www-classic-8b276df4-20260205";
1485+
exports.version = "19.3.0-www-classic-38cd020c-20260219";
14861486
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
14871487
"function" ===
14881488
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/React-dev.modern.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1482,7 +1482,7 @@ __DEV__ &&
14821482
exports.useTransition = function () {
14831483
return resolveDispatcher().useTransition();
14841484
};
1485-
exports.version = "19.3.0-www-modern-8b276df4-20260205";
1485+
exports.version = "19.3.0-www-modern-38cd020c-20260219";
14861486
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
14871487
"function" ===
14881488
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/React-prod.classic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -610,4 +610,4 @@ exports.useSyncExternalStore = function (
610610
exports.useTransition = function () {
611611
return ReactSharedInternals.H.useTransition();
612612
};
613-
exports.version = "19.3.0-www-classic-8b276df4-20260205";
613+
exports.version = "19.3.0-www-classic-38cd020c-20260219";

compiled/facebook-www/React-prod.modern.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -610,4 +610,4 @@ exports.useSyncExternalStore = function (
610610
exports.useTransition = function () {
611611
return ReactSharedInternals.H.useTransition();
612612
};
613-
exports.version = "19.3.0-www-modern-8b276df4-20260205";
613+
exports.version = "19.3.0-www-modern-38cd020c-20260219";

compiled/facebook-www/React-profiling.classic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,7 @@ exports.useSyncExternalStore = function (
614614
exports.useTransition = function () {
615615
return ReactSharedInternals.H.useTransition();
616616
};
617-
exports.version = "19.3.0-www-classic-8b276df4-20260205";
617+
exports.version = "19.3.0-www-classic-38cd020c-20260219";
618618
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
619619
"function" ===
620620
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/React-profiling.modern.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,7 @@ exports.useSyncExternalStore = function (
614614
exports.useTransition = function () {
615615
return ReactSharedInternals.H.useTransition();
616616
};
617-
exports.version = "19.3.0-www-modern-8b276df4-20260205";
617+
exports.version = "19.3.0-www-modern-38cd020c-20260219";
618618
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
619619
"function" ===
620620
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/ReactART-dev.classic.js

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,9 @@ __DEV__ &&
266266
case 8:
267267
return type === REACT_STRICT_MODE_TYPE ? "StrictMode" : "Mode";
268268
case 22:
269-
return "Offscreen";
269+
if (null !== fiber.return)
270+
return getComponentNameFromFiber(fiber.return);
271+
break;
270272
case 12:
271273
return "Profiler";
272274
case 21:
@@ -4810,53 +4812,45 @@ __DEV__ &&
48104812
);
48114813
}
48124814
if (isArrayImpl(newChild))
4813-
return (
4814-
(prevDebugInfo = pushDebugInfo(newChild._debugInfo)),
4815-
(returnFiber = reconcileChildrenArray(
4816-
returnFiber,
4817-
currentFirstChild,
4818-
newChild,
4819-
lanes
4820-
)),
4821-
(currentDebugInfo = prevDebugInfo),
4822-
returnFiber
4815+
return reconcileChildrenArray(
4816+
returnFiber,
4817+
currentFirstChild,
4818+
newChild,
4819+
lanes
48234820
);
48244821
if (getIteratorFn(newChild)) {
4825-
prevDebugInfo = pushDebugInfo(newChild._debugInfo);
4826-
key = getIteratorFn(newChild);
4827-
if ("function" !== typeof key)
4822+
prevDebugInfo = newChild;
4823+
newChild = getIteratorFn(prevDebugInfo);
4824+
if ("function" !== typeof newChild)
48284825
throw Error(
48294826
"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue."
48304827
);
4831-
var newChildren = key.call(newChild);
4832-
if (newChildren === newChild) {
4828+
key = newChild.call(prevDebugInfo);
4829+
if (key === prevDebugInfo) {
48334830
if (
48344831
0 !== returnFiber.tag ||
48354832
"[object GeneratorFunction]" !==
48364833
Object.prototype.toString.call(returnFiber.type) ||
4837-
"[object Generator]" !==
4838-
Object.prototype.toString.call(newChildren)
4834+
"[object Generator]" !== Object.prototype.toString.call(key)
48394835
)
48404836
didWarnAboutGenerators ||
48414837
console.error(
48424838
"Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."
48434839
),
48444840
(didWarnAboutGenerators = !0);
48454841
} else
4846-
newChild.entries !== key ||
4842+
prevDebugInfo.entries !== newChild ||
48474843
didWarnAboutMaps ||
48484844
(console.error(
48494845
"Using Maps as children is not supported. Use an array of keyed ReactElements instead."
48504846
),
48514847
(didWarnAboutMaps = !0));
4852-
returnFiber = reconcileChildrenIterator(
4848+
return reconcileChildrenIterator(
48534849
returnFiber,
48544850
currentFirstChild,
4855-
newChildren,
4851+
key,
48564852
lanes
48574853
);
4858-
currentDebugInfo = prevDebugInfo;
4859-
return returnFiber;
48604854
}
48614855
if ("function" === typeof newChild.then)
48624856
return (
@@ -20389,10 +20383,10 @@ __DEV__ &&
2038920383
(function () {
2039020384
var internals = {
2039120385
bundleType: 1,
20392-
version: "19.3.0-www-classic-8b276df4-20260205",
20386+
version: "19.3.0-www-classic-38cd020c-20260219",
2039320387
rendererPackageName: "react-art",
2039420388
currentDispatcherRef: ReactSharedInternals,
20395-
reconcilerVersion: "19.3.0-www-classic-8b276df4-20260205"
20389+
reconcilerVersion: "19.3.0-www-classic-38cd020c-20260219"
2039620390
};
2039720391
internals.overrideHookState = overrideHookState;
2039820392
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -20427,7 +20421,7 @@ __DEV__ &&
2042720421
exports.Shape = Shape;
2042820422
exports.Surface = Surface;
2042920423
exports.Text = Text;
20430-
exports.version = "19.3.0-www-classic-8b276df4-20260205";
20424+
exports.version = "19.3.0-www-classic-38cd020c-20260219";
2043120425
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
2043220426
"function" ===
2043320427
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

0 commit comments

Comments
 (0)