Blog on chrispederick.com

User Agent Switcher 0.5

A new version of the User Agent Switcher extension has been released. This release adds a toolbar button for Firefox and improves the interface for maintaining the list of user agents, as well as fixing the incompatibilities with the Compact Menu extension and the user agent not resetting when the browser was closed.

Extensions Released

User Agent Switcher 0.4 and Web Developer 0.8 have now been released.

Admittedly these were released a little ahead of schedule—particularly Web Developer—as I wanted to have them available before Firefox 0.9. I did a fair amount of testing over the weekend, but inevitably some bugs will—and have—slipped through. The following issues have already been discovered:

User Agent Switcher

  • The user agent is not reset when the browser closes

Web Developer

  • ‘Visited Links’ features do not work in Firefox 0.9
  • ‘Edit CSS’ sidebar has an oversized margin

The announcement of a new default theme for Mozilla Firefox also came a little too late for me to include it, but I will look into supporting this for the next release.

Extension Updates

With Firefox 0.9 due to be released either on Saturday, June 12th or Monday, June 14th, I have been working on getting both the User Agent Switcher and Web Developer extensions compatible with the new extension manager. Both extensions are now ready to go and I am just doing some final testing before releasing them.

User Agent Switcher 0.4 will not be a major update, but as well as Firefox 0.9 compatibility there is now localized language support and the number of user agents is now configurable and unlimited.

Web Developer 0.8, on the other hand, is a major update and includes many new features, improvements and bug fixes along with Firefox 0.9 compatibility. The full list of changes is pretty big, but the highlights are:

  • Added the features:
    • Clear Session Cookies
    • Disable Image Animations
    • Display Access Keys
    • Display Block Size
    • Display Current Size in Title
    • Display Link Paths
    • Display Tab Index
    • Display Topographic Information
    • Make Form Fields Writable
    • Outline Frames
    • Outline Images With Empty Alt Attributes
    • Populate Form Fields
    • Show Comments
  • Added a Pinstripe theme and updated the Qute theme
  • Added better tab and window support
  • Added localized language support
  • Colors for all features that display tooltips are now configurable
  • Fixed bugs:
    • Opening a popup window with the toolbar in text mode crashed the browser
    • Status icons became invisible with the toolbar in text mode
    • ‘Validate Local CSS’ was not working
  • Improved the ‘Edit CSS’ feature:
    • Font is now monospaced and the size is configurable
    • Style sheets are now displayed in separate tabs
  • Removed all unnecessary page refreshes

I have also tidied the menus a little and added a new top-level menu ‘CSS’ which will require any Web Developer themes to be updated. I will update the theming instructions and post in the MozillaZine Themes forum with instructions on what needs to be changed.

Look for both extensions to be released sometime this weekend.

Firefox Extension Changes

Having just laid out my plan for the next release of the Web Developer extension, now comes the news from Ben Goodger about the changes to extensions for Firefox 0.9.

These changes are very welcome as they should help to eliminate some of the issues surrounding extensions: incompatibilities with certain browser versions, lack of uninstall support, keeping track of extension updates to name just a few. However, these changes also have the potential to make the Firefox 0.9 release pretty messy. Basically, any extension written prior to 0.9 will not install under 0.9 and will need to be completely repackaged in order to work correctly going forward.

Changes = Work

This is going to result in many users becoming disgruntled when they find that some extensions have yet to be converted for Firefox 0.9. Of course, changes like this are to be expected from any pre–1.0 product, but I just hope that the resulting fallout is appropriately handled. Firstly, the code changes need to be rigorously tested so that all major bugs are resolved before the release or extension authors will be overwhelmed with support issues and trying to work out whether the problem is due to Firefox or the extension itself. Secondly, the extension authors need to be given adequate time to prepare their extensions both in terms of repackaging and setting them up on whatever server is going to handle tracking updates—currently suggested as being update.mozilla.org.

As I say, I am really looking forward to these changes as I think they greatly enhance the extension mechanism in Firefox, but I just hope that Ben is aware of how massive a change this is and works with the extension development community to mitigate the risks. There is a MozillaZine forums topic tracking the changes if you wish to read the latest news.

My Extensions

Now of course how this affects the User Agent Switcher and Web Developer extensions is hard to say until a release date for Firefox 0.9 is known. I have not been working on the User Agent Switcher extension recently, so I will just try to release a 0.9-compatible version when the browser release occurs. The Web Developer extension is trickier as I am currently working on the next version. However, my current plan is to keep working on it until Firefox 0.9 is released and then release whatever I have ready to go. This may mean that I don’t get to include everything I had hoped to in the Web Developer 0.8 release, but it will allow me to immediately release a 0.9-compatibile version.

Hopefully things will become clearer as the Firefox 0.9 release comes closer.

Web Developer Status Report

Looking at the Web Developer history the average period of time between major releases has been about six weeks. With six weeks having passed since the 0.7 release I thought I would give a status report and explain why the 0.8 release is not yet ready to go.

The biggest amount of time on 0.8 has undoubtedly been spent on adding localization support. I had not even thought about localization support when originally creating the extension and so I have had to retrofit it into the code. This is a pretty dull task which takes a fair amount of time and has not exactly inspired me to work on the extension. However, it is now almost complete with only the options dialog to work on so this has allowed me to move on to coding new features.

As well as creating a Pinstripe theme—now that I have my Mac—I have added the following features:

  • Display Access Keys
  • Display Link Paths
  • Display Tab Index
  • Display Topographic Information
  • Make Form Fields Writable
  • Outline Frames
  • Populate Form Fields
  • Show Comments

With these features complete the plan is to finish adding localization support and then move on to some of the other things on the to-do list, particularly the ‘Edit CSS’ improvements. If you have ideas for new features or enhancements that you would like to see added then please contact me.