FlashExperienceIntrepid

Differences between revisions 5 and 6
Revision 5 as of 2008-06-03 12:32:44
Size: 9766
Editor: 85
Comment:
Revision 6 as of 2008-06-17 11:55:26
Size: 9804
Editor: 82-69-40-219
Comment: typography
Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:
 * Provide the user with a seemless flash experience; this includes ease
 of install as well as a pleasent flash user-experience.
 * Provide the user with a seamless Flash experience; this includes ease
 of install as well as a pleasant Flash user-experience.
Line 15: Line 15:
 a free flash alternative by default.  a free Flash alternative by default.
Line 21: Line 21:
Plugin Finder Wizard shipped by mozilla are: Plugin Finder Wizard shipped by Mozilla are:
Line 36: Line 36:
In hardy, the ubuntu shipped flash products are installed in a
global location. When more than one flash alternative is available,
In hardy, the Ubuntu-shipped Flash products are installed in a
global location. When more than one Flash alternative is available,
Line 39: Line 39:
the debian/ubuntu alternative mechanism. At the moment, alternative the Debian/Ubuntu alternative mechanism. At the moment, alternative
Line 49: Line 49:
to a unpleasent and in some cases even confusing user experience. to a unpleasant and in some cases even confusing user experience.
Line 57: Line 57:
with a link to the adobe flash download page.

====
Adobe Download Page doesn't offer .deb's nor apt: URLs ====

The adobe download page doesn't offer .deb's nor any other form
of automated/guided install of their flash plugin on debian/ubuntu
systems
with a link to the Adobe Flash download page.

==== Adobe
Download Page doesn't offer .debs nor apt: URLs ====

The Adobe download page doesn't offer .debs nor any other form
of automated/guided install of their Flash plugin on Debian/Ubuntu
systems.
Line 67: Line 67:
Free flash players still lack a lot features/bugs to be useful for
the majority of .swf files shipped on the net. Its not clear how
long it will take for free flash to become a viable replacement
for adobes proprietary flash plugin when browsing the web.

However, free flash players try to serve users by fixing most important
Free Flash players still have a lot of missing features or excess bugs to be useful for
the majority of .swf files shipped on the net. It's not clear how
long it will take for free Flash to become a viable replacement
for Adobe's proprietary Flash plugin when browsing the web.

However, free Flash players try to serve users by fixing most important
Line 74: Line 74:
not aligned to the ubuntu release cycle and the current approach of
not upgrading to new upstream versions makes flash break over time.
not aligned to the Ubuntu release cycle and the current approach of
not upgrading to new upstream versions makes Flash break over time.
Line 79: Line 79:
Users are not aware about the differences of flash players. The
Plugin Finder Wizard doesnt provide enough context to make a
Users are not aware about the differences between Flash players. The
Plugin Finder Wizard doesn't provide enough context to make a
Line 85: Line 85:
Though ubuntu provides alternative flash solutions, users have no Though Ubuntu provides alternative Flash solutions, users have no
Line 88: Line 88:
alternatives available when they experience a broken flash file alternatives available when they experience a broken Flash file
Line 96: Line 96:
Firefox 2 didn't support (java-)scriptable threading facilities. In
firefox 3 this should be possible. Thus we should be able to move
the apturl exec out of the UI thread. This require some rewrite of the
Firefox 2 didn't support (Java-)scriptable threading facilities. In
Firefox 3 this should be possible. Thus we should be able to move
the apturl exec out of the UI thread. This requires some rewrite of the
Line 101: Line 101:
keep ubufox compatible with firefox 2 as plain special casing - as keep ubufox compatible with Firefox 2, as plain special casing - as
Line 107: Line 107:
the Plugin Finder Wizard facilities shipped by ubuntu:

 * The first option would make the flash detection kit void by
 providing a fallback dummy plugin that pretends to be a full flash
 implementation; instead of rendering the flash content it would display
the Plugin Finder Wizard facilities shipped by Ubuntu:

 * The first option would make the Flash detection kit void by
 providing a fallback dummy plugin that pretends to be a full Flash
 implementation; instead of rendering the Flash content it would display
Line 118: Line 118:
 to listen on plugin probes done through javascript, which in turn could
 pop-up the "Install Missing Plugins ..." banner when a probe for a flash
 to listen on plugin probes done through Java``Script, which in turn could
 pop-up the "Install Missing Plugins ..." banner when a probe for a Flash
Line 121: Line 121:
 break the website user-experience from the websites-author perspective
 and is user-experience wise the preferred solution. However, the
 break the website user-experience from the website-author's perspective
 and is user-experience-wise the preferred solution. However, the
Line 128: Line 128:
This needs to be communicated and implemented by adobe. Offering an
apturl that installs adobes flash from our repositories is preferable
This needs to be communicated to and implemented by Adobe. Offering an
apturl that installs Adobe's Flash from our repositories is preferable
Line 134: Line 134:
The lack of features in free flash is something that can only be
tackled by upstreams in the free flash code base.
The lack of features in free Flash is something that can only be
tackled by upstreams in the free Flash code base.
Line 138: Line 138:
is to shape the ubuntu SRU procedures to consider regular updates is to shape the Ubuntu SRU procedures to consider regular updates
Line 141: Line 141:
 * free flash provides a extensive test-suite that allows us to  * free Flash provides a extensive test-suite that allows us to
Line 143: Line 143:
 * the free flash solution doesn't export any library to a system  * the free Flash solution doesn't export any library to a system
Line 163: Line 163:
 empty lines will be interpreted as a paragraph delimiter  Empty lines will be interpreted as a paragraph delimiter.
Line 170: Line 170:
flash file. Flash file.
Line 173: Line 173:
 1. add a toolbar / statusbar item that shows up in a colored fashion when visiting a website with active flash content (vs. greyed out or even hidden when no flash content exists). Clicking on it should trigger the plugin finder wizard and make the user select an alternative which should then instantly be used (without requiring restart).
 1. temporarily display a tools hint (like a magifier) overlayed over flash content that the user can click to trigger the plugin finder wizard to select an alternative.
 1. both of the above with the option to turn of the overlaying hint. 
 1. add a toolbar / statusbar item that shows up in a colored fashion when visiting a website with active Flash content (vs. greyed out or even hidden when no Flash content exists). Clicking on it should trigger the plugin finder wizard and make the user select an alternative which should then instantly be used (without requiring restart).
 1. temporarily display a tools hint (like a magifier) overlayed over Flash content that the user can click to trigger the plugin finder wizard to select an alternative.
 1. both of the above with the option to turn off the overlaying hint.
Line 178: Line 178:
per-flash file. However, implementing this would require substantial work on the per-Flash file. However, implementing this would require substantial work on the
Line 183: Line 183:
the free flash implementations. For this free flash players could decide to
automatically fallback to adobe plugin (using xembed) if they detect that the flash
file uses an unimplemented feature; further, the free flash players could provide
the free Flash implementations. For this free Flash players could decide to
automatically fallback to Adobe plugin (using XEmbed) if they detect that the Flash
file uses an unimplemented feature; further, the free Flash players could provide
Line 187: Line 187:
certain .swf files/sites from the free-flash experience. Blacklisting would always
trigger the adobe fallback, while whitelisting would stop automatic fallback when
certain .swf files/sites from the free-Flash experience. Blacklisting would always
trigger the Adobe fallback, while whitelisting would stop automatic fallback when
Line 196: Line 196:
 * document the details of the flash detection kit, in particular what properties  * document the details of the Flash detection kit, in particular what properties

Ubuntu Flash Experience (Intrepid Spec)

General Objectives

  • Provide the user with a seamless Flash experience; this includes ease of install as well as a pleasant Flash user-experience.
  • Support Free Flash as much as possible; the long-term goal is to ship a free Flash alternative by default.

Status Summary (Hardy)

In hardy, ubufox ships a custom Plugin Finder Wizard implementation. The core changes done to the pristine Plugin Finder Wizard shipped by Mozilla are:

  • Present multiple results (aka choices) to the user in the Plugin Finder Wizard result-window.
  • Support apt: URLs as package URLs in the plugin finder results retrieved from the website. This includes a apturl installer backend which is triggered to install apt: plugins selected by the user.
  • Present a graphical hint what installation method is used
    1. Firefox .xpi result distributed on the net (as delivered by the pfs.mozilla.org webservice).
    2. apt: urls to install packages if the user has administrator privileges

In hardy, the Ubuntu-shipped Flash products are installed in a global location. When more than one Flash alternative is available, users with admin role can select the system-wide default using the Debian/Ubuntu alternative mechanism. At the moment, alternative priorities are the same, so the outcome of what is used mostly depends on random facts (like install order, etc.)

Identified User Experience Issues

Apturl blocks UI thread

Apturl is run synchronously from within the UI thread. This means that the UI freezes while apturl prompts for user feedback, leading to a unpleasant and in some cases even confusing user experience.

Flash Detection Kit blocks Plugin Finder Service

Firefox doesn't prompt the user about installing a plugin using the Plugin Finder Service if the Flash Detection Kit is used by sites. This makes the user-experience improvements by the new Plugin Finder Service void for lots of websites, as the user will just be provided with a link to the Adobe Flash download page.

Adobe Download Page doesn't offer .debs nor apt: URLs

The Adobe download page doesn't offer .debs nor any other form of automated/guided install of their Flash plugin on Debian/Ubuntu systems.

Free Flash Status

Free Flash players still have a lot of missing features or excess bugs to be useful for the majority of .swf files shipped on the net. It's not clear how long it will take for free Flash to become a viable replacement for Adobe's proprietary Flash plugin when browsing the web.

However, free Flash players try to serve users by fixing most important sites; unfortunately, those sites change their .swf files in a way not aligned to the Ubuntu release cycle and the current approach of not upgrading to new upstream versions makes Flash break over time.

Plugin Finder Wizard lacks Description for displayed alternatives

Users are not aware about the differences between Flash players. The Plugin Finder Wizard doesn't provide enough context to make a qualified decision.

No user way to switch to alternative solutions

Though Ubuntu provides alternative Flash solutions, users have no GUI guidance for switching the alternative. They are not even aware that their current player might just be one out of many alternatives available when they experience a broken Flash file on the net.

Proposed Solutions

Apturl blocks UI thread

Firefox 2 didn't support (Java-)scriptable threading facilities. In Firefox 3 this should be possible. Thus we should be able to move the apturl exec out of the UI thread. This requires some rewrite of the PluginFinderWizard XUL + js code as the current code is not prepared for any kind of asynchronous processes. It is open if and how we can keep ubufox compatible with Firefox 2, as plain special casing - as done in the past - is not enough.

Flash Detection Kit blocks Plugin Finder Service

We have two options to trick the Flash Detection Kit into triggering the Plugin Finder Wizard facilities shipped by Ubuntu:

  • The first option would make the Flash detection kit void by providing a fallback dummy plugin that pretends to be a full Flash implementation; instead of rendering the Flash content it would display the puzzle piece known from the nullplugin. This solution would probably require some changes to the browser/ code in order to properly detect and accumulate the not-served content-types in order to pop-up the "Install Missing Plugins ..." banner.
  • The other alternative would try a less intrusive (with regards to breaking intended web-site experience). Using a well designed patch it should be possible

    to listen on plugin probes done through JavaScript, which in turn could pop-up the "Install Missing Plugins ..." banner when a probe for a Flash player is retrieved and no plugin is available. This approach would not break the website user-experience from the website-author's perspective and is user-experience-wise the preferred solution. However, the patch to allow this behaviour would go into the low-level code of gecko and thus might be too risky to accept.

Adobe Download Page doesn't offer .deb's nor apt: URLs

This needs to be communicated to and implemented by Adobe. Offering an apturl that installs Adobe's Flash from our repositories is preferable from user experience perspective.

Free Flash Status

The lack of features in free Flash is something that can only be tackled by upstreams in the free Flash code base.

One improvement to overcome the moving target problem of .swf files is to shape the Ubuntu SRU procedures to consider regular updates to new upstream releases in stable releases. The identified requirements for this are:

  • free Flash provides a extensive test-suite that allows us to track potential regressions
  • the free Flash solution doesn't export any library to a system libdir.

Plugin Finder Wizard lacks Description for displayed alternatives

The current meta displayed in the plugin finder wizard is stored in a database regularly updated from package control file meta information. The currently used Xb-Npp-* labels are:

  • Xb-Npp-Applications: Mozilla Application GUIDs supported by the plugin package
  • Xb-Npp-Name: The name displayed in the Plugin Finder Wizard
  • Xb-Npp-MimeType: The content-types this plugin serves

To overcome the "lack of Description" problem we add a new Section Xb-Npp-Description:

  • Xb-Npp-Description: Carefully drafted description for the plugin which is supposed to support the user in making a qualified decision. This control section is a multi-line section. However, the plugin finder wizard is supposed to do the appropriate line breaks automatically. Empty lines will be interpreted as a paragraph delimiter.

No user way to switch to alternative solutions

To fix this issue, the user interface needs to provide obvious, but not annoying hints that there are alternatives available when playing Flash file.

We have multiple UI options to trigger the alternative selection:

  1. add a toolbar / statusbar item that shows up in a colored fashion when visiting a website with active Flash content (vs. greyed out or even hidden when no Flash content exists). Clicking on it should trigger the plugin finder wizard and make the user select an alternative which should then instantly be used (without requiring restart).
  2. temporarily display a tools hint (like a magifier) overlayed over Flash content that the user can click to trigger the plugin finder wizard to select an alternative.
  3. both of the above with the option to turn off the overlaying hint.

A more advanced approach would allow the user to select particular alternatives per-Flash file. However, implementing this would require substantial work on the gecko plugin code, which doesnt support multiple plugins for the same content type by design.

A third option that recently was suggested is to provide a fallback mechanism in the free Flash implementations. For this free Flash players could decide to automatically fallback to Adobe plugin (using XEmbed) if they detect that the Flash file uses an unimplemented feature; further, the free Flash players could provide UI facilities (through the right-click context menu) to explicitly blacklist/whitelist certain .swf files/sites from the free-Flash experience. Blacklisting would always trigger the Adobe fallback, while whitelisting would stop automatic fallback when missing implementation details are detected.

Implementation Details

  • ...

Outstanding Issues / TODO

  • document the details of the Flash detection kit, in particular what properties on the navigator and plugin info object are tested;
  • outline the details on how to extend the plugin finder service to display description; this is supposed to include a brief description of changes required to the plugin finder wizard UI in ubufox, as well as a brief description how to extend the plugin finder service database scheme and the tools used to populate the database.
  • draft implementation details

Comments

  • ...

FlashExperienceIntrepid (last edited 2008-10-25 16:58:56 by c-98-209-40-123)