Password protect uninstallation of Firefox Addon using SDK - firefox

Background to this problem: Within out company we are working on an add-on to help us do some nifty things. To make it easier to administer we would like to have a password required to at minimum remove the add-on, but probably also to disable it.
I've seen this achieved in for example Public Fox but this is non-sdk style add-on. So my question is if there's an easy way to do this using the SDK? I've looked through the docs but I haven't found anything, probably because I don't know what I'm looking for.
To anticipate the question "why not use that add-on as well?" I think it's enough of a hassle to make sure everyone has one add-on installed, let alone two.

If you want to lock users down, what you're really looking for is a deployment technique where your Firefox deployment installs your extension by default, and to an area of the hard drive that the user does not have write/delete access to. See the Mozilla Wiki for more details on ESR builds and enterprise deployments:
https://wiki.mozilla.org/Deployment:Deploying_Firefox#Firefox_Customization_.28CCK_and_Repackaging_Tools.29

Related

What's the best way to offer a free trial period for chrome extensions?

I would like to offer a 7-day trial period for people who install my chrome extension.
After that, they would be required to input a licence key (purchased via gumroad) in order for the extension to continue to work.
I do not want to deal with registrations (emails, passwords etc.). The big risk is that the user simply uninstalls the extension when the 7-days are up, and then reinstalls it.
How do I offer the trial and avoid this scenario? Tie each install to a specific IP address perhaps?
Unfortunately you do have to deal with some sort of registration.
User installs app
Have them log in/register to start using it
There's an article about it that might help you with it, ideally using the user’s existing Google account instead of registering a new one: https://developer.chrome.com/docs/webstore/identify_user/

Desktop application using Firefox WebExtensions

I am working on a XUL desktop application, where I use the browser tag and load a URL in that tag within the desktop application.
However, some websites display as old format and according to Mozilla, XUL is deprecated and will not be useable at the end of 2017. I want to build the application with the latest technology: WebExtensions.
I have searched many examples on the usage of WebExtensions, but all are working within the browser. Can I make a standalone desktop application just like XUL, but using WebExtensions?
If yes, then please give me some hints on how to get started.
If no, is any alternative for the same requirement available?
Webextensions are fairly limited in their scope. Even if there was an application runtime utilising them, you probably wouldn't get much use out of them due to the restrictive isolation from the host system.
Strictly speaking not webextensions, albeit very similar:
The Electron framework/runtime*
Someone at Mozilla is also working on an alternative dubbed "Positron"** though that software's future is uncertain and there is a chance he might abandon it for an entirely new, highly simplified project (at least that's what I gathered from my conversation with him on Github).
*http://electron.atom.io/
**https://github.com/mozilla/positron

Merge Mozilla Addon to Build

I am working on a few addons on Mozilla since this easier than manually editing the source code.
The bigger picture is to have a customized browser that I can share with my fellow geeks and friends.
Question:Is there a simple way to add an addon to a Mozilla build so that my users don't have to manually install the addons on their computer.Something like a pre-packaged Setup.exe. The Setup.exe needs to be fully independent and not requiring to have Mozilla pre-installed.
More info(Edited):
Another reason is I do not want them to have access to the addons ,
the addons shouuld be in the core of the browser.Hence, a user should
not be able to turn off or even know it is an addon but barely the
functionality of their browser X.
You may want to use Portable Firefox, make your customizations and share the folder with your friends.
http://portableapps.com/apps/internet/firefox_portable

Chrome Portable on read only device: Suppress read only warning

I'm making a windows app for a client using Chrome in kiosk mode. They'd like to burn the project to CD. While this works fine with chrome portable on a read access device it doesn't with a read only device. A warning pops up asking to temporarily copy it to the local drive to run from there. Clicking yes allows the program to work but i'd like to suppress this as they won't want to see it every time. Is there a way for me suppress the warning or cache to the cd before it's burned?
I need to use chrome, not another portable browser. I could be being naive and they're may be a better option than using Portable apps chrome download.
I asked the same question on the Portable apps website and got this response. It worked great although take note of the distribution license.
Add a text file called GoogleChromePortable.ini in your GoogleChromePortable folder that says
[GoogleChromePortable]
RunLocally=true
this will make it copy the profile to the temp folder on the computer and run from there whether it's in read only place or not.
also notice Johns reminder in Pyromaniac's thread (http://portableapps.com/node/37168#comment-207403) - giving someone, especially a "customer" a copy of Google Chrome, Portable or otherwise, is illegal, don't do it.
Link to forum
http://portableapps.com/node/37164#comment-207482
I've investigated the license agreement and found this
21.2 Subject to the Terms, and in addition to the license grant in Section 9, Google grants you a non-exclusive, non-transferable license to reproduce, distribute, install, and use Google Chrome solely on machines intended for use by your employees, officers, representatives, and agents in connection with your business entity, and provided that their use of Google Chrome will be subject to the Terms.
So legal as long as it's kept internal. Works great if anyone ever stumbles on this question. Chrome makes an awesome portabl app.
To get around user policies you can try a pretty software does what you want.
http://codecanyon.net/item/html5-2-desktop-app-converter/4527199
This uses chrome engine and creates kiosk like portable engine for your given URL or local files. It makes pages looking like windows application. Hope helps.
Note: I'm not the author :)
Here's a link to where I got something that worked for me.
In the Support section, there is a performance note that advices copying GoogleChromePortable.ini from the GoogleChromePortable\Other\Source directory to the GoogleChromePortable directory and editing it to set RunLocally=true in order to increase performance, well this sorts out the warning that pops up.
However take note of the privacy implications of doing this as also stated in the same section.
Hope this helps someone.
You could try Chromium (portable) which also includes chromedriver from chromium snapshots page. Pick one with the biggest number (scroll down):
https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Win_x64/

NSIS automatic and silent update

I am currently building an application and want to have an installer and automatic silent updates for it.
Dropbox, Spotify and Chrome all are amazing at updating without anyone noticing. So I took a look at the Dropbox Roaming Folder in AppData and found a file named DropboxUpdateHelper.exe with an NSIS Icon. In the Spotify folder I could only find a SpotifyHelper.exe and a mentioning of NSIS in the Terms.
Is there a tutorial of how to install an application inside the Roaming Folder and have a silent auto updater? I am not fixed on NSIS but would prefer an open source and free installer.
NSIS has the INetC plugin that can be used to download things from the internet but I don't know if there is an auto update tutorial out there. You might also want to take a look at the VPatch plugin...
There are many variables to think about here:
Should your main application look for updates or just run the updater on application (or windows) startup so it can check?
Are the files on the server signed or do you have other ways to detect invalid/corrupted/MitM updates?
Do you require access control/DRM before downloading/applying updates?
How will you handle major version number updates? Will you support more than one major version or force upgrades?
Do you require administrator rights to update? UAC handling?
How are you going to support upgrading from 1.0 to 1.2? Update to 1.1 first or support every possible minor version upgrade path?
I'm sure there are many other issues you also have to think about. You should probably try to answer all these questions before you start coding. During development you might find other questions or that you have to change the design completely.
IMHO, this is not a simple question and I don't think you will be able to find a drop-in solution that fits your exact design/requirements...
It is easy to download files from internet using NSIS (there are several plug-ins for this purpose: NSISdl, InetC, ...) but such functionality is more about coding.
There is no exact solution for this - as Anders said you need to specify every detail to achieve required behaviour.

Resources