Extension guidelines: Difference between revisions

From MozillaZine Knowledge Base
Jump to navigationJump to search
(hasn't received enough feedback)
m (add category)
Line 20: Line 20:
* Never make the user go through multiple steps to uninstall the Extension. If removal is complex, write your own uninstall script and tie it to a GUI-accessible button.
* Never make the user go through multiple steps to uninstall the Extension. If removal is complex, write your own uninstall script and tie it to a GUI-accessible button.
* Proposal: If the extension sends ANY data to any internet location, a request should be made to the user for the right to send this data. The request should list the items (in non-technical terms) that will be sent, and allow the user to permanently opt-out of sending the data. The request only needs to be made once, BEFORE any data is sent. This guideline does not apply to the built-in Firefox update mechanism.
* Proposal: If the extension sends ANY data to any internet location, a request should be made to the user for the right to send this data. The request should list the items (in non-technical terms) that will be sent, and allow the user to permanently opt-out of sending the data. The request only needs to be made once, BEFORE any data is sent. This guideline does not apply to the built-in Firefox update mechanism.
[[Category:Development]]

Revision as of 04:36, 25 September 2005

This document hasn't received enough feedback, so take these guidelines with a grain of salt.

Generally accepted guidelines to be used by extension authors.

If you have a proposal for a new guideline, please add the prefix "Proposal:" at the front of the guideline itself. If the new guideline is acceptable to the community, this prefix can be removed after two weeks. If the guideline is not acceptable, it will be removed from the page, with a summary comment indicating why it was removed.

Menu Items

  • No extension should add more than one menu item per major feature that it offers. If you need to add multiple items, add a submenu instead.
  • A menu item for "Options" is unnecessary as that is included in the Tools->Extensions window for your extension.
  • Proposal: Add a setting to remove the menu item with a GUI-accessible option.

Tools Menu

  • Add web development menu items after the "devToolsSeparator" separator, but not after any subsequent separator. Use insertafter="devToolsSeparator"
  • Add non-development menu items before the "devToolsSeparator" separator, but after any preceeding separators. Use insertbefore="devToolsSeparator".
  • Proposal: Don't use the "prefSep" separator, as it does not exist on OSX or Linux (Gnome). We would like to put most tools menu items in their own section (or submenu), but that isn't possible until these guys are labeled with an ID.
  • Proposal: Windows only: Never add the menu item at the bottom of the Tools menu (after the Options menu item).

Context (Popup) Menu

Miscellaneous

  • Never make the user go through multiple steps to uninstall the Extension. If removal is complex, write your own uninstall script and tie it to a GUI-accessible button.
  • Proposal: If the extension sends ANY data to any internet location, a request should be made to the user for the right to send this data. The request should list the items (in non-technical terms) that will be sent, and allow the user to permanently opt-out of sending the data. The request only needs to be made once, BEFORE any data is sent. This guideline does not apply to the built-in Firefox update mechanism.