Repository navigation
Tab and app icons that Cloudflare Access cannot swap out - #449
Merged
Merged
Conversation
Behind Cloudflare Access, a request without the login cookie gets the Access login page. Chrome fetches the web manifest without credentials, so the installed app had no icon, and the /favicon.png request lost too, so the tab kept the login page's AVA Digital icon. The tab icon is now an inline data: PNG (64 px, from the app icon) in every page, and the manifest link has crossorigin="use-credentials" so it is fetched with the login cookie. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
Mickael (8 Oct): the CODEC tab shows the AVA Digital icon, and installing CODEC as a Chrome app gives no icon.
Cause:
codec.avadigital.aisits behind Cloudflare Access, which answers any request without the login cookie with a 302 to the Access login page (checked:/manifest.json,/static/icons/icon-192.png,/favicon.pngall 302 without the cookie). Chrome fetches the web manifest without credentials by default, so the install had no manifest icons; the tab's/favicon.pnglost the same way and the tab kept the login page's AVA Digital icon.data:image/png(64 px, made fromstatic/icons/icon-192.png), so there is no request to block.crossorigin="use-credentials", so Chrome fetches it with the Access cookie and the install gets the 192/512/maskable icons.Checks
tests/test_pwa.py: the manifest link carries credentials on the six app pages; the tab icon on all seven pages is an inline 64x64 PNG and/favicon.pngis no longer linked. Negative control on main's pages: 13 failed. PWA and static tests: 40 passed.Deploy
Restart
codec-dashboard(pages are served from disk; a restart is not strictly needed, but it keeps the deploy routine).🤖 Generated with Claude Code