Criteria for being hosted

Hello,
To finance my studies, I propose to developp extensions for Twitch streamers. My extensions notify when streamers are live, publish a new video or send a message. In addition, a popup grants a quick access to their twitch channel and their social networks. The purpose of my extensions is to bring more visibility to streamers. And so allow them to live better thanks to their passion.

I have already published several of these extensions. Here they are: https://addons.mozilla.org/fr/firefox/user/Nucktrooper/

Biggest of the code is the same but the streamer, the functionnalities and the popup change. Two weeks ago, I tried to publish a new one and it suddenly did “not meet the criteria for being hosted in the gallery”, because:

Judging by the way your add-on works and is described, we believe that it shouldn’t be listed on AMO. You can submit the add-on as unlisted instead, so it is signed for self-distribution.

I asked why my extension is suddenly not accepted, but I got no answer. Where could I have any help?

Best regards,
Nucktrooper

The review team can help you with an explanation, if you don’t have one yet: @TheOne @mozkewisch @noitidart

The general idea is that we can’t have dozens or hundreds of nearly-identical add-ons listed, all of which require reviews and maintenance, when a more generalized add-on can serve the same purpose. You’re of course free to get them signed distribute them yourself.

I did a quick diff between two of the addons. Would you be able to create one addon, and then just allow them to pick from a list of channels to decide the images etc? You can create and host a collection of parametres.json.

Because there are so many channels we would understand if you need to make the images remote.

Is there a reason you don’t want to do that? We are totally willing to hear out your reasons. We would love to see you get what you need up and running while helping you stay within our policies.

I am a student (not in computer science). One year ago, a friend of mines wanted me to developp an addon for her Twitch Channel in exchange of a remuneration. I wasn’t the best to achieve this, but I had economic difficulties, and she had nobody else to do this.

It was a simple addon, but she agreed to let me developp it more to be usable by other streamers. Before to continue I faced many choices:

  1. Create ONE BIG extension and let the user add the streamers he wants to follow. The design would have been adaptive and basic:
    -It is very impersonal and can’t have specific functionalities because it has to fit with all the streamers you add. For example I can’t know the social networks of every streamers in the world.
    -It already exists and it is free to download. So if I developp one like that there will be no other economic model possible.

  2. Create ONE BIG extension and let users choose what streamer they want to follow among a set of streamers (chosen by me):
    -You can only have 1 button/popup at the same time in a WebExtension. So it let me choose between “having a personnal design for each streamer and force users to choose only one streamer to follow” and “having a basic, adaptive and impersonal design to let users follow all the streamer they wants in the set”. Both cases would be bad for streamers and for viewers.
    -For the economic model, I still cannot make this kind of extension not free to download, and the purpose of the extension is to bring more visibility to a streamer, to reinforce its community. What kind of streamer would like to pay to be in an addon with loads of other streamers, moreover if users have to choose only one of them.

  3. Create one extension per streamer:
    -It allows me to bring more functionnalities than in a generic addon. As I know the streamer, I can put the links of its social networks in the popup. In addition to lives, it can also notify YouTube videos, and the giveaways / messages they sent using the administrator interface addon that I created.
    -It is the most usefull way for the streamers to reinforce their community. Streamers are proud to bring their OWN extension to their viewers and viewers are proud to download the extension of their favorite streamer, and to know before everybody when he lives, publish a new video or create a giveaway.
    -The economic model is simple, streamers pay for the functionnalities they want to activate and for the design of their extension.

I am trying to host and distribute my addons on my server. I send it to clients as a ‘application/x-xpinstall’, but when I try to install them I have this warning:

I found that I have to add an exception for my server to install add-ons or to disable the options “Warn me when sites try to install add-ons”, but both are not working. Moreover, I don’t want users to do it. There is already a popup which ask the users if they want to install my addon, forcing users to open their settings in order to add a special exception to let my server ask if they want to install it or not is useless and counterproductive. People won’t install it.

Is there any solution to my problems?

We are looking to find a solution for your case. In the meanwhile, please make sure you are hosting the xpi file from a https:// URL.

There will still be a prompt to allow the site to install add-ons, but it will have an integrated allow button. See for example https://esupport.trendmicro.com/media/13588100/allow.png

Thank you for your answer, I was worried about this silence.

As you can see, my server is authorized (with https):

But it says that mozilla prevented my server to ask me if I want to install the addon.

Please check out this post: https://discourse.mozilla-community.org/t/how-to-self-host-a-web-extension/11449

You do not need to add your site to the allowed sites in Firefox this way.

Thank you, it solved my problem. Didn’t find it in the documentation about distributing addons. And as people who met this problem solved it by adding an exception, I thought I had to do the same.

Happy this worked! I’ll add this to my list of things to document better.

Just one thing. I found some documentation about auto-update for oldschool firefox extension, but nothing for web extension on firefox.

Does this guide for chrome web extension https://developer.chrome.com/extensions/autoupdate work?

The auto update for old school Firefox extensions should continue to work. You should be able to point the update url to a json file that is documented here:

https://developer.mozilla.org/en-US/Add-ons/Updates

Hello nucktrooper,

I’m the reviewer that approved most of the last updates you did of your add-ons in the past year or so.

You should have received multiple emails this morning regarding rejections of your new submissions. Please read it and reply to the email if you got any questions. We can also continue the conversation here if you like.

Best regards,

Sylvain Giroux

Sorry, in the refusal message, I didn’t understand that the decision also affects my published addons. It was simply written that my new addons are refused on the AMO. As some updates were approved until now, I thought it was only my new addons which are refused.

I can unlist already published addons but, how do I do to force already downloaded addons to check updates on my server and not on the AMO?

I started rejecting all updates on your current live-notifiers listed add-ons so that you can start implement the “B)” solution (go unlisted). If you don’t want to go this way, you can always start implementing solution “A)” but your next updates will need to reflect what has been asked in the review.

I’m not exactly sure how updates works for current users that have the listed add-on when you move from to unlisted. Someone can probably answer this question better than me. I’ll poke some #irc channels to get you an answer asap.

It would seem that once you go unlisted, your current users will not follow and get any updates. What could be done to get your current users to install the new unlisted version would be to send an update to your listed add-on specifying something like this :

“Hey, the add-on will be distributed from now”. Note that it shouldn’t directly link to an installer or try to trigger the install automatically.

If you are going this way, I’ll for sure accept one last update of your listed add-on (if it follows our guidelines) to help the transition to your users from listed to unlisted.

Ok. I am almost ready.

Here is my update manifest: https://nucktrooper.herokuapp.com/updates.json

Here is what I added in the manifest of all of my extensions:

Did I miss anything to make the autoupdate works with my server?

Isn’t it possible to publish one last update with the autoupdate link in the manifest before to unlist it? So every already downloaded addons will then check for updates on my server. I think it might be better than to ask users to uninstall their addons and to install the one on my server.

For your updates.json and the hosted zip file, you should try live to make sure everything is fine. Check the browser’s console and use extensions.logging.enabled set to true in about:config

To my knowledge, this is not possible.

I corrected the id of my addons in my update manifest. I tested with a new not listed addon and autoupdate works.

I have accepted one more time updates to your listed add-on so you’re able to migrate your users properly. I have tested your notification process and the migration documentation that you provide to your users and it seems to work properly.

Please let me know if you need update once again those listed add-ons for critical issues, I’ll find the time to help you for the migration of your users.

Please allow some weeks for your users to migrate than I strongly suggest to remove those add-ons from AMO so that we can close this process.

Best regards,

Sylvain Giroux.