UnityWebIntegrationPlan

Launcher Web Integration Plan

Major Components

  • Unity
  • Web Browser Plugin(s)
  • BAMF Application Matcher Framework

Overview

The approach Unity takes to provided web application like functionality is to work on a document level concurently with an application centric view of the desktop. Each application contains a list of associated URI's, and an individual URI (or URI regex) may be thought of as a single application. Thus all applications displaying a document matching uri http:://(.*\.)?facebook.com.* could be considered to be an application. In general this would mean a web browser is open and looking at a page in the facebook family of sites.

In this setup, Unity is tasked with being the primary user interaction point. All display and user input is processed through the unity shell. BAMF is used as a backend, tracking all open URIs and their matching applications which are further associated with .desktop files. Further BAMF creates special URI only applications via well crafted .desktop files. These applications could be described as Web Applications, however they are not strictly limited to websites as they could be tied to any URI. Finally web browsers act as data providers to BAMF, providing up to the second URI information over dbus for consumption by BAMF. Simple NPAPI plugins will be implemented for this purpose.

Work Items

  • Create a specification for BAMF specific URI based "application".
  • Finish out the BamfTab interfaces in BamfDaemon and libbamf.

  • Rename BamfTab to BamfUri

  • Create an NPAPI plugin capable of:
    • Informing a C module of all open URI's
    • Provided icon for URI's on demand
    • Signaling to the C module when URI's are opened/closed/modified and when their "titles" change
    • Saving a preview of any URI currently open on request from the C module
    • Focusing an open URI on request from the C module

Web Browser Plugins

Plugins for chromium and firefox should require little differentiation as both support the NPAPI framework. These plugins have two major compenents, a javascript side and a C side. Utilizing a C module linked with libbamf, web browser plugins will export all URI information over dbus.

UnityWebIntegrationPlan (last edited 2011-01-06 22:30:31 by jassmith)