Firefox/Projects/Improve Plugin Find and Install

From MozillaWiki
Jump to: navigation, search

Overview

Sprint lead: Mossop
Sprinters: boriss

Description
When encountering a blocked or missing plugin, give the user a button to push that will download and run the plugin installer so they can see their content.

Goals / Use Cases

  • Firefox 3.5
    • Fix PFS to be able to download and run installers
  • Firefox Next
    • Remove the current PFS UI.
    • When an unknown/blocked plugin is present in the page offer the user a new version to install.
    • Allow users to disable prompts for specific plugins.

Non Goals

  • Offer plugin updates in the add-ons manager or blocklist notification

Design

When the user visits a site containing an unknown/blocklisted plugin we will display a notification bar saying that Firefox is looking for a plugin to use for the content. At this point it will send details to the PFS webservice of what application is looking for a plugin and what mimetype it is trying to display. The PFS webservice will give either no results or an install link.

When an install is available Firefox will update the notification bar to say that "Flash 9.0 is available" and give an install button. The install button can either open a new webpage for installs requiring EULAs etc. or start download of an installer which will be executed after download is complete.

When an install is not available Firefox will update the notification bar to say as much.

Installation Steps

When the pfs gives us a result for a mimetype search and the user agrees to the install Firefox will perform the following steps:

If there is an xpi_location specified then Firefox will attempt to install that file as a regular extension.

If there is an installer_location specified then Firefox will attempt to run that as a standard executable.

In both of the previous cases the location must either be on a https server or a hash must be given (as xpi_hash or installer_hash). After the executable has completed or the xpi install is finished if the property needs_restart is true then the user will be asked to restart Firefox. Otherwise the webpage that triggered the search will be reloaded.

If neither xpi_location or installer_location is present then Firefox will simply open the page in the url property.

Bugs