Files

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>
);
}