Description#
Display user-friendly error pages when navigation fails. Currently the browser likely panics or shows a blank page on network errors. Error pages should explain what went wrong and offer a way to retry.
Requirements#
Error Types#
- DNS resolution failure —
Could not resolve host: example.invalid - Connection refused —
Connection refused: example.com:443 - Connection timeout —
Connection timed out: example.com - TLS handshake failure —
Secure connection failed: example.com(include reason: expired cert, wrong host, self-signed, unknown CA) - HTTP error responses —
HTTP Error 404: Not Found(for 4xx/5xx status codes, show the status and reason phrase) - Redirect loop —
Too many redirects: example.com - Invalid URL —
Invalid URL: not-a-url
Error Page Content#
- Title: error type (e.g., "This site can't be reached")
- Description: specific error message with the URL
- Technical details: error code / status in smaller text
- Reload button: attempts to navigate to the same URL again
- The error page is an internally-generated HTML document (not fetched from network)
Integration#
- Error pages are rendered through the normal HTML → style → layout → paint pipeline
- Error pages get a history entry (so back button works)
- Error page URL displayed in address bar is the URL that failed (not an internal URL)
document.locationon an error page reflects the failed URL
Acceptance Criteria#
- DNS failure shows a descriptive error page with the hostname
- Connection refused shows an appropriate error
- TLS errors show the specific failure reason
- HTTP 404/500 show the status code and reason
- Each error page has a working reload button
- Back button works from an error page to return to the previous page
- Error pages render correctly through the standard pipeline