Repository navigation
feat(nextjs): Mark pageloads that were served from a cached shell #25318
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
Draft
+1,506
−1,114
Draft
Changes from all commits
Commits
Show all changes
26 commits
Select commit
Hold shift + click to select a range
1b068ed
feat(nextjs): Never emit trace meta tags from a prerender
chargome 9394a8b
test(nextjs): Skip the ISR meta tag assertions in every dev variant
chargome edf0d98
fix(nextjs): Key the prerender trace guard on the OpenTelemetry context
chargome 408c7cc
fix(nextjs): Also recognize a prerender span that is activated by its…
chargome 5b173c4
fix(nextjs): Apply the prerender trace guard to `withSentry` on Cloud…
chargome fe3af83
test(nextjs): Cover an ISR page that is prerendered again at runtime
chargome dd8445b
docs(nextjs): Shorten the changelog entry
chargome 0ab39be
docs(nextjs): Reword the changelog entry
chargome 2c8bb46
docs(nextjs): Write the changelog entry in the Important Changes format
chargome dd54af4
ref(nextjs): Split the prerender context marking out of the propagato…
chargome a2aeaf5
test(nextjs): Skip the prerendered ISR tests from one describe block
chargome d4fcbc3
docs(nextjs): Drop the internals wording from the changelog entry
chargome c0c0993
feat(nextjs): Export the prerender guard for custom OpenTelemetry setups
chargome 89d0ecc
docs(nextjs): Simplify the changelog entry
chargome f0e687f
test(nextjs): Skip the prerendered ISR assertions on vinext
chargome 6651191
docs(nextjs): Keep the changelog entry under Unreleased after the rebase
chargome bf8dec5
feat(nextjs): Wait for the resumed part of a document before starting…
chargome b05fd2b
fix(nextjs): Record the document URL on a pageload that starts after …
chargome 33ff1b5
ref(nextjs): Pass the client to the pageload URL filter and use conve…
chargome 2511028
docs(nextjs): Correct what a navigation during the pageload wait does
chargome f86d6f6
docs(nextjs): Mention the deferred pageload start in the changelog entry
chargome c248cc5
feat(nextjs): Only wait for the trace meta tag when cacheComponents i…
chargome c41a798
ref(nextjs): Move the app router pageload instrumentation into its ow…
chargome 11b4573
feat(nextjs): Mark pageloads that were served from a cached shell
chargome 5d2d542
fix(nextjs): Mark a cached shell at pageload span start
chargome 26177fa
ref(nextjs): Name the cached document attribute and marker tag framew…
chargome File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
dev-packages/e2e-tests/test-applications/nextjs-16-cacheComponents/app/blocking/page.tsx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| import { headers } from 'next/headers'; | ||
|
|
||
| // Opts out of the static shell: the whole page renders on the server for every request, so the | ||
| // trace meta tags land in <head> like in a classic dynamic render. | ||
| export const instant = false; | ||
|
|
||
| export default async function Page() { | ||
| const requestHeaders = await headers(); | ||
| return <h1 id="blocking">Blocking render for {requestHeaders.get('user-agent') ? 'a browser' : 'nobody'}</h1>; | ||
| } |
4 changes: 4 additions & 0 deletions
4
dev-packages/e2e-tests/test-applications/nextjs-16-cacheComponents/app/static-shell/page.tsx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| // No request data anywhere, so the whole page is a static shell and nothing renders per request. | ||
| export default function Page() { | ||
| return <h1 id="static-shell">Static shell</h1>; | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
nit: We can use
SENTRY_LINK_TYPEfrom@sentry/conventions/attributes(also in the streaming app copy)