Changes

Jump to: navigation, search

Prism

409 bytes removed, 20:53, 30 October 2007
no edit summary
WebRunner Prism is a simple XULRunner based browser that hosts web applications without the normal web browser user interface. WebRunner Prism is based on a concept called Site Specific Browsers (SSB). An SSB is an application with an embedded browser designed to work exclusively with a single web application. It doesn’t have the menus, toolbars and accoutrements of a normal web browser. Some people have called it a "[http://www.hawkwings.net/2006/05/13/a-dedicated-distraction-free-browser-for-gmail/ distraction free browser]" because none of the typical browser chrome is used. An SSB also has a tighter integration with the OS and desktop than a typical web application running through a web browser.
<div class="note">WebRunner has become [http://labs.mozilla.com/2007/10/prism/ Prism], a Mozilla Labs project. Find more discussion in the Prism [https://labs.mozilla.com/forum/index.php/board,16.0.html user feedback forum].</div>
== WebRunner Prism / SSB Objectives ==
Looking at what has already been done and discussed about desktop/webapp integration, the following is a suggested roadmap for SSB experimentation:
* '''Separate process:''' When the webapp goes down or locks up, I don’t want anything else affected. Thankfully, Firefox does have session restore, but that is beside the point. When I open many tabs and have several webapps running in a browser, things get slow and unstable after a day or two.
* [[WebRunner:Planning | WebRunner Planning Whiteboard]]
* [[WebRunner:Prism/FAQ | WebRunner Prism FAQ]]
== Current Features ==
* Simple Print support via context menu
* About support via context menu which is useful for checking the XULRunner runtime version
* Launch Webrunner Prism with commandline parameters to host specific webapps
* Web application profile support - parameters for a web app can be saved to an INI-style *.webapp file
* Support for webapp owned popup windows - some email webapps can use a popup to compose email
* Add support for inline spellcheck and suggestions on context menu
* Add support for form field autocompletion, like Firefox
* Enable extension support so WebRunner Prism can be tweaked or enhanced. Also, webapps themselves can be tweaked by extensions* Create an tool to create new webapp profiles so new webapps can be installed from WebRunnerPrism
* Create an extension to allow Firefox to create webapp profiles since most of this process starts in the browser
* Create some form of adjusting preferences (about:config?). For instance, I had to add the code below in webruner-prefs.js to adjust proxy
* Support for increasing and decreasing text size (ctrl++ and ctrl--)
* Menu option - 'Preferences'
* Configuration option to sandbox a webapp so it doesn't share cookies with other webapps in the same webrunnerPrism. This could allow multiple Google apps to be open with different accounts (a@gmail.com Gmail; b@msn.com for Reader; c@hostedgmail.com for Hosted Gmail). == Security == Webapp bundles, as defined today, can and usually do include a JS (webapp.js) which runs with system privileges. This should be removed, so that starting a webapp bundle does not imply handing over your machine and all the data on it to whoever created or modified the bundle. Ideally, webapp bundles should not be able to do more than a normal webapp can, just run in a slightly different UI (no menu etc.) and in their own process.
== Web Application Bundles ==
A web application [[WebRunner:Prism/Bundle | bundle]] is a zip archive that holds a [[WebRunner:Prism/Config | configuration]] file, icons and an optional webapp JS [[WebRunner:Prism/Scripting | script]]. The profile can be used to launch and install the webapp in WebRunnerPrism:
<code>webrunner prism -webapp [webapp-bundle]</code>
Whenever a web application has been launched / installed using the above command line and the webapp [[WebRunner:Prism/Config | configuration]] has an '''ID''' parameter, the web application is unpacked into the WebRunner Prism profile folder and can be launched directly using:
<code>webrunner prism -webapp [webapp-id]</code>
Here is a simple [[WebRunner:Prism/Bundle#HowTo | how-to]] for building a basic web application bundle.
See: [[WebRunner:Prism/Bundle]]
== Web Application Configuration ==
A webapp bundle should contain a webapp.ini [[WebRunner:Prism/Config | configuration]] file. The configuration file is a simple, INI-style text file that specifies some parameters about a web application.
See: [[WebRunner:Prism/Config]]
== Web Application Script ==
Some WebRunnerPrism-based web applications may want to tweak the behavior or add desktop-ish features to the webapp. WebRunner Prism supports a simple [[WebRunner:Prism/Scripting | scripting]] system that can be used to add custom JS script to the WebRunner Prism chrome [[WebRunner:Prism/HostWindow | host]], but not the webcontent itself. <div class="note"> In the future, the webapp script may have lower privileges. We are looking into the security aspects of the higher privilege level.</div>
See: [[WebRunner:Prism/Scripting]]
== WebRunner Prism Host Window ==WebRunner Prism provides a simple, scaled down browser window for running web applications. Using [[WebRunner:Prism/Config | configuration]] files and webapp [[WebRunner:Prism/Scripting | scripting]], the host window can be modified.
See: [[WebRunner:Prism/HostWindow]]
== Installer ==
The installer should configure the OS to associate *.webapp files with WebRunnerPrism. This means that when you double-click or launch a *.webapp file, WebRunner Prism is launched and automatically opens the web application.
Current Windows and Mac installs automatically associate *.webapp with WebRunnerPrism.
One interesting side efect is that after this change, you can select a link to a .webapp file in a Web Page and you get it run by webrunner - in IE this runs anywhere, but this won't work in Firefox unless the webapp is being issued with an appropriate MIME type on the server: application/x-webrunner works (see [http://blondechris.com/www/gmail.webapp here] for an example).
Canmove, confirm, emeritus
2,798
edits

Navigation menu