Content-Type Fixer v1.7.4.1
You can find a new help page (for Firefox 98+) here: https://www.jeffersonscher.com/ext/content-type-fixer.html
Operation
This extension does not monitor downloads until you enable it. Use the toolbar button to turn listening on (shows a yellow burst) and off (shows Zzzz). (If you want it on automatically, there is a checkbox on the menu for that.)
Content-Type
The extension checks the file extension on new page and download requests to see whether they have a file extension that should be assigned a specific Content-Type header. (It doesn't look at requests for embedded items like images, audio, or video.)
Automatically corrects the Content-Type for these extensions: .acsm, .css, .csv, .doc/docx, .epub, .pdf, .ppt/pptx, .psd, .rar, .rtf, .xls/xlsx, .zip, and .7z. Some image and video formats can be enabled with a click.
To add more, turn on the extension, try to download a file that isn't being handled correctly, then open the Log of recent requests to find Add and Edit buttons to add a custom Content-Type. The log is not saved to disk and is flushed when you snooze the extension.
Content-Disposition
The extension corrects errors with spaces that cause download file names to cut off. You can optionally force inline disposition, so Firefox follows the rules you've set on the Options/Preferences page without showing the download dialog each time. You also can force attachment disposition to bypass viewing in a tab. I suggest using that option sparingly, only as needed.
Exception Notes
Version 1.7.1+ ignores "Follow my settings (inline)" on Google Drive and for Gmail attachments due to cookie issues. Version 1.7.2+ extends the exception to Google Docs.
Permissions Note
While the extension is listening, it reads the Content-Type and Content-Disposition headers that servers send with files. It may modify the Content-Type and Content-Disposition headers. The extension does not read web pages.
Test Page
Without the extension running, you get bad results for the zip file links and embedded PDF on the following page, and the extension fixes it: https://www.jeffersonscher.com/res/badct/
Hat tip
The code draws from the Display inline extension from samlh: https://addons.mozilla.org/firefox/addon/display-inline/.