Prism is a simple XULRunner-based browser that hosts web applications without the normal web browser user interface. Prism is based on a concept called Site-Specific Browsers (SSB). An SSB is designed to work exclusively with a single web application. It doesn’t have the menus, toolbars and other accoutrements of a traditional web browser. An SSB also offers tighter integration with the operating system and desktop than a typical web application running through a web browser. Applications running in an SSB are therefore able to benefit from many of the advantages of the desktop and of the web at the same time.
- Separate process: Web apps can hog memory or processor cycles or even bring down the whole browser in extreme cases. By running each app in its own process, we minimize the impact of any mishaps. We can also benefit from operating system tools that lets us view the memory/CPU consumption of a specific application.
- Minimal user interface: A general-purpose browser UI is not necessary or appropriate for most web apps. It is more efficient to provide a UI that is specific to the application. This also cuts down on UI clutter (hence the term distraction-free browser).
- Basic desktop integration: Support of desktop features can make using the app more natural and convenient for end users. This includes the ability to create desktop shortcuts, to place the application icon in the tray or dock and to display pop-up notifications.
- Customization: Apps can be run using a shared browser runtime and customized using client-side script (similar to Greasemonkey). Custom stylesheets can be used to tweak the UI.
Prism is a XULRunner application. In addition to the browser engine included in XULRunner, it consists of:
- Web app bundle management: Code for creating new web app bundles and loading existing bundles.
- Shortcut creation UI: A dialog box lets the user specify attributes of the web app (name, URI, icon, shortcut locations).
- Operating-system integration: Binary components provided access to OS-specific features like shortcut creation and dock/tray icons. We intend to propose these extensions for inclusion in future versions of XULRunner.
- Firefox extension: A Firefox extension, code-named "Refractor", can be used to spin out new Prism apps from inside the web browser. Refractor adds a new menu item to call up the shortcut creation dialog for inside Firefox. Web apps can also point to a complete web app bundle or some elements of a web app (like higher resolution icons). Refractor automatically takes this information into account.