Skip to content
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

Fix middleware header propagation #30288

Merged
merged 7 commits into from Oct 26, 2021
Merged

Conversation

styfle
Copy link
Member

@styfle styfle commented Oct 25, 2021

This ensures that headers are additive between multiple middleware handlers.

Since middleware is applied from the root down to the deepest leaf, we append headers in that same order.

ijjk
ijjk previously approved these changes Oct 25, 2021
@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

ijjk
ijjk previously approved these changes Oct 26, 2021
@ijjk
Copy link
Member

ijjk commented Oct 26, 2021

Stats from current PR

Default Build (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
buildDuration 21.4s 21.2s -171ms
buildDurationCached 4.3s 4.1s -170ms
nodeModulesSize 198 MB 198 MB ⚠️ +1.2 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
/ failed reqs 0 0
/ total time (seconds) 3.71 3.653 -0.06
/ avg req/sec 673.82 684.41 +10.59
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.993 2.046 ⚠️ +0.05
/error-in-render avg req/sec 1254.6 1221.89 ⚠️ -32.71
Client Bundles (main, webpack, commons)
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.2 kB 42.2 kB
main-HASH.js gzip 27.7 kB 27.7 kB
webpack-HASH.js gzip 1.45 kB 1.45 kB
Overall change 71.5 kB 71.5 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
polyfills-a4..dd70.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
_app-HASH.js gzip 1.23 kB 1.23 kB
_error-HASH.js gzip 194 B 194 B
amp-HASH.js gzip 312 B 312 B
css-HASH.js gzip 327 B 327 B
dynamic-HASH.js gzip 2.38 kB 2.38 kB
head-HASH.js gzip 350 B 350 B
hooks-HASH.js gzip 635 B 635 B
image-HASH.js gzip 4.44 kB 4.44 kB
index-HASH.js gzip 263 B 263 B
link-HASH.js gzip 1.87 kB 1.87 kB
routerDirect..HASH.js gzip 321 B 321 B
script-HASH.js gzip 383 B 383 B
withRouter-HASH.js gzip 318 B 318 B
334f979574ae..6f4.css gzip 106 B 106 B
Overall change 13.1 kB 13.1 kB
Client Build Manifests
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
_buildManifest.js gzip 459 B 459 B
Overall change 459 B 459 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
index.html gzip 533 B 533 B
link.html gzip 546 B 546 B
withRouter.html gzip 527 B 527 B
Overall change 1.61 kB 1.61 kB

Default Build with SWC (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
buildDuration 22.1s 20.1s -1.9s
buildDurationCached 4.9s 4.1s -724ms
nodeModulesSize 198 MB 198 MB ⚠️ +1.2 kB
Page Load Tests Overall increase ✓
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
/ failed reqs 0 0
/ total time (seconds) 4.479 3.712 -0.77
/ avg req/sec 558.12 673.51 +115.39
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 2.305 1.987 -0.32
/error-in-render avg req/sec 1084.76 1258.03 +173.27
Client Bundles (main, webpack, commons)
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.2 kB 42.2 kB
main-HASH.js gzip 27.8 kB 27.8 kB
webpack-HASH.js gzip 1.43 kB 1.43 kB
Overall change 71.6 kB 71.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
polyfills-a4..dd70.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
_app-HASH.js gzip 1.22 kB 1.22 kB
_error-HASH.js gzip 180 B 180 B
amp-HASH.js gzip 305 B 305 B
css-HASH.js gzip 321 B 321 B
dynamic-HASH.js gzip 2.38 kB 2.38 kB
head-HASH.js gzip 342 B 342 B
hooks-HASH.js gzip 621 B 621 B
image-HASH.js gzip 4.46 kB 4.46 kB
index-HASH.js gzip 256 B 256 B
link-HASH.js gzip 1.9 kB 1.9 kB
routerDirect..HASH.js gzip 314 B 314 B
script-HASH.js gzip 375 B 375 B
withRouter-HASH.js gzip 309 B 309 B
334f979574ae..6f4.css gzip 106 B 106 B
Overall change 13.1 kB 13.1 kB
Client Build Manifests
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
_buildManifest.js gzip 459 B 459 B
Overall change 459 B 459 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js fix-middleware-header-propegation Change
index.html gzip 534 B 534 B
link.html gzip 546 B 546 B
withRouter.html gzip 528 B 528 B
Overall change 1.61 kB 1.61 kB
Commit: 9d26aca

@ijjk
Copy link
Member

ijjk commented Oct 26, 2021

Failing test suites

Commit: 9d26aca

test/integration/preload-viewport/test/index.test.js

  • Prefetching Links in viewport > should not prefetch already loaded scripts
Expand output

● Prefetching Links in viewport › should not prefetch already loaded scripts

expect(received).toBe(expected) // Object.is equality

Expected: false
Received: true

  397 |     expect(hrefs).toEqual([...new Set(hrefs)])
  398 |
> 399 |     // Verify encoding
      |     ^
  400 |     expect(hrefs.some((e) => e.includes(`%5Bhello%5D-`))).toBe(true)
  401 |   })
  402 |

  at Object.<anonymous> (integration/preload-viewport/test/index.test.js:399:5)

@ijjk ijjk changed the title Fix middleware header propegation Fix middleware header propagation Oct 26, 2021
@styfle styfle merged commit 3828ebe into canary Oct 26, 2021
41 of 42 checks passed
@styfle styfle deleted the fix-middleware-header-propegation branch October 26, 2021 03:26
@vercel vercel locked as resolved and limited conversation to collaborators Jan 27, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants