Redirect Firefox extension updates to official add-ons site? - firefox

Now that Mozilla requires Firefox extensions to be signed, I've decided to only host my personal extensions at the official Add-ons for Firefox (AMO) site. Previously, I hosted my extensions at my personal website, using the requisite update manifest machinery.
I'd like to redirect users who installed my extensions directly from my personal website to the new versions at AMO. I was under the impression that if I released an update of my extension without the custom updateURL in the extension's manifest, that it would check AMO by default. That doesn't seem to be the case, however.
How can I make it so that users who installed my extension via my personal site can get updates going forward from the official add-ons site? Are they essentially forced to uninstall / reinstall to pick up this change? Or can I trigger it somehow?
I should point out that the extension ID for my extension is the same, regardless of my distribution point. This is one reason I thought that simply removing the updateURL from the installer manifest would do the right thing.
Update: Here's further details on the scenario I'm trying to solve:
User installed version 2.6.5 of my extension from my personal website some time in the past.
I released version 2.6.6 of the extension on my personal website, removing the updateURL node from that version's installer manifest in the process.
I release version 2.6.7 of the extension on AMO only. I expect that the user from step 1 should be able to automatically upgrade their install to 2.6.7, but this isn't the case. It's as if Firefox doesn't know to check AMO for that given extension, even though the extension ID is the same.
Update 2: My installer manifest for version 2.6.6 contained the updateKey node, but not the updateURL node. When I remove the updateKey from the installer manifest, repackage the extension, and install it, the updates available at AMO are then found successfully. This shifts the problem, however, to the update manifest on my website. In order for an extension update to be found via my website, it needs the updateKey (unless I'm missing something obvious). How can I automatically push an update to an extension that (a) isn't hosted on AMO and (b) has neither an updateKey or an updateURL present in its installer manifest?

If you have your extension hosted on AMO, it will be automatically updated for the user (unless the user has 'Automatic updates' turned off for your particular add-on via Tools > Add-ons > Extensions > (your extension) > More.
And yes, you should remove the updateURL tag from your install.rdf file.
You can find more information at the MDM site.

Related

Sign and update Visual Studio Extensions

So it seems as a pretty easy Task, I created a VSIX which I uploaded a few days ago. Some days later I fixed some issues and now I want to update the extension on the marketplace.
I went ahead and took a look at the MSDN which states the following:
Unsigned all user extensions do not get updated automatically. You should always sign your extensions.
So therefor I went on an tried to sign my VSIX as explained here. Which tells me to do the following:
Search for VSIXSignTool from VisualStudioExtensibility and install the NuGet package.
After downloading the package, I searched for the given location which should be in your project's local packages location. Which makes me wonder, cause I do not have any local packages folder for this project. Furthermore I should sign my extension with the following command:
VSIXSignTool.exe sign /f <certfile> /p <password> <VSIXfile>
Which makes me wonder, what kind of certificate that should be, what should be the password be, a new password?
Anyway, lets assume I somehow mange to do that, how would I 'update' the extension than? Just upload it again as a new package with a new VSIX-Id?
To sum it up, this are my questions:
How/Where do I download the VSIXSignTool
What parameters do I need to pass into the VSIXSignTool command provided above
How do you really update the extension on the marketplace and do I need a new VSIX Id
I suggest first try to update your extension without signing. Just increase the version number and on the marketplace site click Manage - ... (More Actions) - Edit - Upload Extension/Edit package.
VSIXSignTool requires a code signing certificate that needs to be purchased.

Missing Payment Plugin Extension In Opencart

I currently finished writing a payment plugin for opencart. I uploaded it using filezilla to an online opencart site, tested it and it worked perfectly.
After which i tried installing the same plugin using the extensions installer from admin, setup my ftp and i got a "installed successfully" message.
The problem is i can't find the extension under payment extensions in the opencart site. As in, it is completely missing but it definitely has to be somewhere since it installed successfully
NOTE
The previously installed plugin through filezilla cannot be possibly crashing with the new one because i removed that one completely.
I setup my FTP perfectly.
I zipped the upload folder, saved it with upload.ocmod.zip before uploading it.
How do i find the missing extension and if i'm installing it the wrong way, what is right way to go about the it.
In OpenCart 2.3, all extensions are listed in the Extensions > Extensions area. You then have to choose which extensions you want to filter on (e.g. Shipping extensions).
Which Opencart version you are using?

Why won't my Firefox Add-on update?

I've built a Firefox add-on and I'm trying to get this to update automatically. The add-on is for internal use for colleagues at work and for this reason I cannot add to the store so it needs to update from a hosted location.
Having read the documentation I have created the install.rdf and update.rdf files, I've used McCoy to install an update key on the install.rdf and sign the update.rdf. I also ensured there was a sha1 hash in the update.rdf generated from the .xpi file, this was in the update.rdf before signing through McCoy.
My installed version is 1.rev105 and the version I'm trying to update to is 1.rev107 but it won't even update manually.
I'm running FF24 and have set the max version to 24.* in the update.rdf.
I've also built a Chrome extension for this project which is working fine so this holding things up, any tips would be much appreciated.

Moving Firefox addon to repository

I've developed a Firefox addon. Let's say addon.xpi. I hosted it on my site, but now it also available in the Mozilla repo.
So, I want to move all existing users (who installed addon.xpi from my site) to Mozilla repo. As I understand, since the both addons (on my site and in the repo) have the same ID, I need just put some "Mozilla repo" link to UpdateURL for selfhosted version, and then next time all users will install updates from the repo.
Am I right? Does somebody know general update URL for addons in Mozilla repository?
It's simpler than that - just remove <em:updateURL> from your install.rdf file and publish an update. By default the update URL in the browser's extensions.update.url preference is used. And that one always points to addons.mozilla.org, so once your users update they will get future updates from there.
Or you can even modify to update.rdf file currently on your server and change <em:updateLink> entry - point it to the XPI file on addons.mozilla.org.

FireFox API install extension

How do I install, update, uninstall FireFox extensions on Windows?
The article (https://developer.mozilla.org/en/Adding_Extensions_using_the_Windows_Registry) seems like a legacy information...
I have installed FireFox 3.6.3.
However, I don't see "HKEY_LOCAL_MACHINE\Software\Mozilla\Firefox\Extensions" in my registry:
[HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla]
[HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox]
[HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\3.6.3 (en-GB)]
[HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\3.6.3 (en-GB)\Main]
[HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\3.6.3 (en-GB)\Uninstall]
[HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox 3.6.3]
[HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox 3.6.3\bin]
[HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox 3.6.3\extensions]
For example, I want to install my_ext.xpi (ID: my_ext#my_site.com, Path: c:\myapp\ff_addons\my_ext.xpi).
Could you talk me how can I install my extension ?
Which firefox's versions support this method ?
The extension registry key (HKEY_LOCAL_MACHINE\Software\Mozilla\Firefox\Extensions) doesn't exist by default - simply create it and register your extension there as detailed in Mozilla's instructions (which you linked to).
This method has been working fine for me for over a year now.
You also have another option (which also works on non-Windows machines): Installing Extensions
The windows registry method is not a legacy method, and it's the supported way of installing an add-on for all users on a machine (and all Firefox profiles).
I'm curious as to why you felt it was a legacy method.
Are you talking about an extension or a plug-in?
Extensions are generally installed by having Firefox open an .xpi file. And .xpi files are just .zip files with a manifest (.rdf) and your various scripts and libraries. You can install it manually by creating the right directory structure. On my machine extensions live here: C:\Users\[username]\AppData\Roaming\Mozilla\Firefox\Profiles\[random-number].default\extensions. You create a subdirectory there called yourextension#yourcompany.com and then unzip the contents of your XPI inside the subdirectory. The next time the user re-starts firefox, your extension will be installed. There are a few gotcha's though:
Users have to manually restart Firefox.
You don't know which profile to use if there is more than one. The profile is identified by the [random-number] above. Many users have more than one profile.
On Mac and Linux this is a different directory, though the same basic idea applies.
Plugins are things like Flash that run inside a webpage. You can install those by setting a registry key, but I think in general there is a well-known folder where Firefox looks and loads anything that starts with NP (e.g. NPSWF32.dll). Seriously, it looks for NP. And each plugin must export certain NPAPI functions that Firefox uses to negotiate... stuff.

Resources