mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
41 lines
1014 B
JavaScript
41 lines
1014 B
JavaScript
'use client';
|
|
|
|
import * as React from 'react';
|
|
import Container from './Container.js';
|
|
|
|
export function Navigate() {
|
|
/** Repro for https://issues.chromium.org/u/1/issues/419746417 */
|
|
function provokeChromeCrash() {
|
|
React.startTransition(async () => {
|
|
console.log('Default transition triggered');
|
|
|
|
await new Promise(resolve => {
|
|
setTimeout(
|
|
() => {
|
|
history.pushState(
|
|
{},
|
|
'',
|
|
`?chrome-crash-419746417=${performance.now()}`
|
|
);
|
|
},
|
|
// This needs to happen before React's default transition indicator
|
|
// is displayed but after it's scheduled.
|
|
100 + -50
|
|
);
|
|
|
|
setTimeout(() => {
|
|
console.log('Default transition completed');
|
|
resolve();
|
|
}, 1000);
|
|
});
|
|
});
|
|
}
|
|
|
|
return (
|
|
<Container>
|
|
<h2>Navigation fixture</h2>
|
|
<button onClick={provokeChromeCrash}>Provoke Chrome Crash (fixed)</button>
|
|
</Container>
|
|
);
|
|
}
|