Categories
Mozilla Web Development

Web Application Coherence

One of the greatest things about Parallels is Coherence. The integration between the virtual machine and the host OS makes virtualized applications feel almost native. It’s a major win for users who don’t want to be locked into a mini-desktop.

I wonder if this concept could be brought to the web in a secure, but convenient method. There are many applications that could benefit. You could pull widgets off a page and onto your desktop as an application. For example you could take Meebo, an online IM service. In a matter of seconds it would feel as if you downloaded a new application, but your still using your browser. People love web applications, and hate downloads. This has been known for a while. Meebo is extremely popular because it feels somewhat like a desktop application, but it’s web based. Think of this as Apple’s Dashboard taken to a whole new level.

Take for example this psudocode (it’s just to make a point, not an API):

<div id="frame">
    <p>This is a window that can be brought to the desktop</p>
    <p id="test"></p>
</div>

var widget = document.getElementById(‘frame’);
 
// This would test if it’s currently coherent
if(!widget.coherence){
    // This would prompt the user to allow coherence on the page.  Typical extension-like install warning.
    widget.allowCoherence();
}
 
// When you first enter coherence mode
widget.coherence.oncoherence = function(){
    document.getElementById(‘test’).innerHTML = ‘I\’m in your OohS, integratin your web pagez’;
};
 
// When you focus (bring a window to the front)
widget.coherence.onfocus = function(){
    document.getElementById(‘test’).innerHTML = ‘Your in focus’;
};
 
// When you first enter coherence mode
widget.coherence.onminimize= function(){
     document.getElementById(‘test’).innerHTML = ‘I\’m idle right now.’;
};

The first time your browser would hit allowCoherence() you would be prompted to allow coherence for that domain. Other than the integrated look/feel it would adhere 100% to typical web sandboxing. This isn’t like building an XULRunner app where JS can write to the filesystem. It would just be a way to make web applications more usable for people. and breakout of the web browser feel.

There are other things that can be done as well. For example css theming could give the app a more native look/feel dependent on the host. Perhaps just an attribute in the <html/> would trigger the browser to render things to look like a native app by default (pinstripe background for page by default, etc). Another great thing to use with it would be offline support. A little more cleverness would allow you to create bookmarks that essentially “open the application”.

Ultimately this would still be about web applications, but making them live outside of the browser window. The user wouldn’t need to install anything more than a web browser. The applications would be as safe to use as browsing to a website.

So there’s my giant idea. Implementing this in something like Firefox would be a rather large task, and to be useful the API would need to be standardized across browsers, but much of the underlying stuff is there. Anyone interested in taking web applications to the next level?

8 replies on “Web Application Coherence”

What about the pyro desktop enviroment, it is a window manager written as a firefox extension, the idea is that this sort of stuff can be done.

Personally have not tried it yet.

“People love web applications, and hate downloads.”

No, they don’t! Web applications, are slow underfeatured, and have very poor usability.

I’ve been testing hundreds of web apps in last few months, from bookmarks, to video/audio/image editing and video sharing.

They are all monstrous, horrible things.

Flash based websites/apps are a crime against humanity.

I’m fed up with this push to mouse-only apps that that this “Web 2.0” fad has brought. Think about users’s fingers, wrists, hands and arms.

Online desktop is a mirage; you are all diving in to a pool of concrete.

XUL already gives you what you are looking for (including the javascript sandboxing) with one minor exception. If the window is opened as a “chrome” option to the firefox runtime, then when Javascript issues a “window.close()” the application ought to be terminated.

Why do we want another new feature when what we have already works? At least it would if we would fix the one bug that I can’t see affecting security in any way.

I think your idea has some similarities with Mark’s WebRunner which is designed to run some specific web application in a standalone XULRunner. Maybe inspecting more into WebRunner will help you to come out more innovation. Anyway, I love your idea!

layton: It’s not the same. XUL is not backwards compatible with the web, nor do any other browsers support it. All browsers support html. Extending it is much better than reimplementing it. Think standards.

Bo Yang: it’s not WebRunner because it’s not a product itself. It’s the ability to move html block elements outside the browser interface and interact with them in their own UI. WebRunner is an interface-less browser designed to run 1 website with no chrome.

Robert: WebRunner is designed to run _any_ website with no chrome. I am hoping to get something like your idea working in WebRunner and see if it could run with Fx3 as the runtime.

Mark Finkle: correct, but that’s not the point of this idea. The point is to turn a block element into a chromeless window that’s essentially “integrated” into the OS. WebRunner is just a chromeless browser.

This is an idea for implementation in a browser.

Leave a Reply

Your email address will not be published. Required fields are marked *