Installing and customizing Rapid Release Firefox
I'm installing Firefox on all new computers that I sell at my store, and I install it on all computers coming in for service. These are the customizations I'm doing: 1)Displaying Menu Bar and Bookmarks Toolbar 2)Adding our support URL to the Bookmarks and Bookmarks Toolbar 3)Setting network to no proxy 4)Installing the Canadian English Dictionary from here: https://addons.mozilla.org/en-US/firefox/addon/canadian-english-dictionary/ 5)Setting Firefox to the default browser and always check if it's the default browser.
I've been using CCK2 by Mike Kaply, but it doesn't appear to work with FF61.
Am I right in thinking that I need to create a policies.json with customizations I need?
If so, are these the settings I need? {
"policies": { "DisplayBookmarksToolbar": true "DontCheckDefaultBrowser": false "Extensions": { "Install": ["https://addons.mozilla.org/en-US/firefox/addon/canadian-english-dictionary/"] } "Bookmarks": [ { "Title": "Our Support Page", "URL": "http://Support.url", "Placement": ["toolbar"], "Folder": "FolderName" } "Bookmarks": [ { "Title": "Our Support Page", "URL": "http://Support.url", "Placement": ["menu"], "Folder": "FolderName" } "Proxy": { "Mode": ["none"] } "SearchEngines": { "Default": "Google", "PreventInstalls": [true] } }
}
Where do I place this file? Does it only affect brand new installations, or if I do an reinstall/upgrade, can I apply new customizations? Do the customizations affected all new profiles created?
Thanks!
All Replies (4)
The policies.json file goes into the Firefox installation directory and should impact all profiles. If the user reinstalls Firefox, the changes will likely be undone because the file will likely be removed, but updating will leave the changes alone.
More information on using the policies.json file can found in the Customize Firefox using policies.json support documentation.
NOTE: Not all customizations are available for the Firefox Rapid Release version. Some changes are only compatible with Firefox ESR.
The easiest way to do this (on Windows computers) is probably to repack the Windows installer, that way you don't need to manually add the policies.json file each time.
The changes that you are referring to can also be done using Group Policy on Windows computers, which is the preferred method of doing this. However, as with the policies.json file, not all options are compatible with Firefox Rapid Release.
As a side note, what is your reason for wanted to lock down the user's computer like this? It's uncommon practice to lock down a user's computer in the way that you are attempting, especially if they have purchased the computer from you or brought their own computer to you for service.
Generally, it's common for computer sales locations to deploy Firefox with customizations, but not lock those changes into the browser. However, a lot of computer sales locations will leave computers at the Windows setup screen so that they can create an account and agree to the license terms themselves.
Thanks for the help. I can't use Group Policy on all computers because some have home versions of Windows and don't have gpedit.msc available.
I don't really think I'm "locking down" the computer with this setup. Is there something I'm missing?
It looks like I can't add extensions in the Rapid Release version with the JSON file. That's too bad. So I'm back to manually adding extensions.
I'm looking into the repackaging idea.
In the "Repackaging the Windows Installer" info, it states
"Step 3: Make changes to Firefox
Make your changes to Firefox in the core subdirectory. "
I'm sure I'm sounding like a complete neophyte, but what does that mean? How do I make changes?
Can I just put the XPI files I want to install in the browser\features folder?
How do I add bookmarks and turn on the menu?
So, when you are repacking the Windows installer, the extraction process will essentially give you the Firefox installation directory as it would look after you run the installer. When the steps say "make changes to Firefox", it simply means add in things like your policies.json file, extensions, etc. Then when you create the new Firefox installer, these added files will be automatically added when you install Firefox.
NOTE: As a side note, I just tested the policies.json implementation and I wasn't able to get it to work on my installation of Firefox rapid release or Firefox ESR. The support documentation on the support forum only includes steps for Mac and Linux, not Windows, although the Github repository says it works on Windows also.
As for adding the extensions, we have some documentation pending on this topic, but it hasn't been approved yet. However, if you click here and then select Revision Content, you can see the unpublished draft. You are correct about the XPI file, but you need to put it in a different directory.
Also, disregard what I said about "locking down the computer" because after reviewing the preferences that you want to add, it doesn't appear that any are "locked", as in the user would be unable to change them.
You can create a distribution\extensions folder in the main Firefox program folder.
- https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_in_the_enterprise
- https://developer.mozilla.org/en/Add-ons/WebExtensions/Alternative_distribution_options
- https://developer.mozilla.org/en/Mozilla/Developer_guide/Customizing_Firefox
You need to place the extension XPI files in the "distribution/extensions" directory. Make sure to rename the files to the ID as found in the manifest.json file.
There should be one Bookmarks section that is an array and add ',' separators to make it valid JSON.
{ "policies": { "DisplayBookmarksToolbar": true, "DontCheckDefaultBrowser": false, "Extensions": { "Install": ["https://addons.mozilla.org/en-US/firefox/addon/canadian-english-dictionary/"] }, "Bookmarks": [ { "Title": "Our Support Page", "URL": "http://Support.url", "Placement": ["toolbar"], "Folder": "FolderName" }, { "Title": "Our Support Page", "URL": "http://Support.url", "Placement": ["menu"], "Folder": "FolderName" } ], "Proxy": { "Mode": ["none"] }, "SearchEngines": { "Default": "Google", "PreventInstalls": [true] } } }