Background information: I am trying to port my a recently created Chrome Extension to Firefox. I am using manifest v3 for the Firefox version of my extension. I have had to make minimal changes to the Chrome manifest.json to get the extension to load in Firefox: .background.service_worker => .background.scripts, added .browser_specific_settings.gecko.id and .browser_specific_settings.gecko.strict_min_version, .options_page => .options_ui.page, add .options_ui.open_in_tab set to true. With these changes, I am able to load the extension XPI into Firefox Developer Edition with signature verification disabled.
However, when the extension is loaded, permission for content scripts on the web site it operates on is not granted by default. The user has to either click on the gear icon for the extension when on the relevant site and enable permissions, or go to the manage page for the extension and enable the permissions there.
This is different from Chrome, where the permissions are granted automatically when the user installs the extension.
Is this the behavior that end users of my extension on Firefox will see, or is this only occurring because I’m loading an unsigned extension so Firefox is being extra paranoid about it? Or is there something different I need to do in manifest.json on Firefox for permissions to be granted automatically?
I know that other extensions, e.g., Bitwarden, that I’ve installed from addons.mozilla.org do not have this problem; they don’t seem to need to be explicitly granted permission to run content scripts on a site. But I don’t know whether this is because they’re signed, or because they’re using manifest v2, or because there’s something different they’ve done in their manifest.json, etc.
My extension only operates on one web site and the user is pretty clearly granting permission for it to operate by installing the extension because it says quite clearly what site it is going to operate on, so it’s redundant and not user-friendly for them to have to then take additional steps to grant the permission so the extension will work. I’m hoping there’s a way to make that unnecessary that I just haven’t been able to identify yet.