** Description changed:

  On my classic desktop panel, i have 2 webapps launchers in the gnome-panel.
  Basically, they are just  "chromium-browser --app=http://some.web.site 
--some-other-flags ..." + a nice icon
  Chromium is my default browser.
  In the new unity based desktop mode, those webapps now appear nicely.
  
  The problem is that when i start my default web browser, unity
  highlights on the left one of my webapp launchers, instead of creating
  one for the browser itself.
  
  And worse.. once the browser is running, i can't start this webapp anymore as 
unity keeps raising the main browser instead.
  For the other webapp, it works as expected.
  
  ii  libunity-misc0           0.1.1-0ubuntu3           Miscellaneous functions 
for Unity - shared library
  ii  libunity0                0.2.46-0ubuntu5          binding to get places 
into the launcher - shared library
  ii  libunity3                3.2.8-0ubuntu1           binding to get places 
into the launcher - shared library
  ii  unity                    3.2.8-0ubuntu1           Interface for Ubuntu 
Desktop Edition
  ii  unity-asset-pool         0.8.18-0ubuntu2          Unity Assets Pool
  ii  unity-common             3.2.8-0ubuntu1           Common files for the 
interface for Ubuntu Desktop Edition
  ii  unity-place-applications 0.2.26-0ubuntu2          Application place for 
unity
  ii  unity-place-files        0.5.32-0ubuntu1          File place for unity
+ 
+ =========================================================================
+ 
+ This bug would be an ideal bug for someone to get started hacking on
+ Unity, here's some information:
+ 
+  * Time to fix: unknown but large
+  * Difficulty: brutal
+  * Implementation:
+ 
+ This is a complex issue to solve correctly. The most correct
+ implementation associates URI's with windows inside of bamf. Such that
+ bamf's exported tree becomes BamfApplication -> BamfWindow ->BamfUri
+ (currently called BamfTab and incomplete in source).
+ 
+ To achieve this goal there are three primary components. The first is a
+ BamfUriSource. This source is a class used by an application to export
+ its known URI's over dbus to BAMF. The implementation details are not
+ that important, however it is important that it be trackable (so if it
+ crashes we can eliminate references to it) and that it provide two way
+ communication. In short, it needs to tell the bamf daemon about all the
+ uri's it has, and the bamf daemon needs to in turn be able to ask a bamf
+ uri source to "show" a specific uri in its window.
+ 
+ Bamf Daemon will then convert the BamfUriSource into many BamfUri's for
+ exporting over the bus. A bamf uri should look something like and
+ inherit from BamfView:
+ 
+ char * bamf_uri_get_uri (BamfUri *self)
+ char * bamf_uri_get_icon (BamfUri *self)
+ char * bamf_uri_get_title (BamfUri *self)
+ void   bamf_uri_show (BamfUri *self)
+ 
+ In short: that part sucks
+ 
+ The second part is making web browsers export tab uri information over
+ dbus using BamfUriSource. This should be somewhat simple if you know the
+ browser plugin API's using a standard NPAPI plugin. The C potion of the
+ plugin can consume bamf and pass data along, while the javascript can
+ communicate with the browser to get relevant information about the state
+ of the system.
+ 
+ The third and final task is to hook this all into unity. This is
+ relatively straightforward to do. By making a launcher shortcut that
+ points to a uri rather than an application, unity can associate an
+ BamfUri with it, watching when it opens and closes. When clicked, unity
+ can call bamf_uri_show () on the proper uri, which will result in the
+ window raising itself and flipping to the appropriate tab. Excellent.
+ 
+ The most clarifying thing I can think to say here is that when you call
+ bamf_uri_show, what should happen is libbamf will call Show on the
+ correct dbus object that was exported by bamfdaemon. Bamfdaemon will
+ then find the associated BamfUriSource for that BamfUri object, can call
+ show back on it, passing along the id of the uri it wishes to have
+ shown. The NPAPI plugin will receive this call, and pass the information
+ up to the javascript layer, which should then raise the window and
+ switch tabs. Like a boss.
+ 
+  * Where to look: lp:bamf and lp:unity are the primary consumers.
+ 
+    -lp:bamf requires the most work. BamfTabSource and BamfTab need to be 
converted, exported, and consumed in libbamf
+    -lp:unity would simply consume the newly exported information
+ 
+  * Workflow information: http://unity.ubuntu.com/getinvolved/

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/692462

Title:
  unity confused with chromium web apps

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to