Configuring Firefox 24 for deployment

Hey Everyone! Welcome back to another Firefox deployment post (up to number 4 now). As it was only released in the last few days, I have actually tested this with version 23 and version 24 without any issues.
Previously, I have used manual edits to the Firefox application bundle, all of which need to be repeated on each update of the application.
This blog will use the excellent CCK Wizard from the amazing Mike Kaply to construct a lock-down extension that can be easily and quickly transported between updated versions a lot easier.
Disclaimer:
While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.
Right, lets get to it.
Introduction
Firefox Version: 24.0.0
Date: 10/10/13
This blog post is split into three main sections:

  1. Obtaining and installing the CCK Wizard.
  2. Configuring a CCK lock-down profile.
  3. Installing the profile into your Firefox bundle.

I suggest you use a new user account that hasn’t launched Firefox, of any version, to build your deployment copy.

Phase 1: Obtaining and installing the CCK Wizard

    1. Navigate to the Firefox website and download the latest copy of Firefox.
    2. Drag your new copy of Firefox to the desktop so you can work on it.
    3. Launch Firefox and dismiss all of the first launch popups and messages.
    4. Once you have got your copy of Firefox fully open, launch the Add-on manager by going to the “Tools” menu item, then “Add-ons”.
    5. configuring firefox 24 deployment

    6. In the “Search all add-ons” box, type in “cck” and hit return.
    7. firefox  24 deployment

    8. This should show the CCK Wizard add-on installer. Click “Install” and once complete, click “Restart Now”.
    9. cck wizard firefox deployment

    10. Once Firefox has restarted, you should see the following screen. This means that the CCK Wizard add-on is installed. This completes Phase 1.
    11. cck wizard insallation

      For future usage, the actual CCK Wizard add-on will only be needed for editing the lock-down profile.
      Phase 2: Configuring a CCK lock-down profile

    12. With your newly relaunched Firefox, go back to the “Tools” menu bar item and select “CCK Wizard”.
    13. CCK lock-down profile

    14. This will launch the CCK Wizard editor. Click “OK” for the splash / intro page.
    15. cck wizard editor

    16. Click the “Save configuration automatically on exit” and click “New”.
    17. save configuration

    18. Give your configuration a new name and select a location to store the files it outputs. Click “OK”.
    19. new configuration profile firefox

    20. Once you’ve got the new profile in the drop down box, hit the “Continue” button.
    21. new configuration profile for firefox deployment

    22. Next you’ll get the “Customize Extension” screen. This is the main configuration for the profile it’s self. These are as follows:
    23. a. Unique ID – This is the universal name for this extension.
      b. Name – This is the name of the extension as it shows up.
      c. Version – This is for your own version system.
      d. Firefox Version – Minimum and Maximum – These are the minimum and maximum versions of Firefox that are supported by this add-on. An asterisk (*) can be used as a wildcard.
      e. Description – A brief description of the Extension / profile you are creating.
      f. Creator – The name of the person or company who created the profile.
      g. Homepage URL – The URL of the person or company who created the profile.
      h. Update URL – (Not tested) The URL that can be used to update the extension
      i. Update Public Key – (Not tested) The public key used to verify the update is genuine.
      j. Icon – (Not tested) The icon to use for the profile.
      k. Filename – The name given to the resulting profile file.
      l. Do not show this extension in the extension manager – Tick this to hid the profile from Firefox add-ons.
      m. Do not allow access to about:config – Tick this to block access to the advanced configuration available through about:config.
      n. Remove access to private browsing – Tick this to block access to the private browsing functionality.
      o. Turn off Firefox Sync – Tick this to disable Firefox Sync
      p. Prevent Discovering Add-ons in the Add-ons Manager – Tick this to disable the discovering section of the Add-ons.
      q. Make sure Firefox is the default browser at startup – (Not tested) Tick this to enable Firefox as the default browser.

    24. For this example, I have only set the following options:
    25. a. amsys-cck@extensions.amsys.co.uk
      b. Amsys-example-lockdown
      c. 1.0
      d. 17 and *
      e. Example lock down for Firefox
      f. Darren Wallace
      g. http://www.amsys.co.uk
      k. Amsys-example-lockdown
      l, m, n, o, p. Ticked
      q. Un-ticked.
      r. click “continue”

      firefox client customization kit

    26. The next page allows you to customise the browser:
    27. a. Enter a company string of text. This is shown in the help and about windows.
      i. I have used “Amsys_Plc”
      b. Home Page. This is the default webpage when Firefox is launched.
      i. I have used “http://www.google.co.uk”
      c. Welcome Page. This is used to set the initial profile page. You can also use the tick box to disable this.
      i. I have used Google as a safety net, but I have ticked the “Do not display…” tick box.
      d. Upgrade Page. This is used to set the page to be shown after Firefox is updated. You can also use the tick box to disable this.
      i. I have used Google as a safety net, but I have ticked the “Do not display…” tick box.
      e. Click “Continue” once complete.

      firefox client customization kit continued

    28. The next page allows you to customize the window title text and the Animated Logo. Generally speaking, these are not required for our typical deployment and so I have neither used, nor tested this functionality. Click “Continue”.
    29. customize browser firefox deployment

    30. The next page is the third Browser configuration page. This allows you to set a number of items relating to the help menu and user interface elements. Again, these are not required for our typical deployment and so I have neither used, nor tested this functionality. The exception is that I have ticked the “Display the Bookmarks Toolbar” option. Click “Continue”.
    31. customize browser firefox deployment part three

    32. Next is the last page for customising the browser. This allows you to allow or block sites. These are not required for our typical deployment and so I have neither used, nor tested this functionality. Click “Continue”.
    33. customize browser firefox deployment part four

    34. The next section allows you to add browser plugins into your Firefox bundle. As with some of the advice features above, I have not tested or tried this section. Click “Continue”.
    35. customize browser firefox deployment plugins

    36. The next page allows you to customise the search engines. I have used the drop down box to add “Google” as the default search engine. Click “Continue”.
    37. customize browser firefox deployment search engines

    38. The next screen allows you to add custom Extensions or Themes to your Firefox bundle. This is something I haven’t tested or used so I’m leaving this as default. Click “Continue”.
    39. customize browser firefox deployment themes

    40. The next four screens (“Customize the Bookmarks Toolbar” parts 1 and 2 and “Customize Bookmarks” parts 1 and 2) allow you to preload the bookmarks into the bookmarks menu and toolbar. Again, as these have not been required I have not tested or used these screens. Click “Continue” on these four screens.
    41. The next page allows you to load in the customer preferences into the Firefox bundle. These are the same options available in the about:config menu and also very similar to those we’ve added in my previous Firefox deployment blogs.
    42. To add a preference, click the “New” option.
    43. customize firefox preferences

    44. In the “Preference Name” box, start typing the preference you want to set. The CCK will try and offer the preferences you are looking for. Once you find the one you want, click it.
    45. browser shell

    46. In the lower box, select the value you want, and if you need the preference to be locked, select the tick box. Click “OK”.
    47. browser shell check default browser

    48. Once you’ve clicked “OK” you will be taken back to the previous page and shown the preference you have set. Below, I have detailed all of the settings from my previous blogs that work in version 24 of Firefox. Once you have them all set, click “Continue”.
    49. firefox 24 customized preferences

    50. The next two pages allow you to add items to the Windows Registry and to add certificates into Firefox. Again, as these were not required I did not test these, or use them and so I left these at their defaults. Click “Continue” on these two screens.
    51. The next screen allows you to set the Proxy settings for Firefox. Set your desired proxy configuration and click “Continue”. For this example, I have selected “Use system proxy settings”.
    52. proxy settings firefox configuration

    53. And finally, you’ll reach the Conclusion page. Click “Done” and “Save”. This completes the profile configuration.
    54. configuration conclusion
      Phase 3: Installing the profile into your Firefox bundle

    55. 31. The next steps involve getting the new profile into the current Firefox user, and then into the Firefox bundle itself. Navigate to the location you saved your final file in. This should end with the extension.xpi.
    56. Installing the profile into your Firefox bundle

    57. Use “Open With…” on the file and open this in the Firefox copy you are using to build with. You may need to change the “Enable” drop down box to show “All Applications”.
    58. applications

    59. Once Firefox launches, you will see a warning in Firefox. Click “Install Now”, then “Restart Now”.
    60. installation

    61. Once Firefox has restarted, fully quit the application. Open a new Finder window and navigate to your Application Support folder (“~/Library/Application Support/” not the top level Application Support Folder) and open the “Firefox” > “Profiles” > “[string of text].default” > “Extensions” directory.
    62. profiles

    63. Leave this window open and to one side. Go back to your build version of Firefox, right click and select “Show Package Contents”.
    64. show package contents

    65. Navigate to the “Contents” > “MacOS” folder within this bundle. This area will be familiar to those who’ve followed my previous posts about Firefox deployment configuration.
    66. mac os folder

    67. Inside the “MacOS” folder, create a new folder called “distribution”, with another folder inside called “bundles”.
    68. distribution

    69. Into this new bundles folder, drag your extension from the folder we navigated to in step 34. In this example, mine is called “amsys-cck@extensions.amsys.co.uk”. Your final Firefox bundles folder should look like this:
    70. bundles

    71. Firefox should now have its tweaks complete and stored within its application bundle. When a new user launches Firefox, it will silently store the lock-down profile and apply the settings. To test I would recommend copying the final product into the Applications folder, then creating and using a new User account, verifying the behaviour is as expected. Also remember, to ‘reset’ a user to continually test the use of Firefox as a new user, just remove these two directories:
    72. ~/Library/Application Support/Mozilla
      ~/Library/Application Support/Firefox

    Summary
    There you have it, a nice and long post! Hopefully that will help some of you with a better method, or even just an alternative method of configuring Firefox for your deployments.
    As always, if you have any questions, queries or comments, let us know below and I’ll try to respond to and delve into as many as I can.