Nov 19, 2007

Camino

It’s about time I started keeping people up to date on what I’ve been doing with Camino, just so so that Mike doesn’t get all the glory!

Recently I implemented global history on the Go menu. Before we just had session history there, which was pretty much useless, so having global history makes it a lot more useful. The menu and its submenus are build using a HistoryDataSource object that I wrote for the history view, so the implementation was fairly easy.

I also beefed up our site icon (aka favicon) code a little, adding support for site icons in <link> elements (thanks to a patch from Ludovic Hirlimann), adding a cache of site icon images, and added site icon display to the history menus, and the history view. It’s not ideal, because the site icons are cached in Necko’s disk cache, which goes away if you crash, and it doesn’t retain https data, so icons for sites that serve them up over https, like Bugzilla, aren’t retained. There are also some odd issues if you try to load icons from the disk cache while in the process of displaying the history menus; the submenus don’t show up. Finally, you can’t synchronously say “give me the image for this site” (because necko disk cache loading isn’t synchronous), so you can’t populate all the menu items in history with icons the first time.

To solve these issue I’ve been pondering writing a simple directory-based cache for site icon images. It would just use a plist catalog file, and hash the icon url to get a filename. We could then load the images directly from disk when we needed them.

permalink | computing/camino | 2007.11.19-22:33.00