Recently, hundreds of Mozillians from all over the world gathered in three different locations for the Mozilla Summit. I had the opportunity to attend the summit in Toronto.
While I was there, I attended a couple sessions where the Firefox UX team talked about Firefox User Types in North America. The UX team did an incredible job framing the various types of Firefox users. It made me realize that the same thing is important to do for the types of people that need an "enterprise Firefox."
When I say "enterprise Firefox," the only use case that most people think about is big companies limiting what end-users can do. But there are very valid reasons why someone would need to configure Firefox in a very specific way.
Sometimes the reason is physical safety. Think about a browser on medical equipment or a factory floor.
Sometimes the reason is online safety. Think about a browser at an elementary school or shared by members of a family with different ages.
Sometimes the reason is legal or regulatory. Think about a browser at a bank or a securities firm.
Sometimes the reason is simply that the computer is shared by a lot of people. Think about a browser at a library or a nursing home or a web cafe or a homeless shelter.
I think for a lot of us, we tend to see other computer users exactly like ourselves. We need to realize that people (and organizations) use computers in completely different ways, ways that most of us don't even know about. As long as we build software primarily for ourselves, we're going to completely miss out on opportunities for Firefox.
Sometimes the user of Firefox is not the end-user. It's the administrator or company that wants to deploy Firefox to their end-users. We need to make sure that Firefox is a great browser for them as well.
We need to balance end-user desires with administrator constraints.
Maybe what we need here is a new word? Enterprise doesn't really capture the spirit of what I'm trying to do. Anyone have any ideas?
The first version of the CCK Wizard was released on AMO on May 11, 2006. It was designed for Firefox 1.5 and copied the original Netscape CCK. Back then, I was just getting my feet wet in writing Firefox extensions and the CCK Wizard shows it. The core CCK Wizard hasn't even changed much over the past seven years. It's time for a change.
I'm excited to announce today that I'm working on a brand new CCK that is completely rewritten from the ground up. I'm calling it CCK2. It incorporates many requested features and most importantly, it allows just about everything that previously could only be configured via an extension to be configured via autoconfig (assuming the core CCK2 management extension is loaded into the Firefox distribution directory.)
As part of this move, I'll be creating a CCK support mechanism which I'll be detailing in the next few weeks.
I'm also setting up a newsletter for CCK2 as well as for Firefox enterprise news in general. This newsletter will be the only place I announce betas for CCK2. I will also be asking for feedback on various aspects of development. I strongly recommend you sign up if you have any interest in the future of the CCK or Firefox in the enterprise.
So please sign up and stay tuned for some great stuff.
Extension Update UI
If you're upgrading your users and you don't want the extension update dialog to show, just set the preference extensions.showmismatchUI to false.
I did a few add-ons for the Amp Your Firefox Contest. I was waiting to publicize them just in case I needed to beg for votes. Sadly, I don't.
The first one is Total Title. It allows you to easily see the full title text for images. It's primarily for comic sites like xkcd that hide additional jokes in the title attribute.
The second one is Site Shaker. If you go to a web site, you can shake your phone and it will take you to a random link on that site. It's a fun way to navigate through Wikipedia.
The third one is Operator Mobile. Using Glenn Jones' awesome microformat-shiv, I was able to implement microformat support on Firefox Mobile. It allows the export of contacts and calendar events to your mobile device, as well as the opening of addresses into whatever mapping app you are using. I'm investigating a new desktop version of Operator as well, but it's taken a back seat to other efforts. Hopefully I'll be able to put something together soon.
I'm really trying to avoid adding support for custom URLs (like keyword.URL). I'd rather try to address the reasons why people need to use custom URLs. If there is some other reason you prefer to use a URL, please let me know.
I've also fixed a few bugs:
When you disabled the add-on it was still functional.
Using search engines with non English names didn't work.
Sometimes searches would go to the wrong window/tab.
I've had some reports of searches in other languages not working, but I haven't been able to recreate it. Honestly, this shouldn't happen because the method I'm using to invoke the search is the exact same method that Firefox uses when it does a keyword search. If you are able to recreate this consistently, I'd love to hear from you.
UPDATED: 1.0.2 adds support for POST search engines. You'll have to install it manually if you have 1.0, since non approved add-ons don't get updated automatically.
If you've been keeping up with the development of Firefox 23, you know that one of the big complaints is the change to keyword search. Starting with Firefox 23, searches in the URL bar will always use the search engine that is set in the search bar. So if you change your search bar to Wikipedia, and then do a search in the URL bar, it will use Wikipedia.
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.
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.