New Add-On Submission


(Vishalbj) #1

Hi,

We have developed a legacy extension using Web extension API as per new guidelines for Firefox add-on support. The new extension package which needs to be submitted for code signing consists of Jason files and a Dll file. The package structure looks like this

  1. Manifest.jason
  2. AC_xxx.jason
  3. AC_xxx.dll

Actually I have couple of queries regarding the submission of the same in Firefox.

  1. The Dll which is part of the new extension package is dependent on other Dlls. Do we need submit the dependent libraries as well for code signing???

  2. Is source code submission must for all the new extensions or is there any criteria for source code permission, In fact we checked following rules in https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Source_Code_Submission and my company extension doesn’t fall under the same and is not developed using the following tools mentioned in the link

  3. code minifiers or obfuscators, such as uglifyJS or Google Closure Compiler.

  4. tools that generate a single file from other files, such as browserify or webpack.

  5. template engines, such as handlebars or css2js.

  6. any other custom tool that takes files, applies pre-processing, and generates file(s) to include in the extension.

Please let me know if anything I am missing.

Thank you,

Vishal


(Martin Giger) #2

Pretty sure you’re not supposed to package the dll with your XPI anymore.

Source code submission still works pretty similar, if you have a compile step on your source code (like minifiers, obsfuscators, concatenators, transpilers etc.) then you need to submit the source with a reproducible build.


(Vishalbj) #3

Thanks Martin for your confirmation!!!


(Vishalbj) #4

Hi Martin,

We followed the following link https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Distribution/Submitting_an_add-on to submit my extension in firefox.

After the submission we got a signed .xpi file,in fact my extension is an unlisted add-on implemented using PKCS#11 manifests and now when i tried to test the signed xpi file the add-on should be automatically installed right by creating the registry key entries in the system which points to the manifest file.

HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\PKCS11Modules\ or do i need to follow this link for installation https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Distribution_options/Sideloading_add-ons

Please let me know if i am missing something.

Thank you,
Vishal


(Martin Giger) #5

The manifest file for the PKCS#11 module does not auto install the extension afaik. You’d still need to follow the side loading procedures for that.


(Vishalbj) #6

Hi Martin,

Thanks for the info. I have one more query related to add-on ID, actually we submitted the extension with random add-on id using this format "myextension@xxxx.com"

Now we would like to give some meaningful name for the same. In fact i tried changing the same and tried to submit ,it seems it was reporting an error . Is it possible to change the same or any alternative???

Thank you,
Vishal


(Martin Giger) #7

You can not change the ID for it to be the same extension.


(Vishalbj) #8

Hi Martin,

Thank you for the info.

I went ahead and submitted my add-on with new GUID. Now while testing the signed add-on, Mozilla was able to add extension automatically, but the PKCS11 api installmodule() called in my background script is reporting the following error

Error: No such PKCS#11 module acpkcs211

Following are the files implemented as part of the add-on and their registry settings.

manifest.json

{
“name”: “ActivClient Security Module”,
“manifest_version”: 2,
“version”: “1.1”,
“description”: “ActivClient Security Module”,
“applications”: {
“gecko”: {
“id”: “{2faa6adf-08f5-418f-b6cf-b303bb71d2f1}”,
“strict_min_version”: “64.0”
}
},
“permissions”: [“pkcs11”],
“background”: {
“scripts”: [“ActivClient-Security-Module.js”]
}
}

ActivClient-Security-Module.js:

try
{
browser.pkcs11.installModule(“acpkcs211”);
console.log(“module installed”);
}
catch(e)
{
console.log("module could not be installed "+e);
}

activclient_security_module.json
{
“name”: “acpkcs211”,
“type”: “pkcs11”,
“description”: “ActivClient Security Module”,
“path”: “C:\Program Files\HID Global\ActivClient\acpkcs211.dll”,
“allowed_extensions”: ["{2faa6adf-08f5-418f-b6cf-b303bb71d2f1}"]
}

Registry settings:

HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Firefox\PKCS11Modules\acpkcs211 = C:\Program Files\HID Global\ActivClient\Mozilla Extensions\ActivClient PKCS #11 Security Module\activclient_security_module.json

Please let me know if i am missing something here.

Thank you,
Vishal