Hi,
I am a developer responsible for Zotero Connector - a 3M+ user extension. We are transitioning to Manifest V3 and one of the remaining features that we cannot easily implement is related to MIME type handling. The current MV2 extension uses blocking webRequest to check response headers, cancel requests and display a prompt for MIME types that Zotero understands natively. The user are prompted to either allow Zotero to import the file, or cancel, in which case we redirect the browser back to the file and do not block the request. We have two main categories for these:
1. Citation styles (.csl)
2. Bibliographic metadata files (.bibtex, .bib, .ris) and others
I think a MIME type handling API could be useful for many uses-cases beyond Zotero, and cannot be rolled into the more generic DNR feature unless DNR allows to attach JS callbacks for captured rules (which seems very much against the design philosophy there).
Our current dev implementation of MV3 Zotero Connector has a special rule to handle citation styles from
www.zotero.org/styles (we cannot implement this with DNR for other websites with just URL filtering as any site can serve these files), where we redirect .csl style URLs to a #hash URL and then show a confirmation prompt. This flow would be almost fine, except that a DNR redirect to a #hash URL causes a full page reload, instead of only a history update. That leads to suboptimal UX (the MV2 version causes no page loads or refreshing). However, even if DNR rule redirects to #hash urls happened without a refresh, other websites may have JS that strips or otherwise handles #hash part of the URL and we wouldn't be able to capture that, so it is not a bulletproof solution either and the only way to properly address this is to add a separate MIME type handling API that supports JS handlers.
If necessary, I can either create a bug on the bugtracker, or post on that existing bug marked as duplicate.
Thanks,
Adomas