Labs/Jetpack/JEP/30

From MozillaWiki
< Labs‎ | Jetpack‎ | JEP
Revision as of 20:37, 18 November 2009 by Aza (talk | contribs) (→‎Proposal)
Jump to navigation Jump to search
Draft-template-image.png THIS PAGE IS A WORKING DRAFT Pencil-emoji U270F-gray.png
The page may be difficult to navigate, and some information on its subject might be incomplete and/or evolving rapidly.
If you have any questions or ideas, please add them as a new topic on the discussion page.

JEP 30 - First-run Support

  • Champion: Aza Raskin <aza at mozilla dot com>
  • Editors: Paul O’Shannessy <paul at oshannessy dot com>
  • Status: Implementing
  • Type: API Track
  • Created: 17 Nov 2009
  • Reference Implementation: None
  • Relevant Bugs:
  • JEP Index

Introduction and Rationale

This JEP describes an API for creating first-run pages for Jetpacks.

After installing a Jetpack, without some sort of instructions on how to use the features just installed, the user can feel lost, bewildered, and confused. The first-time experience is exactly when users need the greatest reassurance and instruction, which is why so many Firefox add-ons create a first-run page to explain and guide the user through the new functionality. With Jetpacks, we have the opportunity to create a more unified feel.

Proposal

Clipboard access will live at jetpack.manifest.

20091117-c8maetc49ke7ptf6yj2bieg7ac.png

The first-run experience is coded inside of the manifest, which is (not un-coincidentally) where the settings are placed.

jetpacks.manifest = {
  firstRun: options
}

options: {html: "

", url: "http://", text: "", img: "http://" } or html/url/img-url (a url is uniquely identifiable by starting with "http://" that doesn't end in an three-letter image extension).
  • Want to take care of the case where it's just some text. Just a single image. A full HTML page.
  • Want to take care of settings. Both as a link which pops open the goodness (jetpack.settings.open) and as something which is embedded (
    ) and as something which is in-flowed <input class="jetpack-setting" id="twitter.id"/>.

Interaction with Settings

One of the standard use cases for the first-run page—besides pedagogical—will be to setup up the Jetpack's settings. There are three ways of doing this:

  • Allow calling jetpack.settings.open() from the first-run page. (Although jetpack.settings.open is not yet implemented.)
  • Embed the settings in the first-run page. We already have an HTML representation...
  • Inline inclusion of settings.

Inline Inclusion

There are two ways for inline inclusion to work:

    • Having a m

Multiple Jetpacks

One of the pain points in original-flavor extensions has been that bundling two or more extensions together leads to a jarring experience on installation—numerous first-run pages pop-up like zits on a teenagers face after an oil bath.

With the Jetpack method of doing first-run pages, we can more easily intercept these first-run pages in the case of a bundle and create a unified experience.

20091117-msbxk1bw2ue7w1i1km5s4c9h4u.png