Skip to content

[Frontend SSR] Implement Server-Side Rendered Release Notes Page & HTML Templates - #6676

Closed
jcscottiii wants to merge 1 commit into
jcscottiii/pr11a-shared-seo-infrastructurefrom
jcscottiii/pr11-frontend-ssr-releasenotes-page
Closed

[Frontend SSR] Implement Server-Side Rendered Release Notes Page & HTML Templates#6676
jcscottiii wants to merge 1 commit into
jcscottiii/pr11a-shared-seo-infrastructurefrom
jcscottiii/pr11-frontend-ssr-releasenotes-page

Conversation

@jcscottiii

Copy link
Copy Markdown
Collaborator

Summary

Implements the public Server-Side Rendered (SSR) Release Notes page (GET /release-notes/<int:milestone> and GET /release-notes) using hyphenated URL paths to match existing developer.chrome.com/release-notes URL conventions.

Provides fast initial load time, zero JS bundle dependencies, search engine SEO indexing, public CDN caching (HTTP_CACHE_TYPE = 'public'), a Symmetrical Navigation Strip (Channel Quick-Jumps + Milestone Combobox Selector), M151 cutoff HTTP 302 redirect handling, and responsive category-grouped feature cards styled via native main.css design tokens.

Key Changes

  • Controller (pages/releasenotes.py & main.py): Implements ReleaseNotesHandler(basehandlers.FlaskHandler) with HTTP_CACHE_TYPE = 'public' registered under /release-notes/<int:milestone> and /release-notes. Assembles template context with channel milestone mappings (stable, beta, dev), M151 cutoff redirect (MIN_SSR_RELEASE_NOTES_MILESTONE = 151), and category-grouped features.
  • Template (templates/release-notes.html): Extends _base.html. Implements the Symmetrical Navigation Strip, native main.css button classes, hyphenated /release-notes/ href links, and responsive Flexbox feature cards.
  • Testing (pages/releasenotes_test.py & Playwright): Added 16 Python unit tests covering public cache configuration, M151 cutoff HTTP 302 redirects, parameter resolution, and a modular Playwright test suite (packages/playwright/tests/chromedash-release-notes-ssr_pwtest.js).

TAG=agy
CONV=86f63625-bdb5-4d50-ac8d-2f8ca5128ca9

Comment thread templates/release-notes.html Outdated

<div class="milestone-select-group">
<label for="milestone-select">Milestone:</label>
<select id="milestone-select" class="milestone-select" onchange="window.location.href='/releasenotes/' + this.value">
@jcscottiii
jcscottiii changed the base branch from main to jcscottiii/pr10-milestone-curation-api July 28, 2026 21:01
@jcscottiii
jcscottiii force-pushed the jcscottiii/pr11-frontend-ssr-releasenotes-page branch 6 times, most recently from 03a55a5 to 7e5fe1c Compare July 29, 2026 17:53
…ML Templates

## Summary

Implements the public Server-Side Rendered (SSR) Release Notes page (`GET /release-notes/<int:milestone>` and `GET /release-notes`) using hyphenated URL paths to match existing `developer.chrome.com/release-notes` URL conventions.

Provides fast initial load time, zero JS bundle dependencies, search engine SEO indexing, public CDN caching (`HTTP_CACHE_TYPE = 'public'`), a Symmetrical Navigation Strip (Channel Quick-Jumps + Milestone Combobox Selector), M151 cutoff HTTP 302 redirect handling, and responsive category-grouped feature cards styled via native `main.css` design tokens.

## Key Changes

- **Controller (`pages/releasenotes.py` & `main.py`)**: Implements `ReleaseNotesHandler(basehandlers.FlaskHandler)` with `HTTP_CACHE_TYPE = 'public'` registered under `/release-notes/<int:milestone>` and `/release-notes`. Assembles template context with channel milestone mappings (`stable`, `beta`, `dev`), M151 cutoff redirect (`MIN_SSR_RELEASE_NOTES_MILESTONE = 151`), and category-grouped features.
- **Template (`templates/release-notes.html`)**: Extends `_base.html`. Implements the Symmetrical Navigation Strip, native `main.css` button classes, hyphenated `/release-notes/` href links, and responsive Flexbox feature cards.
- **Testing (`pages/releasenotes_test.py` & Playwright)**: Added 16 Python unit tests covering public cache configuration, M151 cutoff HTTP 302 redirects, parameter resolution, and a modular Playwright test suite (`packages/playwright/tests/chromedash-release-notes-ssr_pwtest.js`).

TAG=agy
CONV=86f63625-bdb5-4d50-ac8d-2f8ca5128ca9
@jcscottiii
jcscottiii force-pushed the jcscottiii/pr11-frontend-ssr-releasenotes-page branch from 7e5fe1c to 6a80312 Compare July 29, 2026 17:59
@jcscottiii
jcscottiii changed the base branch from jcscottiii/pr10-milestone-curation-api to jcscottiii/pr11a-shared-seo-infrastructure July 29, 2026 18:02
@jcscottiii

Copy link
Copy Markdown
Collaborator Author

Closing in favor of split stacked PRs: PR #6678 (Shared Infrastructure & SEO Sub-Templates) and PR #6679 (Frontend SSR Release Notes Page).

@jcscottiii jcscottiii closed this Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants