Hacker News new | ask | show | jobs
by simple10 786 days ago
This is exactly what I need right now. Thanks for building and sharing it! Looking forward to Firefox support. I hope you can get it working.

Firefox Support Issue: https://github.com/cezaraugusto/extension.js/issues/5

2 comments

In particular, navigating the conflicting requirements for `manifest.json` would be useful, e.g. the difference between event pages and background service workers, or permissions that are inconsistently required/forbidden.
That's interesting, what do you mean? An abstraction for the manifest apply dev defaults or instructions on how each major part should work?
I don't know exactly what the the person you're replying to had in mind, but support for different parts of the manifest varies (especially in Manifest V3). While it's possible to write a single manifest that works in all browsers (with warnings), doing so requires more than a little specialized knowledge.

For example, Firefox does not currently support the `optional_host_permissions` top level manifest key. To work around this, developers can declare their optional host permissions in both the `optional_host_permissions` array for Chrome compatibility and in the `optional_permissions` array for Firefox/Safari compatibility.

Another example is that currently only Chrome supports `background.service_worker` in stable releases. To work around this, developers can write their MV3 background scripts in a way that's compatible with both service workers and event pages, then declare both in the manifest like so:

```json { "background": { "scripts": ["background.js"], "service_worker: "background.js" } } ```

Yep, that's it! I settled for generating the manifest.json through a script, since at some point adding something only supported by one browser would cause an error in the other, though I think that may have been remedied now.
It would be great if you could add more details to the Firefox support issue in github. Maybe the community could help solve it?
The plugin for Firefox is on the way, but any community support is highly appreciated.