Prism Brainstorming


Now that Prism has launched, a lot of people have been suggesting features and various directions Mozilla Labs could potentially take the experiment in the future. Here is a collection of ideas that people have recently suggested, and some things I’ve been thinking about in the back of my head. Please feel free to post your own ideas in the comments. [Update: or you can discuss on a thread on the Mozilla Labs forums about ideas for future directions].

Improving the Refracting Experience

  • We could package webapp bundles as extensions, and then have Prism search for matching extensions when the user is converting a Web application to a desktop application. These extensions would include various files to customize the Web application, like a webapp.css file to style the application, greasemonkey scripts, etc. In terms of the user interface, users would just see a screen shot of what the application will look like, along with a feature list when refracting an application out of their browser. For instance, if the user is converting Google Reader out of their browser (Tools > Convert to Application), they may see one bundle that has been downloaded by 10,000 people and another that has been downloaded by 3,000 people. After looking at the screen shots and feature lists, they choose which the one they want (or none). Users could switch which bundle they are using to modify the Web application at any point after refracting as well.
  • Automatically convert the user’s favorite Web applications based on a white list of known applications and their frecency score in places? For instance, Firefox notices that the user visits 30 Boxes every day so it drops a shortcut to 30 Boxes in the Web applications folder of their Start Menu to alternatively launch the application with Prism. Since this is just a shortcut, it’s only going to take up ~1k of space on the user’s hard drive, but it still may not be a good idea since users generally have a certain chagrin for applications that proactively try to help them. There are also some privacy implications.

Content Handling

  • Allow Web applications to register with the operating system to handle certain file types. Obviously there are a lot of security concerns with this, and this would only apply to applications that the user has personally refracted, there would need to be confirmation dialog boxes before uploading content, etc.
  • Allow the user to drag and drop files onto refracted applications, or Firefox (which will load the Web app in a new tab and then upload the file)
  • Get the process of uploading files to Web applications standardized through a group like the WHATWG, and supported by a few popular Web applications, like Zoho, and Google Docs

Integration with the Desktop Environment

Windows

  • Minimize to the system tray

OS X

  • Modify the dock icon (number of unread emails, web feed messages, etc.)
  • Run as a menu bar item (we would need to convert the favicon to monochrome)

All Platforms

  • Let Web application developers specify their own high resolution application icon so we don’t have to rely on upscaling
  • Support for frameless windows (for more widgetish apps, or stylized apps like twitterrific)
  • Get a notification api standardized through a group like the WHATWG, but leave it up to the client to determine how to deliver the notification to the user (we would probably go with growl on mac, system tray dialog bubbles on Windows, custom implementation on Linux, etc.)
  • Launch application on startup

Improvements to the Web Platform (mentioned in the original announcement)

  • Support for offline applications
  • canvas3d

Partner Builds

  • Make it really easy for application developers to deploy Prism along with their webapp bundle directly to users.

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.


Other Posts
FLOSS Usability Sprint V
Prism

Write a Comment

Take a moment to comment and tell us what you think. Some basic HTML is allowed for formatting.

Reader Comments

I’ve started a thread at the Mozilla Labs Forum to discuss ideas for future directions, as well. If you’d like to take part in a discussion, feel free to head over there and join in.

Leaving ideas here is good, too. You can trust Alex to bring them forward! :)

>>Modify the dock icon (number of unread emails, web feed messages, etc.)<<

Windows also has a “unread mail” counter that appears on the “User Select” screen (at least in XP).

I don’t personally know how to modify it though, I do know at _least_ aol utilizes it. (I can’t recall if TB does)

(sorry for comment spam)

Regarding notifications on Linux, consider pushing the proposed fdo spec: http://www.freedesktop.org/wiki/Specifications/systemtray-spec

I must say I love everything about this project, so please keep up the good work you’re doing!

It would be nice if Prism also supports XMPP and Jingle (for audio, video communication).

Custom OS-level interactions such as tray notification via javascript. (if used in Prism)

“New whatever has arrived.”

The online desktop is something that I have been thinking a lot about, and Prism is the fantasy application I’ve been thinking we need to properly implement the online desktop.
Ideally an OEM could configure a computer so that when they click on their Start menu (or whatever comes with the OS) they would see what looks like a bunch of installed applications, but are really just online apps.
The three benefits of this are
1. Online apps can be (should be) seemless across PCs and OSs, giving the user a familiar experience wherever they go.
2. Secure. A trojan on the local PC will not compromise your data on Google Docs.
3. Reliable. If your computer catches fire your data still exists online.

What I would like to see with Prism is what has been suggested, the ability to integrate online apps with the desktop in a secure and seemless manner.
Online apps can already use the operating systems print, open, and save dialogs through the browser.
I think one way that could really help would be an online API. The API would instruct the local OS to perform certain tasks and would work the same across operating systems. For example, an XML-like API for drop down menus or styling the window frame it exists in beyond size. These XML markups could exist in the HTML code in a way that is optional (so that when they exist in a traditional browser they are ignored) and don’t break W3C. This is much to the way java scripts can exist in an a document without breaking W3C and allow optional rendering for when js is not supported.
There has also been some talk in the Linux blogs about ways to elevate Prisms privileges in a secure manner to implement things such as I just mentioned.

One thing is for sure, Prism has the ability to change the way we think about applications in a revelutionary way.

I’m a graphics guy that’s very interested in helping out on skins and gui’s and such… but, after digging through Mozdev sites, wiki’s, and newsgroups I don’t know where or how the hell to get started.

Any help, or guidance, or finger pointing, or url-linking would be much appreciated.

Do you people know about POW ? I would like to see that packed as backend to Prism.

These sound like quite a good bunch of common ideas, I quite like the idea of prism (after using it for a while, and trying to develop for it). One note on the notifications method API is that for notification, it could be done the same way firefox 2.0 notifies you when your download has completed, being this is written as an XPCom component.
I also quite like the idea for audio notification by XMPP or Jingle, suggested by Damjan.

Don’t forget an animation of some sort to explicit the fact that Prism is waiting for an answer from the server!

Firefox Prism is of extreme importance. Let me offer a view of the company that created a Web 3.0 platform for enterprise-grade Web apps and in 6 years has built quite a few of them. Here is our priority list:

1. System tray notifications (with sounds). This is a key in CRM and in chat-based customer support. Notification popups must be full html. Need to be able to style them, have links in them, JS, etc.

2. Application icon must be full html as well. Need to see number of issues, orders, invoices, and emails in inbox right on top of the icon. Like on iPhone main screen.
3. Prism is even more important on mobiles than on desktops. Most functions listed here are our requirements for mobile widgets. See very powerful Nokia s60 widgets based on WebKit:
http://www.forum.nokia.com/info/sw.nokia.com/id/b9ad2b23-07ea-46cd-badf-f0ba3df97da3/Web_Run_Time_API_Reference_v1_1_en.pdf.html. If Firefox is serious about mobile space, the capabilities listed on this blog are key to achieve that.

Comment space does not allow to express all the needs and details. If interested in more in-depth discussion, you are welcome to contact me on my email.