FlashExperienceIntrepid

Differences between revisions 1 and 15 (spanning 14 versions)
Revision 1 as of 2008-05-29 11:10:09
Size: 8991
Editor: e182127129
Comment:
Revision 15 as of 2008-10-25 16:58:04
Size: 10272
Editor: c-98-209-40-123
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

||<tablestyle="float:right; font-size: 0.9em; width:45%; background:#F1F1ED; background-repeat: no-repeat; background-position: 98% 0.5ex; margin: 0 0 1em 1em; padding: 0.5em;"><<TableOfContents>>||
Line 10: 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 13: Line 15:
 a free flash alternative by default.  a free Flash alternative by default.
Line 19: Line 21:
Plugin Finder Wizard shipped by mozilla are: Plugin Finder Wizard shipped by Mozilla are:
Line 34: 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 37: Line 39:
the debian/ubuntu alternative mechanism. At the moment, alternative the Debian/Ubuntu alternative mechanism. At the moment, alternative
Line 43: Line 45:
==== apturl blocks UI thread ==== ==== Apturl blocks UI thread ====
Line 47: 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 51: Line 53:
Firefox doesn't prompts the user about installing a plugin using Firefox doesn't prompt the user about installing a plugin using
Line 55: 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

==== deficiencies of free Flash solutions ====

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
with a link to the Adobe Flash download page.

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

Adobe now offers .debs for Flash 10: http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.deb

==== 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
Line 72: Line 72:
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 77: Line 77:
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 83: Line 83:
Though ubuntu provides alternative flash solutions, users have no Though Ubuntu provides alternative Flash solutions, users have no
Line 86: Line 86:
alternatives available when they experience a broken flash file alternatives available when they experience a broken Flash file
Line 89: Line 89:

=== Potential 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 require some rewrite of the
==== Flash applets cover HTML elements ====
In websites with drop-down menus, flash applets will be placed on top of the menu so that they cannot be clicked on.

=== 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
Line 99: 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 105: Line 107:
the Plugin Finder Wizard facilities shipped by ubuntu:

 * The obvious solution would be to make the flash detection kit void by
 providing a fallback dummy plugin that pretends to be a full flash
 implementation, but in the en
d displays the puzzle piece known from
the nullplugin. This solution would probably require some changes to
 the browser code
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 to tackle this in a more subtle fashion
 and would be specifically targetted to pro
vide anti-measures for the
 flash detection kit. Using a well designed patch it should be possible
 to listen on plugin probes done through javas
cript, which in turn could
 pop-up the "Install Missing Plugins ..." banner when a probe for a flash
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 o
f 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 Ja
va``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 definitly the preferred solution. However, the
 patch to allow this behaviour would go into the lower-guts of gecko and
 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
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 132: Line 132:
==== Deficiencies of free Flash solutions ====

The lack of features in free flash is something that can only be
tackled by upstreams in the free flash code base.
==== 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.
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 190: Line 190:

=== 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 ===

 * KamilPáral: ad "Flash applets cover HTML elements": That should be fixed [[http://blogs.adobe.com/penguin.swf/2008/07/turkish_localization_also_wmod_1.html|here]] I think.
  
 * twright: for 'Adobe Download Page doesn't offer .debs nor apt: URLs' why not use a userscript to add one if adobe don't?
  * asac: we should not try to change pages

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

Adobe now offers .debs for Flash 10: http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.deb

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.

Flash applets cover HTML elements

In websites with drop-down menus, flash applets will be placed on top of the menu so that they cannot be clicked on.

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

  • KamilPáral: ad "Flash applets cover HTML elements": That should be fixed here I think.

  • twright: for 'Adobe Download Page doesn't offer .debs nor apt: URLs' why not use a userscript to add one if adobe don't?
    • asac: we should not try to change pages

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