Firefox add-ons: how to install my own local add-on (extension) permanently in Firefox?

10,761

Solution 1

Did you try the web-ext tool and sign your add-on? You can use the Web-ext CLI tool to sign and install on your firefox.

Solution 2

Ran into the exact same problem the other day..

To get my personal xpi to install permanently (under Firefox for Linux 77.0.1):

  • had to disable extension signing about:config, xpinstall.signatures.required = false (unfortunatelly this will need to stay, because signatures seems to be verified on every browser start)

  • add an explicit id to browser_specific_settings section in the manifest

For example:

"browser_specific_settings": {
  "gecko": {
    "id": "blahblah@blah"
  }
}

Hope this helps!

Share:
10,761

Related videos on Youtube

RocketNuts
Author by

RocketNuts

Updated on September 15, 2022

Comments

  • RocketNuts
    RocketNuts about 1 year

    I have my own browser extension with some personal website customizations. Works fine in Chrome, but doesn't work in Firefox.

    Unlike Chrome, it seems Firefox can't install unpacked extensions or add-ons. Only in debug mode I can do Load Temporary Add-on, select the folder with my extension, and that works OK. Except that's just temporary.

    When I pack the extension by putting the files in a .zip (not within a subdirectory or anything, the archive just directly contains the files) and rename it to .xpi, and then choose Install Add-on from file and select my .xpi, it says:

    The add-on downloaded from this site could not be installed because it appears to be corrupt.

    While troubleshooting, I made a minimal dummy extension which doesn't do anything, consisting only of a manifest.json and dummy.js file. Then pack that from the command line using 7z a -tzip test.xpi in that directory, which creates my zip file called test.xpi containing the two files. Loading that extension in Firefox give the error above.

    For your reference here is my manifest.json:

    {
      "manifest_version": 2,
      "name": "Test Extension",
      "version": "1.0",
      "description": "Dummy Text Extension",
      "content_scripts": [
        {
          "matches": [ "*://*/" ],
          "js": ["dummy.js"]
        }
      ]
    }
    

    And the content of dummy.js is:

    // this file is intentionally left blank
    

    Again: works fine in Chrome, works fine in Firefox when loading as temporary add-on in debug mode (i.e. by loading the files, in the open dialog I select the manifest.json file). But loading the .xpi to install this extension permanently results in the "appears to be corrupt" error.

    FYI: I'm using the latest versions of Chrome and Firefox on macOS 10.15.5.

    For testing purposes, here is the exact test.xpi file I created, but packing it manually as decribed above will give the same result.

  • RocketNuts
    RocketNuts over 3 years
    Thanks, after adding an id it now complains about the xpi being unverified. Regarding the thread you linked on how to disable signature checking, which answer would that be, exactly? czerny's answer didn't work (I don't have nightly or developer build) and the 2nd answer by Makyen seems ridiculously complex. Is there a quick and easy way to (temporarily) disable signature checking by any chance?
  • lukacs
    lukacs over 3 years
    I meant: about:config -> xpinstall.signatures.required = false Just to clarify, Im using Firefox for Linux. The standard downloaded from Mozilla. Also, the addons seems to be verified every time they are loaded (browser restart), so unfortunatelly the verification will need to be disabled permanently.
  • RocketNuts
    RocketNuts over 3 years
    Ah OK, no unfortunately that doesn't work here in Firefox 77 on macOS.
  • Nils Lindemann
    Nils Lindemann over 3 years
    Meanwhile Firefox seems to silently ignore when the user changes that setting. But it still works in e.g. Firefox Developer, see here.
  • Alexander Myravjev
    Alexander Myravjev over 2 years
    how to update addon after local change? You have to pack add on after every change?