-
Notifications
You must be signed in to change notification settings - Fork 27k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable windowHistorySupport by default #60557
Conversation
In this stack: This stack of pull requests is managed by Graphite. Learn more about stacking. Join @timneutkens and the rest of your teammates on Graphite |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js 01-12-Enable_windowHistorySupport_by_default | Change | |
---|---|---|---|
buildDuration | 13s | 12.9s | N/A |
buildDurationCached | 7.2s | 6.3s | N/A |
nodeModulesSize | 200 MB | 200 MB | N/A |
nextStartRea..uration (ms) | 426ms | 437ms | N/A |
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary | vercel/next.js 01-12-Enable_windowHistorySupport_by_default | Change | |
---|---|---|---|
193.HASH.js gzip | 181 B | 182 B | N/A |
3f784ff6-HASH.js gzip | 53.3 kB | 53.3 kB | N/A |
433-HASH.js gzip | 28.6 kB | 28.7 kB | |
framework-HASH.js gzip | 45.2 kB | 45.2 kB | ✓ |
main-app-HASH.js gzip | 241 B | 242 B | N/A |
main-HASH.js gzip | 31.8 kB | 31.8 kB | N/A |
webpack-HASH.js gzip | 1.7 kB | 1.7 kB | N/A |
Overall change | 73.8 kB | 74 kB |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js 01-12-Enable_windowHistorySupport_by_default | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js 01-12-Enable_windowHistorySupport_by_default | Change | |
---|---|---|---|
_app-HASH.js gzip | 194 B | 195 B | N/A |
_error-HASH.js gzip | 183 B | 181 B | N/A |
amp-HASH.js gzip | 504 B | 502 B | N/A |
css-HASH.js gzip | 321 B | 321 B | ✓ |
dynamic-HASH.js gzip | 2.5 kB | 2.5 kB | N/A |
edge-ssr-HASH.js gzip | 255 B | 253 B | N/A |
head-HASH.js gzip | 350 B | 349 B | N/A |
hooks-HASH.js gzip | 369 B | 369 B | ✓ |
image-HASH.js gzip | 4.28 kB | 4.28 kB | N/A |
index-HASH.js gzip | 255 B | 256 B | N/A |
link-HASH.js gzip | 2.61 kB | 2.61 kB | ✓ |
routerDirect..HASH.js gzip | 312 B | 311 B | N/A |
script-HASH.js gzip | 385 B | 383 B | N/A |
withRouter-HASH.js gzip | 307 B | 308 B | N/A |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 3.4 kB | 3.4 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js 01-12-Enable_windowHistorySupport_by_default | Change | |
---|---|---|---|
_buildManifest.js gzip | 483 B | 484 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js 01-12-Enable_windowHistorySupport_by_default | Change | |
---|---|---|---|
index.html gzip | 529 B | 527 B | N/A |
link.html gzip | 541 B | 540 B | N/A |
withRouter.html gzip | 524 B | 522 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary | vercel/next.js 01-12-Enable_windowHistorySupport_by_default | Change | |
---|---|---|---|
edge-ssr.js gzip | 93.8 kB | 93.8 kB | N/A |
page.js gzip | 148 kB | 148 kB | |
Overall change | 148 kB | 148 kB |
Middleware size
vercel/next.js canary | vercel/next.js 01-12-Enable_windowHistorySupport_by_default | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 623 B | 624 B | N/A |
middleware-r..fest.js gzip | 151 B | 151 B | ✓ |
middleware.js gzip | 37.5 kB | 37.5 kB | N/A |
edge-runtime..pack.js gzip | 1.92 kB | 1.92 kB | ✓ |
Overall change | 2.07 kB | 2.07 kB | ✓ |
Next Runtimes
vercel/next.js canary | vercel/next.js 01-12-Enable_windowHistorySupport_by_default | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 169 kB | 169 kB | ✓ |
app-page-exp..prod.js gzip | 95.2 kB | 95.2 kB | ✓ |
app-page-tur..prod.js gzip | 95.9 kB | 95.9 kB | ✓ |
app-page-tur..prod.js gzip | 90.5 kB | 90.5 kB | ✓ |
app-page.run...dev.js gzip | 142 kB | 142 kB | ✓ |
app-page.run..prod.js gzip | 89.8 kB | 89.8 kB | ✓ |
app-route-ex...dev.js gzip | 24.1 kB | 24.1 kB | ✓ |
app-route-ex..prod.js gzip | 16.7 kB | 16.7 kB | ✓ |
app-route-tu..prod.js gzip | 16.7 kB | 16.7 kB | ✓ |
app-route-tu..prod.js gzip | 16.3 kB | 16.3 kB | ✓ |
app-route.ru...dev.js gzip | 23.5 kB | 23.5 kB | ✓ |
app-route.ru..prod.js gzip | 16.3 kB | 16.3 kB | ✓ |
pages-api-tu..prod.js gzip | 9.38 kB | 9.38 kB | ✓ |
pages-api.ru...dev.js gzip | 9.65 kB | 9.65 kB | ✓ |
pages-api.ru..prod.js gzip | 9.37 kB | 9.37 kB | ✓ |
pages-turbo...prod.js gzip | 21.9 kB | 21.9 kB | ✓ |
pages.runtim...dev.js gzip | 22.5 kB | 22.5 kB | ✓ |
pages.runtim..prod.js gzip | 21.9 kB | 21.9 kB | ✓ |
server.runti..prod.js gzip | 49.6 kB | 49.6 kB | ✓ |
Overall change | 940 kB | 940 kB | ✓ |
Diff details
Diff for page.js
Diff too large to display
Diff for edge-ssr.js
Diff too large to display
Diff for 433-HASH.js
Diff too large to display
Tests Passed |
dispatch({ | ||
type: ACTION_RESTORE, | ||
url: new URL(url ?? href, href), | ||
tree: window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@timneutkens after upgrading from 14.0.4
to 14.1.0
I'm seeing errors from this line when using Microsoft's @azure/msal-browser
with NextJS. Specifically the error is:
null is not an object (evaluating 'window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE')
The flow that causes the error is that Microsoft has just redirected a user to my site with a hash in the URL, and the client code on my site (via the @azure/msal-browser
package) is trying to remove the hash from the URL. Specifically, this line is being called:
I have a patch locally that "fixes" this by adding if (window.history.state == null) return;
directly above startTransition(() => { ...
a couple of lines above here, but I don't understand Next.js's internals well enough to know if that's the right fix. I can submit a PR with it if you think it is.
❤️ for all your work on Next.js.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@timneutkens gentle nudge on ☝️
What?
Enables
experimental.windowHistorySupport
by default. It has been in experimental for quite a while now and has been successfully dogfooded in vercel.com as well.Closes NEXT-2076
Closes NEXT-1773