Brave: subresource assets (e.g. images, video, scripts) with gateway URL not redirected
Describe the bug When a website links to assets over IPFS using gateway URL's, they are loaded over the gateway rather than redirected to a configured gateway (e.g. local node).
To Reproduce
- Ensure local node is running.
- Ensure IPFS Companion is enabled.
- Load demo page with link to image on https://dweb.link: https://dweb.link/ipfs/QmaZKqW2KM4P6cynUg7u8htjgn1LvD9io7cVEpjCdpAcDr
- Ensure redirect to local node (e.g. http://bafybeifvrn2fj77a7xlhgi3r5yfqdllibcyoozcd65ggzzhdj47rwbirnu.ipfs.localhost:8080/).
- Open Network tab in DevTools.
- Reload page.
- Verify request URL for image on website.
Expected behavior Image URL is replaced by URL on local node (e.g. http://bafybeifnki7op77j43swrlukkjq7whi5wxae7zys52fqgrsycars656xhq.ipfs.localhost:8080/QmUxhzKtwaDm5T8HnxfVCxogH2K7MshYVdtc1mCaFFFqqm-400-400.webp), as would be the case then the image URL is opened directly, and loaded from there. Instead, it's loaded from the original URL from the remote gateway (e.g. https://bafybeifnki7op77j43swrlukkjq7whi5wxae7zys52fqgrsycars656xhq.ipfs.dweb.link/QmUxhzKtwaDm5T8HnxfVCxogH2K7MshYVdtc1mCaFFFqqm-400-400.webp).
Screenshots

Desktop:
- OS: macOS Catalina 10.15.7 (19H2026)
- Browser: Brave
- Version: Version 1.43.89 Chromium: 105.0.5195.102 (Official Build) (x86_64)
- IPFS Companion: v2.19.1
Additional context I have double checked that with the internet disconnected, the image loads from the direct URL and the demo page loads, but the image does not load on the page.
Thank you for submitting your first issue to this repository! A maintainer will be here shortly to triage and review. In the meantime, please double-check that you have provided all the necessary information to make this process easy! Any information that can help save additional round trips is useful! We currently aim to give initial feedback within seven business days. If this does not happen, feel free to leave a comment. Please keep an eye on how this issue will be labeled, as labels give an overview of priorities, assignments and additional actions requested by the maintainers:
- "Priority" labels will show how urgent this is for the team.
- "Status" labels will show if this is ready to be worked on, blocked, or in progress.
- "Need" labels will indicate if additional input or analysis is required.
Finally, remember to use https://discuss.ipfs.io if you just need general support.
Poke! @whizzzkid @SgtPooki @lidel @armujahid
@dokterbob ❤️ the 👉🏽🧑💻 but I don't have perms to assign/triage/label the issue.
For me locally, the redirect seems to be happening to my local gateway url as expected. But the asset is not resolving, 🤔?
iirc this is an artificial limitation present in Brave, caused by their custom Brave Shields extension.
Subresources on https:// websites (e.g., images) that have src pointing at a public gateway URL (with CID in URL) can't be redirected:
- https://github.com/brave/brave-browser/issues/20357
- https://github.com/brave/brave-core/pull/11799
Been a few months since I've looked at this, but at the time subresource redirect in Brave worked only when you use native ipns:// and ipfs:// built into Brave (using embedded note instead of remote one).
@dokterbob please fill an upstream issue in https://github.com/brave/brave-browser/issues and mention me there, and I'll bring this topic up during my bi-weekly sync with Brave :pray: