One of the features in the Prism Webapp Bundle for Google Wave is a toaster pop-up notification of unread waves using the window.platform.showNotification() method. The third parameter is named aImageURI, and is described by the nsIPlatformGlue IDL as, “The URI of an image to use in alert. Can be null for no image.”

Which is great, except … what URI scheme and path does one use? Every example I could find always passed null for the image, so after giving up on the web I joined the Prism mailing list and posted a question. The first response was to use the inline data scheme, with a base64-encoded image. It was ugly, but it worked.

I’ve created a webapp bundle that does just that. Unfortunately, such bundles at present only work with the stand-alone version of Prism. The Firefox add-on is really a better way to run Prism, but if you’re using it you’ll need to do a little manual mucking in your webapp profile to use this bundle.

Stand-Alone Bundle

So, if you just want the bundle, here you go. Note that I haven’t really tested it on the stand-alone version, so please let me know if something is broken.

Hack Your Webapp

As I said, if you’re using the add-on version, you’ll need to do a little manual hacking. After you create the webapp, as described in my earlier post, open up Explorer and navigate to your Prism webapp bundle cache. On Windows, this is in %APPDATA%\WebApps (something like C:\Users\Brian\AppData\Roaming\WebApps); on Linux, it is ~/.webapps. You should see your Google Wave webapp in that directory. Add the webapp.js script to that directory, and also add in images/google-wave-52×32.png. Now you should get a toaster pop-up and task bar notification when there are new waves.

It would be nice if Google were to add a <link rel=”webapp”> to Wave, referencing an appropriate bundle. If anybody there sees this and cares to use my code as a crude starting point, I am releasing this code under an MIT license.