Labs/PrismFeature

From MozillaWiki
Jump to: navigation, search

Prism-like Feature for Firefox

Based upon the success and interest in the Prism experiment, we believe that there is an opportunity to uplift a Prism-like feature into a future version of Firefox.

The Prism experiment and platform itself should continue in its exploration, and we'll continually look for opportunities for uplift.

The Split

The proposal is that we consider a Prism-like feature in two parts. JS APIs, and "turn this page into a desktop app" (Appify).

Appify

If we do not want Prism to go the way of the every-so-geeky implementations done by Safari and Chrome, we need to focus on helping users discover when they might want to make an web-app into a desktop app.

When the user is found (by examining the places database) to visit a site frequently and stay on it (i.e., uses it like an application), we can show a suggestion that the user might want to turn it into a desktop application. We can whitelist a number of high-profile known sites that can be appified, others can advertise their ability to be hosted using a link rel tag.

20081210-mu6783bt3jy13adcik1wfrsfcn.jpg

The message animates into the site identity button indicating the feature can be accessed there. Some heuristic is used to decide how many times the suggestion should be shown. Clicking on the link causes a beautiful animation (the page scales down to the thumbnail seen below, everything else fades in):

20081211-ehgthdhs6a4dbu9t8g5ggb5dr7.jpg

Javascript Desktop Integration APIs (Reach)

Use Cases

All require being able to be used when offline.

Flickr Uploader

  • Offline use
  • Drag and drop file handling
  • Generic XHTTP for communication

Zoho Docs

  • File association
  • File access
  • Persistent storage
  • Offline use
  • Drag and drop file handling
  • Generic XHTTP for communication

Task Manager/TO-DO List

  • Listen for system-level keystrokes -- i.e., global heyhook
  • Display + animate windows (transparent and shaped)
  • Run at startup
  • Offline use
  • Generic XHTTP for communication
  • Persistent storage

A Cross Platform Growl

  • Daemon tasks
  • Listen on a port for IPC
  • Install an icon in the menu bar/dock/quick tray/etc.
  • Access to system services (like Text To Speech)
  • Offline use
  • Display + animate windows (transparent and shaped)
  • Persistent storage

Twitter/Social Feed Client

  • Device access (Audio, Camera/Video, GPS)
  • All of the above

Adium/Chat Program

  • Ability to interoperate with various chat protocols
  • All of the above

Ubiquity

  • Access to the clipboard, and ability to issue copy and paste
  • All of the above