Open issues/risks

We don't want to degrade browsing performance while doing the background update.

We don't want to have a long delay while finishing off the update on the restart.

We don't want to delay shutdown (I want to be able to tell my laptop to shut down and as soon as possible be carrying it out the door to my meeting / train / other time-sensitive event).

Stage 1: Definition

1. Feature overview

We want to move the bulk of the update process to the current session so that when the user restarts, there's not much left to do to complete the update and we can make it appear as if not interruption actually happened.

This will only apply to Mac and Linux. For Windows, the service will take care of this.

2. Users & use cases

Yesterday, Johnny was about to leave home to go to work but he wanted to check his Facebook one last time before heading out the door. He launched Firefox but rather than being taken right to Facebook, he was presented with a 15 second delay, staring at an updater progress dialog. It wasn't terribly long, but after seeing this same thing happen every six weeks, Johnny decided he hated Firefox and moved to IE.

With the new and improved Firefox, with this feature implemented, Johnny is never frustrated with updates ever again.

3. Dependencies

`

4. Requirements

Install all non-active components into the browser during the active session

On the next Firefox reload, install the remaining update bits

The delay on start-up for the next session should be minimized as far as is humanly possible, approaching normal cold start times.