A few days ago Firefox 3.0 Beta 1 was released. This is a major revision packed with some seriously awesome features. Here's a rundown of some of the major features for normal users, power users, and developers (this is not an exhaustive list, but it covers a lot of ground-- also note that I've only tested Firefox 3.0 Beta 1 on Windows):
SQLite - SQLite databases are now used to store cookies, download history, a new concept called "Places" and other things. This information being stored in a series of databases (in *.sqlite files) means that we can use SQLite front-ends to do SQL CRUD queries against the stored information. Even if we don't use the SQLite databases directly, developers from all over the world will be able to create very powerful extensions to the features using the SQLite databases. There's already at least one SQLite manager built as a Firefox extension. Firefox has actually been using SQLite for a while, but it's only really been used for XUL and extension development. If you are unfamiliar with SQLite, you should seriously check into it-- it's really awesome. It's also the storage system for Google Gears.
Places - As I just mentioned, the new concept of "Places" is also stored in the database. This feature tracks web surfing trends similarly to how various media players track music listening trends. So, after a bit of surfing you'll be able to see what pages you visit most often. Places also shows what bookmarks you have recently tagged, your most recently used tags, and a few other things. Even if we don't use this feature in Firefox as is I'm sure more extensions will be built to help make Places more useful. I can already visualize an extension to mash Places metadata with your Windows Media most-popular metadata to give you a view of all your favorite things in one place.
Tags and Easier Bookmarking - Firefox 3.0 also introduces del.icio.us-like tags to bookmarks. This isn't that big of a deal to me, because with Firefox 2.0 you could install the del.icio.us bookmark extension to replace your static Firefox bookmarks to allow del.icio.us manage all your bookmarks. It was so integrated that CTRL-D even sent your bookmark to del.icio.us. The exciting part of Firefox 3.0 tagging is that the next del.icio.us extension will probably be faster and even easier to use in Firefox 3.0 since Firefox now has built in mechanisms for this. Using the Firefox 3.0 tags feature by itself is nice too, though.
Coupled with this feature is the ability to simply click on a star to have your page sent to "Places" (it's actually very similar to the star in Gmail). Another click of the star gives you a nice out-of-the-way box to set tags on the link. It's actually very similar to what the del.icio.us extension did in Firefox 2.0, thus making me think even more that there will soon be an awesome del.icio.us extension for Firefox 3.0.
ACID2 Test Passed - It's official: Internet Explorer is the only major web browser that doesn't pass the ACID2 test (and it doesn't get near it). Firefox has always been close (yes, since V1.0 it has the shape of a face) , but it finally crossed the finish line. Internet Explorer's rendering on the other hand still looks like someone slaughtered a pig. If you don't know what the ACID2 test is, it's THE test for a web browsers CSS usefulness. The better the rendering, the better the browser can render. As you will see in a moment, Internet Explorer is SO far off that it's not even CLOSE to being a 7th generation web browser (...and I do not apologize for bashing IE -- there's always time for that.)
Here are the renderings of Firefox 3.0b1, Opera 9.24, Safari 3.04, and Internet Explorer 7 (and 6) for the ACID 2 test:
Firefox 3.0 Beta 1
Safari 3.0.4 (Windows)
Sheesh... notice any similarities? If you think IE7 is a major improvement over IE6, think again. It's just the 6th generation IE6.5 in a 7th generation skin (i.e. has tabs and integrated search). Adding XMLHttpRequest doesn't make it a 7th generation browser (XMLHttpRequest was NOT in IE before IE7-- before IE7, the IE world had only ActiveX controls and Java proxies for remote scripting. These are the opposite of standardized components.) Trying adding window.addEventListener, removing that horrendous ClearType, and getting somewhere near the shadow of the ball park of the ACID2 test and we'll talk.
Lower Memory Utilization - Now, to be clear I'm not one of those far too uptight people who cry every time SQL Server uses multiple GBs of memory. On the contrary I'm usually ecstatic to see that I'm actually using the memory that I paid so much money for. I'm not too uptight about Firefox using a lot of memory either as I know it's caching everything it sees. Since I use Firefox more than anything else, I have no problem with it using more memory than anything else-- that includes Photoshop. However, Firefox 3.0 uses a lot less memory. You can do simple configuration tweaks in Firefox 2.0 to make it use a lot less memory and to even release memory when you minimize and this all without any extensions, but Firefox 3.0 cleans up the memory as you go. As I was watching the memory charts of Firefox, I was shocked to see it return 30MB of memory upon closing a tab. Now it's going to be Safari that's the target of memory usage paranoid.
Webmail Handlers - This isn't a feature I've seen yet, but I'm really hoping comes to Gmail soon. I'll just quote the release notes: "...web applications, such as your favorite webmail provider, can now be used instead of desktop applications for handling mailto: links from other sites. Similar support is available for other protocols (Web applications will have to first enable this by registering as handlers with Firefox)." If Gmail does that registration, I'll finally be able to replace Google Chat as my mailto handler.
Offline Applications - This needs to be explicitly utilized by the developers of each particular web application, but now Firefox theoretically doesn't need Google Gears in order to use online application locally. Firefox 2.0 already had one interesting offline feature in the form of HTML 5's sessionStorage attribute. This feature was conceptually similar to ASP.NET's ViewState in that it persists across page refreshes, but not across pages. Firefox 3 included two new events for offline functionality: "online" and "offline". When an application goes offline, the offline event is raise and similarly with the online event. I've checked out these events and they are rock-solid. There are also other offline application features in Firefox 3.0, but they aren't that well documented yet. You can see an example of the concept of office applications by using Google Reader and Google Gears. I expect this feature to be available in Gmail soon and hopefully without ever needing a plugin.
One Click Website Info - When you click on the website icon in the address bar you get a box of information telling you a little about the website. Really what were talking about here is SSL websites. You can click the icon to get a quick view of the SSL information. I personally just like the idea of not having to double-click. I know, I'm picky. It's the little things in life that make the difference, right?
Native viewing of ZIP files - This feature is not that well documented from what I've seen, but it's really awesome! It allows you to view ZIP and JAR files directly in Firefox 3.0 by using the following pattern: jar:http://www.mywebsite.com/MyZipFile.zip!/. Thus jar:http://www.davidbetz.net/dotnetcourse/CSharpLanguage.zip!/ (copy, don't click) views the contents of one of my course samples. You know you're intrigued now.
There are also many new security features like the forged website blocker which stops you (or, your relatives) from going to verified phishing web sites and malware protection which does the same for malware web sites. There are also user experience enhancements. Now when you type in the address bar you are filtering by page title and URL, compared to just filtering by URL previously. Also, zooming now attempts to zoom images and text, not just text, though I'm not finding that to be all that successful; safari on the iPhone/iPod touch still owns that one. Other development features include support for animated PNGs (APNG), the ability to use a web service as a content handler, support for rgba and hsla colors, and... ready for this? Cross-site XMLHttpRequest! That's right, we will finally be able to do cross-domain AJAX without script block hacks! Other normal user/power user features include a permanent restart button (in Tools->Add-ons), a much better application content-type screen, a really, really nice page info window which includes a cookie viewer and the supposed ability to enable and disable images, popup windows, cookies, and extension and theme installations per web site.
As I've stated initially, there's more to Firefox 3.0 than what I've mentioned here. If you want to know more about any point of Firefox 3.0, just check out the many links above or the developer notes below. For more developer information, I highly suggest going to the Mozilla Developer Center. For other information, just check out the release notes and it's links.