Prism

Prism is no longer developed by Mozilla Labs. There are now no alternatives.

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.

Benefits

  • 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.

Architectural Overview

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).
  • JavaScript API: An API that can be used by scripts inside the bundle to customize the application. We are refining this approach to make the API applicable in as many environments as possible (e.g. it might be useful even for applications running in a normal browser). It should be possible for developers to include Prism-style extension directly in their web app. We would like to harmonize our API with those of similar projects such as Adobe AIR and Google Gears.
  • 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.

Documentation

Frequently Asked Questions
Bundles
A web application bundle is a zip archive that holds a configuration file, icons and an optional webapp JS script. Bundles can be installed locally, or directly from a website using the Prism for Firefox extension.
Configuration
A webapp bundle should contain a webapp.ini configuration file. The configuration file is a simple, INI-style text file that specifies some parameters about a web application.
Styling
One of Prism's goals is to make web applications feel more like desktop applications. One way to make the illusion seem more real is to use styling (or theming). Prism supports a simple styling system that allows the user to add CSS files to the webapp bundle.
Scripting
Prism allows for some client-side web application customization. Some simple objects and utilities are exposed to webapp scripts.
Host Window
Prism provides a simple, scaled down browser window for running web applications. Using configuration files and webapp scripting, the host window can be modified.
Installer
Installing Prism.

View All...

Community

Goodies

Contributing

XULRunner