You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore(security-headers): drop console-noise warnings from dev tools
Three real fixes (one inline-script CSP violation, six obsolete
Permissions-Policy features, one helmet default that warns instead
of helping). Two warnings deliberately left alone with rationale in
the changelog (COOP-on-HTTP needs HTTPS in production; Edge tracking
prevention on 3rd-party CDNs would need a self-hosting refactor).
- src/server.js: helmet({ originAgentCluster: false }) +
trim Permissions-Policy to recognized features only.
- public/js/login-reset.js: extracted from inline <script> in
index.html so the script-src 'self' directive accepts it.
- public/index.html: <script src=…> in place of the inline block.
Release: v7.3.7
Copy file name to clipboardExpand all lines: CHANGELOG.md
+18Lines changed: 18 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,24 @@
2
2
3
3
All notable changes to Docker Dash are documented here.
4
4
5
+
## [7.3.7] - 2026-04-25 — Browser console hygiene
6
+
7
+
A user-driven cleanup pass on the dev-tools console output. Three real issues, three drive-by warnings I left alone (and explain why).
8
+
9
+
### Fixed
10
+
11
+
-**CSP blocked inline `<script>`** in the login screen (`Executing inline script violates the following Content Security Policy directive`). The forgot-password reveal/submit handler lived inline in `public/index.html`. Extracted to [`public/js/login-reset.js`](public/js/login-reset.js) and referenced via `<script src=…>` so the existing `script-src 'self'` directive accepts it. No `unsafe-inline` was added (would defeat the point of CSP).
12
+
13
+
-**Permissions-Policy "Unrecognized feature" warnings** for six entries the current browsers no longer understand: `ambient-light-sensor` (early proposal, never standardized), `battery` (removed for privacy), `document-domain` (not a Permissions-Policy feature — lives in CSP/headers), `execution-while-not-rendered`, `execution-while-out-of-viewport`, `navigation-override` (all three Chrome-only, never standardized). Removed from the header in [`src/server.js`](src/server.js#L52-L74). All six are still safe at the platform level — listing them here was warning-noise, not protection.
14
+
15
+
-**Origin-Agent-Cluster mismatch warning** ("could not be origin-keyed since the origin had previously been placed in a site-keyed agent cluster"). Helmet defaults to sending `Origin-Agent-Cluster: ?1`, which only takes effect if every page on the origin opts in consistently — our SPA doesn't, so the warning fires on every page load. Disabled via `helmet({ originAgentCluster: false })`. We don't need agent-cluster keying for our use case.
16
+
17
+
### Not fixed (and why)
18
+
19
+
-**`Cross-Origin-Opener-Policy header has been ignored, because the URL's origin was untrustworthy`** — fires on plain HTTP. The browser refuses COOP enforcement on insecure origins. Goes away in production behind HTTPS (Caddy `--profile tls` or any other TLS termination). No code fix needed.
20
+
21
+
-**`Tracking Prevention blocked access to storage for <URL>`** — Edge's strict tracking prevention blocking 3rd-party storage for our CDN dependencies (jsDelivr, cdnjs, Google Fonts). Browser-side feature, can't be turned off from server. Could be eliminated by self-hosting Chart.js / FontAwesome / fonts — large refactor for a cosmetic warning. Deferred.
{type: 'fix',text: 'CSP blocked an inline <script> on the login screen (the forgot-password reveal/submit handler). Extracted to public/js/login-reset.js so the existing script-src \'self\' directive accepts it. No \'unsafe-inline\' added.'},
18
+
{type: 'fix',text: 'Six "Unrecognized feature" warnings in the Permissions-Policy header — removed entries that current browsers no longer understand: ambient-light-sensor, battery, document-domain, execution-while-not-rendered, execution-while-out-of-viewport, navigation-override. All six are still safe at the platform level — listing them here was warning-noise, not protection.'},
19
+
{type: 'fix',text: 'Origin-Agent-Cluster mismatch warning ("could not be origin-keyed"). Helmet sends ?1 by default but our SPA doesn\'t opt every page in consistently. Disabled via helmet({ originAgentCluster: false }) since we don\'t need agent-cluster keying.'},
20
+
{type: 'improvement',text: 'Two warnings left intentionally: COOP-on-HTTP (browser refuses on insecure origin — goes away behind HTTPS) and Edge Tracking Prevention blocking 3rd-party CDN storage (browser feature, would need self-hosting Chart.js + FontAwesome + fonts to silence — deferred).'},
0 commit comments