Farewell contents.rdf

Posted: June 11th, 2009

This is mainly of interest to add-on and application developers and I should stress from the outset that this is talking about changes in Gecko 1.9.2 which will first be released in whatever version of Firefox comes in 6-12 months time. Firefox 3.5 is unaffected by this change.

What was it?

Contents.rdf was the old way of performing chrome registration for add-ons. It was replaced by chrome.manifest back in the mists of time in Gecko 1.8 and Firefox 1.5 (back in 2005 as it happens). We’ve continued to support reading contents.rdf for those developers who hadn’t had the chance to make the switch but after 4 years it seems time to remove that support and clean up the code that dealt with it.

What does this mean?

Chances are not a lot. If you are an add-on developer then look in your add-on’s source code. Is there a chrome.manifest file there? If so then you don’t need to do anything, you are already using the modern method of chrome registration. If not then look for contents.rdf files. If you don’t have any then you just have an odd add-on with no chrome.

How do I cope?

If your add-on actually doesn’t have a chrome.manifest file and needs one then you need to do one of two things. One option is simply to read the documentation on chrome.manifest and learn how to replicate what you have in the contents.rdf files into the manifest. Another is to install your add-on into a toolkit application since Gecko 1.8. You’ll find that when it installs it it also creates a chrome.manifest file for you from your contents.rdf files. Just copy it.

If you really need to support both an old version of an application (before Gecko 1.8, or not toolkit based) and a new version (Gecko 1.9.2 or newer) then you will need to keep both contents.rdf and chrome.manifest, replicating the information across the two.

When does this happen?

I have just landed the patch that removed support so trunk nightlies from tomorrow (12th June) should be affected.

Tags: , ,

1 Comment »

Categories: mozilla

Improving the add-on install experience

Posted: June 3rd, 2009

Add-on developers face a bit of a challenge when it comes to helping users get the most out of their add-ons. Even once you are past the first hurdle and have got a user to install the add-on, you then need to help them get up and running quickly after Firefox has restarted. Presented with just the blank Firefox window it can be difficult for a user to know where to go next. Many add-on developers have taken to including a first-run experience to give the user some help. Display a webpage with some instructions or open a wizard to start setting up. As this practice started it was generally acceptable. Few add-ons actually did anything so it was helpful. These days though many add-ons are doing it, no doubt with more to come. It is starting to be an annoyance in some cases. Others have already been discussing ways that we can improve this.

In Firefox 3.0 we introduced a small feature to try to alleviate a little of this. After restarting Firefox the user would be shown new add-ons that had been installed so they could configure them. It also provided a little consistency across the restart which was normally done from the add-ons manager.

The current post-install display

The current post-install display

This UI had the additional small benefit that it would also display when other applications installed extensions into Firefox without the user’s knowledge. However as a post-install experience it really hasn’t worked out all that well for a few reasons:

  • It’s invasive. It pops up in front of the user after the restart and they feel the need to close it before doing anything else. This makes it almost as bad as some of the first run experiences provided by extensions.
  • It’s confusing. It can be pretty difficult to identify just what add-ons have been installed especially when the list is long.
  • It provides no next steps. Although if you click on the new add-ons you might get a chance to configure it, it doesn’t actually help push the user in any direction.

We’ve been thinking about ways to improve this for a while and there are a few different ideas floating around. I’d like to float one of them here and see what people think. The goal is both to let users know that new add-ons have been installed and let the add-on help the user move forward without needing to show popup dialogs or inundate the user with a webpage per add-on. It also needs to work in applications that aren’t Firefox. Excuse the poor mock-up, my UI skills aren’t all that hot.

Proposed first run experience

Proposed first run experience

The idea is that in Firefox this would display in the webpage content area. It might display immediately after startup, or it might be better to use an alert to tell the user new add-ons are there and then display it when they click on the alert. Other applications can open this in a new window or wherever they wish.

It’s designed to be clear exactly what has been installed and give the user things to do with those items. Preferences at a bare minimum, but the yellow highlighted areas are the interesting bit. Those represent overlay points where the add-on can put whatever UI it likes. This might be a simple message to tell the user how to get started. It might be a few of the most common settings, maybe a login box. It might be a button to launch further UI like a wizard.

I think, even if this were to open immediately in Firefox, this addresses the main deficiencies of what we currently do. I’d hope that many add-on developers could then stop their custom first-run stuff and instead just use this, but I know there are lots of different needs out there so I’d like to hear where this doesn’t work to see if we can accommodate.

Tags: , , ,

17 Comments »

Categories: mozilla

Petals

Posted: May 16th, 2009

Petals

No Comments »

Categories: fractals

Where are we all?

Posted: May 15th, 2009

Not so long ago Matt Mullenweg talked to the Mozilla employees about Wordpress and its community. He mentioned about a map they had set up to show where they all were in the world and I was intrigued to know what such a map would look like for Mozilla. Now I don’t actually have the locations of all the community members, but I can make a decent start by using the locations of all the Mozilla Corporation employees, and with a few scripts and the Google maps API there is something interesting to look at. Click on the image to go to the full interactive view:

Employee map

Employee map

The data here is scraped out of Mozilla’s phonebook and some people haven’t entered a full location, so if you’re an employee and think you aren’t in the right place on the map then update your phonebook entry. Also the actual positions are grabbed using Google’s geocode which seems to have some problems so some people are in completely the wrong place at the moment (sorry Igor!).

Might be nice to actually think about doing this for the Mozilla community in general. Not sure how we’d go about gathering the location data for everyone though. Of course the new geolocation support in Firefox 3.5 would make getting the actual location easier, but how do we figure out who should appear on the map and get them all to sign up?

11 Comments »

Categories: mozilla

How do people vote?

Posted: May 14th, 2009

I’m afraid to say that I’m pretty bad when it comes to the political process. I have voted exactly once in my entire life, the first time I was old enough to do so and never since. I like to use the excuse that I don’t know enough about the candidates and the issues involved and so I can’t make an informed decision. While that is actually true (I firmly believe that an uninformed vote is a wasted vote, maybe even a dangerous vote) it really just hides the fact that I don’t make myself find the time to go and research the issues and the candidates like I should. Previously that didn’t worry me so much but I guess as you get older you realise more and more how what the government does influences directly the state of your life, so lately I’ve been trying to keep an eye on the news to see what is going on out there. It’s pretty tough going, the news tends to focus on all the muckslinging and scandals, which as far as I can see is shared pretty evenly by all the parties, and this drowns out discussions on actual policy.

Yesterday I received notification to vote at the start of June. I figured that this would be a good opportunity to actually step up, take some responsibility and vote for something. Then I hit my first problem. What was the election for? I had to read the polling card three times before I spotted the line that said “European Parliamentary Election”. That is the extent of the details provided. No note about where to go for further information, no web address, just the name of the election. But no worry, I have the internet at my disposal, that can tell me everything right?

Finding some details about the European parliamentary election was pretty easy. I could find out exactly how members are elected, how many there are in Europe and even how many are elected by my local area (4 in Wales). I could also see notes about how they were going to be running awareness campaigns to tell voters about the election (I haven’t seen anything of them, apparently they don’t make it this far into Wales). It took about quarter of an hour of searching through the websites I had found before I could find a list of who was actually standing in the election for me to vote for.

So after a little while I had the list of candidates. Somehow I have to choose between 44 of them spread over 11 different parties (apparently I can just vote for the party rather than individual candidates). I even had the postal addresses of all the candidates, but no actual information on what they stood for or where to go for any more information. Again, I have the internet, can’t be that hard can it?

Well actually it varies. Most of the parties have good overviews of their policies. The cases where this wasn’t true were mainly the crackpot parties that I’d never consider voting for anyway. Though on that subject it is truly concerning some of the policies that would come into effect should any of these guys come into power. I guess even racist and religious bigots get to have their voices in democracy. But it was surprising how little detail was readily available on some of even the larger parties’ websites. One of them had exactly two sentences to cover their policies on commerce and industry. Many simply don’t mention their policies in certain areas, I assume they all have some policies, damned if I know how to find them out though. Finding details on the particular candidates was also particularly difficult. Of the two largest parties in the country, one of them had details about their candidates buried deep within the site (and for three out of the four candidates those details were nothing more than a photograph and an email address). For the other party I could find no mention of the candidates or the European parliamentary election. Also a note to the parties, bad spelling and generally appalling looking websites do not make me terribly confident that you have any capability to run a government.

I’m pleased to say that this has come on some way since I half-heartedly tried this during the last general election. Then the parties’ websites were even worse with no general information in the right places, but there is still a long way to go. Maybe I’m looking too early, do they really not start gearing up with the information I want until closer to the election (it is nearly 3 weeks away!). I can’t help but be amused at all of this. Politicians frequently complain at how low voter turnout has become and yet though they are making some progress they seem to be completely ignoring ways that they could make voters’ lives easier.

Print a web address on the polling card, when I go there it could tell me what the election was for, a full list of who was standing along with a short statement on the policies of the party as a whole, and the particular issues the candidates are focusing on, plus of course a web link where I can go to find more details. This could turn what was half a days worth of research into maybe just half an hours. You might argue that spending longer over it better informs my decision, I disagree. With the amount of information to wade through here having more of it available quickly allows for better decision making. It’s hard to compare a candidate you are looking at to one you looked at a few hours ago.

Tags:

1 Comment »

Categories: miscellaneous

Why change is hard

Posted: May 11th, 2009

This is really not the ideal set of interactions between the extension manager and its related components. Unfortunately changing it is going to be hard.

Extension manager inter-dependencies

Extension manager inter-dependencies

Unfortunately adding any new features is also pretty hard until at least some of these dependencies are broken.

Tags: , ,

3 Comments »

Categories: mozilla

Letting add-ons perform work during install and uninstall

Posted: March 30th, 2009

One of the biggest requested items I see in the add-ons newsgroups and IRC channel is from developers asking how to perform some work when their add-on is installed or uninstalled. Previously it has been vaguely possible to do this, but there is a lot of hassle involved and it wouldn’t always work right.

As part of my roadmap for improving the extension manager we are talking about adding real support for these sorts of activities. The draft specification covers the proposal in more details but in draft it allows the following:

  • Add-ons will be able to provide code to run when their add-on is installed, uninstalled, disabled, enabled or upgraded.
  • Add-ons will be able to provide a list of files in the profile folder and preferences to be removed when the add-on is uninstalled.

There are a few restrictions so if you are interested check out the full specification and let me know what you think. There’s still room for change, but I think the proposal provides real benefits for add-on developers as it stands.

Tags: , ,

5 Comments »

Categories: mozilla

What’s up with the extension manager?

Posted: March 30th, 2009

Some time ago (wow was it really 5 months!) I blogged about some plans I have had for the future of the extension manager. I think it’s time for a short review of what it going on.

I said at the time that any of the timescales mentioned we’re very rough and certain to be underestimates, but I didn’t quite appreciate how true that was at the time. Despite tripling most of the times we’re still almost nowhere along implemented most of the ideas.

The main reason for this is simply the delayed launch of Firefox 3.5 (previously 3.1). At the time I was working on the plan I was anticipating 3.1 to release fairly quickly, or at least my part in its release would have trailed off. That didn’t happen and, as is the nature of these things, there hasn’t really been any time for me to work on the kind of rolling improvements the roadmap talks about while we’re trying to ship the next big release of a product. Blockers and bigger ticket items will unfortunately always get in the way.

Releases come in bursts though. My work on 3.5 is basically done and the next big release won’t be for at least half a year, maybe longer. Once I’ve taken a small break I hope to start making progress on the extension manager work again. I think I’m going to work things a little differently. The first thing I will try to do is come up with some good specifications for all of the features. The idea is that if we have good consensus on the details of each then it’ll be easier to get more people working on them in parallel.

Getting a head start on this I’m going to make more public the specification for add-on install hooks

Tags: , ,

1 Comment »

Categories: mozilla

XULRunner 1.9.2a1pre builds also available

Posted: March 28th, 2009

Just as I’ve made some 1.9.1b3 builds I’ve spun some builds based on the latest trunk. Feel free to use these to see how things are shaping up with the bleeding edge Mozilla code. Obviously it is pre-alpha so not for productions.

Tags: , , ,

No Comments »

Categories: mozilla

XULRunner 1.9.1b3 builds, get them while they’re hot

Posted: March 27th, 2009

In the process of switching from CVS to Mercurial (and behind the scenes Tinderbox to Buildbot), quite a lot of Mozilla’s build and release systems have had to be updated. Sadly one of the casualties that has yet to be resuscitated are nightly builds of XULRunner on the 1.9.1 branch and trunk. Catlee is now doing some excellent work to get these up and running, but until that gets going here are some semi-official builds using the code matching Firefox 3.1b3. I say semi-official, they were built on regular build slaves using the standard configuration, but just done by hand. I also haven’t tested all of them yet so let me know if you hit any issues, they might be good indicators of issues we’ll see with the nightlies.

Tags: , , ,

2 Comments »

Categories: mozilla