IPvFoo doesn't work

IPvFoo is my extension. It works fine on desktop Chrome and Firefox, but it’s broken on Firefox Nightly for Android:

The first problem is that the [Click to grant permission] button doesn’t do anything. Here is the relevant API call from https://github.com/pmarks-net/ipvfoo/blob/master/src/popup.js :

const ALL_URLS = "<all_urls>";
...
chrome.permissions.request({origins: [ALL_URLS]});

I’m willing to try things if anyone has ideas, but it seems like it should be Firefox’s responsibility to make desktop MV3 extensions run unmodified.

1 Like

Hey @pmarks!

I did a bit of testing on my end and it appears that permissions.request() calls are not prompting the end user on Fenix Nightly 120.0a1. Someone has already opened 1850221 to track this bug. I’ll see what else I can find out about this bug.

Simeon (dotproto)
Firefox WebExtensions DevRel

1 Like

On Desktop Firefox, IPvFoo > Manage Extension > Permissions shows:

  • Required permissions for core functionality:
    • Access browser activity during navigation
  • Optional permissions for added functionality:
    • Access your data for all websites [toggle]

On Android Firefox, Add-ons > IPvFoo > Permissions only shows:

  • Access browser activity during navigation

I don’t think this problem is limited to the permissions.request() prompt, because I can’t seem to enable the permission manually either.

1 Like

Oh, that’s a good point point. You’re right, optional permissions aren’t appearing on Android. Thanks for calling this out!

I almost forgot to follow up on this comment. At the moment Firefox for Android is only targeting MV2 extensions with event pages. Longer term, though, I agree that Firefox should aim to minimize API differences between Android and desktop and support MV3.

I installed the apk from https://github.com/mozilla-mobile/firefox-android/pull/3917, and it actually works!

The extension’s custom [Click to grant permission] button responds now, but “Access your data for all websites” still does not appear in the Permissions UI, so there is no obvious way to revoke it once granted.

1 Like

Thanks for calling out that UX gap. I’ll look into it.

Firefox updated to version 120 on my Android device, but I’m unable to search for ipvfoo. It worked on 120 Nightly, and still works on 122 Nightly.

Any idea what the problem is?

@pmarks and I discussed this more over email, but in case anyone else comes across this thread, the issue is that AMO only supports one currently published version of an extension. If the current version does not indicate that it is compatible with Android, the extension will not appear in search results on Android devices and the “Add to Firefox” button on the extension’s listing page will be disabled.

If the current version does not indicate that it is compatible with Android, the extension will not appear in search results

That’s not relevant, because I’ve had this section in manifest.json for the last month:

  "browser_specific_settings": {
    "gecko": {
      "id": "ipvfoo@pmarks.net",
      "strict_min_version": "115.0"
    },
    "gecko_android": {
      "id": "ipvfoo@pmarks.net",
      "strict_min_version": "120.0"
    }
  },

Though https://addons.mozilla.org/en-US/firefox/addon/ipvfoo/versions/ says “Works with firefox 115.0 and later, android 121.0a1 and later”, so something strange is happening with the android version number.

Edit: I tried changing “120.0” to “120.0a1” but AMO still says “android 121.0a1 and later”. Maybe AMO doesn’t really parse that field for Android?

I’m currently waiting to see if the problem gets fixed on December 14.

Apologies, it seems I got my email threads confused. The issue you encountered was similar to but different from the thread I had in mind.

WebExtensions are not yet generally available on Android. While we’ve expanded the available set of extensions on the AMO Android page from ~20 to ~50 in late November, most extensions (including IPVFoo) won’t be available in Firefox for Android until December 14th.

Since you’ve already verified that you were able to search for and install the extension on Firefox Nightly, all that’s left is to give it another week :slight_smile:

EDIT: I forgot to mention, I’m pretty sure that the reason you’re seeing 121.0a in the versions list is that that’s the current version of Firefox Nightly on Android. Basically, AMO is overriding the default Android version specified by the developer to limit access in advance of general availability.

I just noticed that there are two nearly-identical AMO pages:

On Firefox 120 for Android (the stable release), I’m able to install from /firefox/ but not from /android/.

I was very confused by this, because Google indexes the /firefox/ URL (which works on Android), but https://addons.mozilla.org/addon/ipvfoo/ redirects to /android/ on Android (which doesn’t work), and the Android address bar isn’t wide enough to show the difference.

Hopefully the December 14 launch cleans up this mess.

Edit: There are still separate /firefox/ and /android/ URLs, but now they both work, so that’s an improvement.