fix(page): show branded error overlay when a page fails to load
User-reported: navigating to a URL that fails (DNS failure, server not
found, connection refused) used to leave a blank white page forever
with no UI feedback - example `http://www.metikmusic.com/`. The
existing `did-fail-load` handler only logged to console and stopped
loading.
Now when did-fail-load fires for the main frame (errorCode != -3
ABORTED), the page tile renders a Peek-styled overlay with:
- the failed URL
- the human-readable error reason + code (e.g. ERR_NAME_NOT_RESOLVED)
- a Retry button that re-loads the URL
- a Close window button
The overlay clears automatically when did-navigate fires for any non-
`chrome-error://` URL (covers Retry success, address-bar nav, pubsub
`page:navigate` from pagestream).
Notable details:
- Webview did-fail-load events expose `validatedURL`, not `url`. The
pre-existing handler used `e.url` (which is undefined on the DOM
event) - fixed both the new code and the legacy lastFailedNavUrl
tracking by reading `e.validatedURL || e.url || ''`.
- Chromium fires a SECOND did-fail-load for its internal
`chrome-error://chromewebdata/` page navigation with an empty URL.
showLoadErrorOverlay() ignores those so the real error data isn't
wiped.
Test: `tests/desktop/page-load-failure.spec.ts` - 4 cases (DNS failure,
connection refused, retry-success, no overlay on happy path). All
green; existing redirect + navbar suites unaffected.