What is an SSB ?
dixit Wikipedia : '
A site-specific browser (SSB) is a software application that is dedicated to accessing pages from a single source (site) on a computer network such as the Internet or a private intranet. SSBs typically simplify the more complex functions of a web browser by excluding the menus, toolbars and browser chrome associated with functions that are external to the workings of a single site.
'
What are the benefits of an SSB compared to standard browsing ?
- Space fully dedicated to web application content
- System integration (application launcher, notifications, menu, icon badges, local storage...)
- Standard windows' interaction, being handled by the WM/Shell
The SSB approach is already applied by several solutions, with diferents objectives and technical directon :
- Mozilla Prism : firefox extension allowing the creation of a SSB from the currently browsed web page. Of course, the execution environnement is built around Gecko.
- Fluid : standalone SSB creator and Webkit based execution environment with system integration (dock icon badges, Growl notification) and some goodies (userscripts, custom CSS)
- Adobe Air : Support application development using standard web technologies, beside Flash content. Embeds WebKit.
- a Webkit based SSB execution environnement, a chromeless WebView providing sytem integration
- An Desktop entry creator, following http://standards.freedesktop.org/desktop-entry-spec
- an Epiphany extension creating an SSB from the currently browsed Web App.
- Generates .desktop file from user-defined values for the URL, the name and icon path of the SSB
- Provides right arguments to the execution environnement
- Defaults to Website favicon if no icon specified
- One process per SSB
- Chromeless WebView
- Restricted access to the user-defined Web App domain
- Each SSB has their own cookie storage
- Use site specific javascript logic for system integration (ex: get the right value in the DOM for the number of unread messages to be displayed in the notification and/or badge)
System Integration implementation
- Applications launcher in Gnome menus
- Icon Badge (ex : number of unread mail)
- Notification system integration with libnotify using Seed or GtkWebkit DOM bindings ("You've got a mail")
- Application menu by generating specific GtkBuilder files and linking event using Seed or GtkWebkit DOM bindings
- Local storage, possibly Google Gears
The project will be hosted on Gitorious and welcome any contribution being code, documentation, or simply advices.
The first draft code will be commited sometime in the next week, the current state being nearly none :)