: Etherpad users! We are developing an extension that will allow you to create pages from etherpads quickly and easily. Please visit our sandbox and help us test it.

FizzyPop

From MozillaWiki
Jump to: navigation, search

FizzyPop is the codename for a web application centered around creating Mozilla development projects.

Objective

Create a simple, straight forward web-based system to generate code scaffolding for the many different types of Mozilla projects. The basic architecture plan includes creating a client-side JavaScript application that uses a web-service to generate the actual scaffolding. A secondary goal is to create a rich web client that shows the flexibility and power of writing web applications using open web technologies.

Implementation

The idea is to create a browser-based web client to collect information about a project and submit the data to a JSON-based web-service, which will generate the scaffolding from a series of pre-built templates. The web-service will package the generated files into an archive which is then downloaded to the user. The client portion will be JavaScript, along with a JS DHTML library. The server portion implementation technology is undecided as of now. The current front-runner is PHP & Smarty templates, but other ideas are welcome.

Milestones

M1: Basic Extension

  • Create simple web application to support simple extension projects (use Extension Wizard as a feature guide)
    • Toolbar
    • Sidebar
    • Menus (Main / Context)
    • About box
    • Options dialog
  • Basic validation of data
  • Post to web service to create a project archive
  • Templates for commonly used files (eg. XUL with appropriate namespace. Anything else?)

M2: Beyond Extensions

  • Add support for JS XPCOM components (See JS XPCOM wizard)
    • Special support for XUL template query processor
    • Special support for autocomplete data source
  • Add XULRunner application support
    • Basic application project
    • Simple "quick applications" templates
    • UI feature/component support

M3: Richer Extensions and Richer Web App

  • Cleanup the overall UI of the web client and use whatever web technology we can to make the whole app look and feel richer
  • Add links to MDC topics wherever possible.
  • Add richer UI element support
    • Toolbar button editor
    • Menuitem editor, including show/hide (enable/disable) support
    • Preference item editor
  • Add scaffolding support for common extension code features
    • Common event handler stubs (page load)
    • Observer notifications (quit, http-request, http-response)
    • Preference watchers
  • Richer XULRunner application support
    • Auto-update
    • MAR generation

Other Ideas:

  • Add binary project support (C++ components)
  • Add JavaXPCOM / PyXPCOM support

Questions

  • Should projects be Mozilla buildable? or just flat file archives?
  • Should projects support native compiler projects (Visual Studio solutions)?
  • How many applications are we supporting in the future? (Firefox, Songbird, Thunderbird, Sunbird, Prism, Nvu, McCoy, Flock, Seamonkey)