Shameless Plug for TrackIF

This is a shameless plug for an add-on I worked on. It's called TrackIF. The way it works is that when you see a product you want to track the price of, you click the add-on button and add it to your tracker list. It will then notify you when the price drops or reaches a specific threshold. And it's not just about stores, you can track craiglist, eBay or even real estate.

The Firefox extension is available here.

CCK Wizard 1.4 Finally Available

I've finally released the official CCK Wizard 1.4. It will take a while to be approved, but you can download it from AMO now. Here are the changes:

  • Allows disabling sync and private browsing
  • Adds support for server ceritficates
  • Fixes a compatibility issue with Firefox 22
  • Allows empty strings to be locked
  • Adds support for whitelisting and blacklisting sites for plugins

It also removes support for Livemarks (If you need this, please let me know).

If the CCK Wizard saves you time and helps you deploy Firefox, please consider contributing to it's development by clicking here.

The CCK Wizard is maintained in Google Code. That's the place to report bugs. Also, please consider becoming a contributor.

Make Your Feature Enterprise Ready

When enterprises (and others) are customizing Firefox, I get asked pretty much the same questions every time:

  • How do I disable private browsing?
  • How do I turn off Firefox Sync?
  • How do I prevent access to about:config?
  • How do I prevent the installation of add-ons?
  • How do I prevent access to the add-ons manager?

Doing any of these things properly is actually quite difficult, because none of the people that developed these features ever thought that someone would want to disable them. I think the primary reason for this is that most people that create software have only ever experienced how one type of person uses a computer. They believe that everyone uses a computer like they do; they have full access to the computer, they can do whatever they want and they can customize the computer however they want. This narrow view causes them to create software for people like them.

The reality is that people use computers in many different ways. In many industries, organizations, governments and educational institutions, there is a need to prevent people from having too much access to the computer and the browser. And it's not just things like kiosks. It could be shared computers at a hospital or bank, or it could be simply that the employees are not very computer literate and you want to make sure they have limited access. Or maybe the browser is used on a piece of equipment and you want to make sure it can't be messed with. There are tons of reasons why someone would want to disable certain features.

Whenever you create a new feature, you should ask yourself this questions:

Is there a good reason why someone would want to disable this feature?

If the answer is yes, you should provide a single global preference that removes the entire feature. You should also ensure that when this preference is locked, any associated UI associated with that feature is disabled.

Asking this simple question before implementing a new feature will go a long way towards making sure Firefox is enterprise ready.

Brand Thunder and WebSearch+

Somehow in the past few weeks, lots of sites have started repeating the same article and the same incorrect information that WebSearch+ from Brand Thunder is malware. This is patently false. WebSearch+ is simply the method Brand Thunder uses to monetize its add-ons and it is 100% configurable by the user. Every feature can simply be turned off in preferences.

Brand Thunder put up a post with more information - What is WebSearch+

Hopefully that will clear things up.

Setting Default Application Handlers

One of the questions I get asked a lot is how to set default application handlers in Firefox (the Applications page in preferences). Most companies have resorted to creating a default mimeTypes.rdf file and loading this into their default profile. I finally took the time to understand how these handlers work and can give you some code to use.