Thoughts on Firefox 3.0

by Kurt Cagle

Over the last couple of years, I've worked extensively with Firefox, and while it still has its warts (and while I believe that its days of double digit rises in adoption are probably coming to a close) overall, I've found that it has become, for me anyway, my de facto browser into the web and the focus of most of the web applications (and extensions) that I've built in the last year. For that reason alone, if nothing else, I've been watching closely as Firefox 3.0 approaches its final release.

The second beta version of FF3 is now out, and I have to say that overall I'm feeling quite pleased with what I'm seeing, with a few caveats. Since I do generally dig into the application daily, my focus in trying it out (and in writing this review) is less on the immediate UI and functionality changes for the typical user and more on how its going to affect web software development. Thus, I ask that you forgive me for not talking about the new theme (okay, though not a radical departure from the old) or other user improvements or give you a lot of screenshots ... I want to look a little more deeply under the hood.


2008-01-14 12:54:32
Thus, I ask that you forgive me for not talking about the new theme (okay, though not a radical departure from the old)

Note that the new theme is still not done, and very little of it is available as part of the Beta 2 download. You can read much more about this in Alex Faaborg's blog:
2008-01-14 23:12:57
Wow, soft hyphens in 3.0? Why so soon??
2008-01-15 08:41:46
Seems to have issues with Google groups but other than that I like!
Asbjørn Ulsberg
2008-01-16 07:53:47
Thanks for the detailed wrap-up! Just a little "re" to the PING attribute: Advertisers are using redirects to do what PING will do already. The difference is that the PING attribute can be avoided while the redirect really can't. Browsers can choose not to support PING, they can implement ways for the users to opt out, or users can install plugins or HTTP filters that avoid them. The same can't be said for the current redirect practices, so I don't really see the problem with introducing this attribute. :)
2008-01-17 08:02:18
When a user clicks on the link, this will open up a dialog that lets you select whether you wish to add this particular web page as a processor or not. If you do, then it becomes the default protocol handler for that particular protocol, until such time as the user explicitly changes it.

Is this a good thing? I’m not sure.

It does sound useful, especially for "grassroots" development of new protocols that could develop into standards. But you have to wonder if it will make a good attack vector for phishing and cracking. It's good that it asks the user for confirmation, but many users won't be savvy enough to look past the "friendly" name and verify that this "new improved" service provider is really trustworthy. And if this new provider is a permanent setting, the user could be sending their mail through a spammer's server for address harvesting, for a long time to come.
Kurt Cagle
2008-01-18 12:35:07

Overall, I think that if you don't get the paranoia police out to kill it, <a ping> is in fact a very good thing that represents a community consensus approach to what is and isn't acceptable in notification pings (I'm not big on the WHATWG HTML5 proposal in general, but there are pieces that I think are quite useful, including ping).

There's still something of a chicken and egg problem there - until you get support from IE on one side and possibly Opera (which is pretty much guaranteed) on the other, ping represents an additional layer to be added in terms of backend notifiers ... meaning that such a-pinged content might possibly register twice in ping aware browsers, unless the element were added in manually. Still, I'd like to see it adopted.

Kurt Cagle
2008-01-18 12:45:46

Yes, both of those thoughts have occurred to me as well. There's also no real provision to allow such protocols to be redirected to local applications (which makes far more sense to me). The RegisterContentHandler() WHATWG function is similar in both scope and problematic effects, but again its worth seeing how this fares in beta test.

-- Kurt

2008-01-21 16:10:35
I think you were suggesting that document.getElementsByClassName() is part of IE 6 and 7. I believe that is incorrect. (I checked MSDN and could not find it, and ran a quick test in IE6 and it was not recognized -- didn't bother with IE7).

That aside, it is great that Firefox will have it native in Firefox 3. I believe Webkit (that powers Safari) has also got it native -- maybe even Safari 3 beta, not quite sure.)

Kurt Cagle
2008-01-21 16:38:15

You're correct. I had remembered seeing it, but it is in fact one of the JavaScript Prototype functions, not part of Internet Explorer at all.

It's a useful function, especially when combined with microformats, because it provides an alternative path for creating nodal bindings. It also solves one of the more complex problems that you run into with multi-item selections - if you have a heterogeneous set of child nodes within a given containing element, something like:

<div id="group" onclick="selectNode(this,function(){alert(this.textContent)})">
<div class="selectable selected">Item 1</div>
<div class="selectable">Item 2</div>
<div class="selectable">Item 3</div>
<div class="selectable">Item 4</div>

you can select a new item by setting the selectNode() function as following:

function selectNode(elt,fn){
var parentNode = elt.parent;
var prevActiveNode = parentNode.getElementsByClassName("selected")[0];
if (prevActiveNode != null){
elt.setAttribute("class","selectable selected");

Enrico Foschi
2008-06-18 04:24:16
This content has been Agglom (erated) with other similar ones on - Firefox 3