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)