If you are like me, you have probably been steadily collecting new accounts for various web sites and services. An excellent example of this is in my adoption of Google Apps for Your Domain for several organizations I support.
Google Apps is a convenient way to get email, web, blogs, and a domain name for ~10USD a year. But that is a different post. The point is that now I have an account for each of these domains. me@domain1.com, me@domain2.net, etc.
Now, improvements have been made in allowing me to stay signed into three instances of GMail (each on a different account), but I have been having issues in the following circumstance:
- I have a primary account for my personal email, news, etc.
- I have Firefox Extensions that notify me of new information, etc.
- The Firefox Extensions periodically hit against a website to update status, using the browser cookies and authentication information.
- In certain sites (like code.google.com) the period update of the extension will log me out of one account silently.
Now, it may be a design flaw in various extensions, but I am sure that it can and does happen in several different circumstances. The crux of the issue being: How can I be logged in to a single site (that uses a single session cookie) with two different accounts at the same time? That is, how can I be logged into code.google.com with both my personal account (because of extension) and with my development account without having painful errors and repeated logins? Yes, I could uninstall the Firefox extension, but I began to think there must be a better way. The good news is that I was right.
The answer, simply put, is to use another browser. If I had been browsing code.google.com with IE, the problem would never have happened. However, I avoid using IE, and have for some time. Really what I was looking for was another instance of Firefox that had its own cookies and instance information. Cue Mozilla Prism.
Prism is basically a tool for creating instances of the Mozilla web browser platform that restrict themselves to a specific domain. Being basically a stripped-down version of Firefox that only launches a single web application, Prism solves this problem beautifully.
Download Prism, and you will see what I mean. Fill in the details of the website you want to encapsulate (URL, icon, features, etc), press go, and a link is created that will launch that web app in Prism. Prism has its own cache, cookies, saved passwords, etc.
By cordoning off code.google.com into a prism instance, my misguided extension can no longer log me off my developer account. We are talking about two different sets of session cookies now. I have a light-weight, sandboxed instance of firefox to run the page in.
This is, of course, a small use of Prism. The bigger use is actually to define a different scope of web application. What I mean is, there are a class of applications that you always want running. In many businesses, Outlook is ever present. Seeing as I am (mostly successfully) replacing Outlook with Google products on the web, I want to be able to have it always running as well.
The problem is that I want Google calendar to be running at a priority and a scope that is different than the regular browser. The browser is perpetually being closed (crashes, me closing to free resources, etc.), but I want my calendar to be omnipresent. I want that web app to be in a different scope and sandbox. Prism lets me do that.
I don't believe that Prism fits every situation. You certainly would be mad to encapsulate every favorite web site on the web. But if you want to have an omnipresent web app with a life cycle other than that of Firefox proper, you should give it a try. But definitely, Prism makes sense as a solution to cookie instance headaches.