Firefox 40 Breaking Changes for Enterprise

There are couple changes in Firefox 40 that folks need to be aware of. One I’ve mentioned, one I just found out about.

  1. The distribution/bundles directory is no longer used. As I said in this post, you must get the latest CCK2 and rebuild your AutoConfig distribution for use on Firefox 40. The new distribution you build will work as far back as Firefox 31. Unfortunately, the ability to disable safe mode won’t work on Firefox 40 and beyond.
  2. The searchplugins directory is no longer in browser/searchplugins; it’s integrated into the the product. If you were using this directory to add or remove engines, it won’t work. You can either use the CCK2 or put the engine XML files in distribution/searchplugins/common. See this post.

If you have additional problems, please let me know.

Please note: I reserve the right to delete comments that are offensive or off-topic.

Leave a Reply

Your email address will not be published. Required fields are marked *

30 thoughts on “Firefox 40 Breaking Changes for Enterprise

  1. Hi Mike,

    thanks to your 2nd point, I was able to continue using my personal 20 searchplugins.
    However, unlike in former versions, now I’ve got a mix of Mozilla’s default searchplugins (which I do not need and used to delete) and my own.
    I’ll copy my searchplugin xml files into the {profile_folder}\searchplugins folder.
    How can I forbid Firefox to use *any* of its default searchplugins?
    Do I have to alter the omni.ja file?


      • I need it primarily for a script that prepares Firefox as component for a PE project, so I have to preconfigure all necessary settings concerning UI and such. Prior to version 40 it worked fine.

      • Hello Mike,
        could you shed some light on how to do this (FF 38esr)?
        I’d rather have my own set of searchplugins / search engines than the defaults installed with FF.
        CCK2 lets me add search engines but I don’t find an option to delete existing ones.
        I could surely have a script delete all *.xml-files in browser\searchplugins after setup but according to your post this won’t work with the upcoming 45esr.
        Is there some more elegant way to achieve this?

        Thanks — Markus

        • Unfortunately there is no elegant way to do this. Mozilla has been working hard to make sure the default engines cannot be changed.

          There is code you could add in autoconfig to hide the engines, but a user could go to options and unhide hem if they wanted.

          Would hiding be enough for your scenario?

          • Hiding would be fine.
            If necessary I could add ‘category-search’ into the “Hidden-UI” option of CCK2. That should do the job.
            Any hints what to add into the autoconfig.js?


          • Hello Mike,
            thanks for your reply.
            Perhaps we had a little misunderstanding – I was talking about FF 38esr which still has the folder ‘searchplugins’ with the *.xml files in it which could be easily deleted and replaced by custom ones.
            I think you’re writing about FF versions 40 and above, so I installed FF 44.0.2 for testing.
            Folder ‘searchplugins’ is gone so I’ve tried the linked instructions regarding omni.ja. Unfortunately I wasn’t able to find the folder ‘chrome\%lang%\locale\browser\searchplugins’ in it nor can I find any searchplugin *.xml files as mentioned in the linked post.
            It’s a clean install of FF, do you have any idea what I’m doing wrong?

            Thanks in advance!

            • Markus, you’re right, I meant recent FF versions, not the ESR one. Starting with version 40 I guess, the searchplugins subfolder for custom additions is situated in the profile directory. However, if you put a file named “google.xml” in it, FF ignores it as Mozilla’s defaults prevail. The only way to make FF using the customised google.xml instead is to alter the file omni.ja in the browser subdirectory of the Firefox installation. Omni.ja is a special zip archive, you’ll find the searchplugins in \chrome\de\locale\browser\searchplugins\ – note the second level, de, depends on your FF localisation. I usually delete all xml plugins except for google.xml which I overwrite. I leave list.txt as is. Then I write a new omni.ja and replace the existing one with it. (This effort is necessary if you deploy FF and need to preconfigure all settings properly.)

              • Oh man,
                that’s really frustrating…
                I couldn’t find the mentioned folder inside the extracted contents of omni.ja
                No matter if I used the german or the English (US) version there was no folder ‘browser’ under ‘chrome\%lang%\locale’.
                Now I’ve realized that there is more than one omni.ja file under ‘%programfiles(x86)%\Mozilla Firefox’
                The one I did have the problem with is in ‘%programfiles(x86)%\Mozilla Firefox’, the right one is in ‘%programfiles(x86)%\Mozilla Firefox\browser’

                I can’t believe it…

                • 1. Make sure to choose the correct omni.ja:
                  2. %lang% is my script variable holding the corresponding locale, such as de or en-US.
                  3. Nested path of (correct) omni.ja for german FF:

                  • Yeah, exactly what I said…
                    Thanks for your help with all this.

                    In addition to the *.xml-files there is a file called ‘list.txt’ which contains the filenames of the xml-files (without the extension ‘.xml). It seems that the entries in this file have to be in sync with the xml-files in the folder.

                    • Here’s some example code you could place in AutoConfig to hide search engines:


                      You would still need to disable the “Restore Default Search Engines” button in the Search preferences. You could do that with the Hidden UI feature in the CCK2 by hiding @restoreDefaultSearchEngines.

  2. Hi Mike,

    Thank you so much for the wonderful tool! I am having an issue disabling private browsing in the context menu. It appears Mozilla changed the code from context-openlinkprivate –> placesContext_open:newprivatewindow. I have tried replacing this in the config file as well as the browseroverlay but still unable to hide the option.

    Although the user can click “Open in a New Private Window”, a message will be prompted stating this option has been disable and when the OK button is clicked the browser will close. I would rather not have the page load at all and immediately close it out and then prompt the user but I would really like to get rid of this option all together.

    It worked on Firefox 38 but with 40 I can’t get rid of it.

    • > Thank you so much for the wonderful tool! I am having an issue disabling private browsing in the context menu. It appears Mozilla changed the code from context-openlinkprivate –> placesContext_open:newprivatewindow. I have tried replacing this in the config file as well as the browseroverlay but still unable to hide the option.

      I didn’t realize this was there. I’ll fix it. I assume you mean in the history window/sidebar and on the bookmarks menu?

  3. Hi Mike,
    Thanks for the wonderful tool. I am trying to use CCK2 to streamline firefox, install blocksi plugin on my Golden pattern RDSH and present only Mozilla Browser App to users. While plugin installs from the .xpi file, the settings I put in doesn’t get captured to the autoconfig and get applied to other users.

    Also default homepage doesn’t showup on additional Tabs i open.
    Could you suggest how I can do this?


    • In order to set your homepage on the new tab, you have to set the preference browser.newtab.url to your homepage. Note that will stop working in Firefox 41.

      As far as your other questions go, please open a ticket at so we can discuss there. I don’t fully understand.

  4. I was wondering if there is an option to clear browser history on exit like the last cck, that is one thing i need to configure for our public internet PC’s. Thanks and have a good day

  5. Hi Mike,
    this isn’t directly related to CCK and Search Engines but, we used to deploy a default “cert8.db” file with our Ubuntu systems in “/usr/lib/firefox/browser/defaults/profile/cert8.db” this worked fine for a long time. Now we realized, that it stopped working and new users are experiencing certificate errors on intranet sites with certs of our own CA.

    Is this related to Firefox 40? Is there a new place or do we have to find a new solution?

    Thanks for your help.