We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

To-do list

There was a scripting error on this page. While it is being addressed by site editors, you can view partial content below.

Here's a list of the stuff that needs to be done to make MDC rock. Some of the included notes are just copied out of emails, and may or may not be correct at all -- they're pasted in here just so I can find all the notes in one place instead of wading through my cluttered email inbox.

Please feel free to take on any of this work, or let me know if you have any thoughts or suggestions.

MDC infrastructure

Work is underway on a substantial round of upgrades to MDC. Here's where I'm tracking progress.

To do

Phase 1
  • Done: Nutch isn't currently installed in the updated version.
  • Done: Integrate Nutch into the new 'mdc' skin.
  • Done: Fix UTF-8 encoding issue in RSS feeds.
  • Done: Re-enable new user signups (this has already been turned on and will go live with the upgrade on the 8th).

This phase is now live!

Phase 2

Work on these tasks is now underway.

  • Tweak breadcrumbs to use unencoded article names instead of requiring encoded ones (bug 380343).
  • Trying to download the search plugin for the wiki fails (bug 380344).
  • The search plugin doesn't use Nutch anyway (bug 380346).
  • Clicking Edit while not logged in should present a log in form on the edit page (bug 370956)
  • Nutch needs some work (see the bug list here)
  • Add and use a template for policy pages such as Getting commit access to Mozilla source code to make them more obvious.
  • Update pages to use the new templates for "new in Firefox x" and so forth.
  • Add new {{ titleOverride|title }} template to add an alternate title to a page's RDF, for use by the breadcrumb system (bug 380348).
    • Additionally, see if we can figure out how to override the title of the article at the top of the page with this too.
  • Done: Add a "block this user" button to the history page. Would sure make dealing with sabotage rollback/user blocks faster than having to copy and paste the user name. We got this for free with the MediaWiki 1.9.3 upgrade.
  • Done: Develop new breadcrumb system, probably based on wikitravel's.
  • Done: Fix Edit section link to not be so... prominent. Fixed for mdc skin; checkin pending on devmo skin. See bug 380152.
Phase 3
  • Work on determining what types of searches don't turn up useful results so we can update documents to turn up reliably on appropriate searches, and to add documents that should be there but aren't.
  • Figure out why the article lists on category pages, under the "*" grouping, aren't sorted alphabetically like they were on the old version of MediaWiki.
  • Need to freshly reskin MDC to match the rest of Mozilla's site. This has been deferred until resources are available.


  • Done: Upgrade to MediaWiki 1.9.x (bug filed: bug 373237)
  • Done: Install ParserFuncs and StringFuncs extensions (bug filed: bug 373238)
  • Done: Install RAP PHP extension and RDF MediaWiki extension (bug filed: bug 374465)
  • Done: Install the "New User Log" extension so we can watch for spam bots that attempt to sign up.
  • Done: Create cool new templates for tagging articles and sections that cover specific product versions
    • JavaScript (Done)
    • Firefox (Done)
    • Gecko (Done)

This work is being done on staging, tested and experimented with, then finally applied to the live MDC site.

We now have a copy of MDC running on the staging server, with all the patches and our extensions installed on top of MediaWiki 1.9.3. Amazingly, everything seems to be working, including the old skin. We need to run a series of appropriate tests to ensure that everything works.

The fact that the old breadcrumbs still work is very cool, but they still badly need replacing, so my plan is still to work on developing a new template-based system using wikitravel as a prototype.

Interface documentation

See User:Nickolay/Interface documentation notes for Nickolay's notes.

In addition:

  • Done: Add a sample interface document page that includes all the features of an interface document. See the page MDC:Sample interface document.

Doc migration

One key area of work that needs to be done is the migration of documentation from other sites to MDC.

From wikimo

We need to finish migrating all the documentation from the http://www.mozilla.org site to MDC.

  • There are three document categories:
    • Good documents that need only to be migrated
    • Good documents that need to be updated slightly when migrated
    • Documents that are so old or unhelpful that they should simply be deleted

Efforts are underway to find an intern or contractor to work on this migration work.

From XULPlanet

We also need to finish the migration of content from XULPlanet.

From the Developer's Guide:

  • Part 3: Migration is complete.
  • Part 4: Partially migrated; we need to find the parts not yet migrated and get them migrated.
  • Part 5: Not migrated.
  • Part 6: Migration is complete.

The XPCOM reference is mostly automatically generated from the IDL files. It needs to be migrated as well.

Need to document Open Java Interface

We need to document OJI. Some resources for information:

We'll have an email discussion about getting this work underway starting shortly.

Deprecated vs. obsolete

We need to differentiate between deprecated and obsolete API elements. Methods and the like that are deprecated (meaning they're expected to be removed entirely eventually) should be flagged as such at the top of the doc, with a red warning box "Deprecated: This function has been replaced by [[newfunctionname]]."

Clean up docs on building with Xcode

We have assorted documents related to using Xcode when doing Mozilla development, many of which are out of date or incomplete. I'd like to get those whipped into shape.

Assorted notes

You'll probably find that XCode will work if you quit Minefield.app and start it again. This one-time hiccup happens whenever you rebuild. There are environment variables you can set to prevent this:


I've also found that XCode doesn't always work correctly when the project is first created. Restart XCode after you've created and saved a project.

Write a doc listing all events

There are so many events that can occur; it would be nice to actually have them all documented in one place to make it easy to find them. This doc should include a list of all the interesting or useful data attached to the events.

Article(s) about doing threading in JavaScript

It's not trivial to do threading in JavaScript. It would be nice to have docs on how to do it properly:

  • What can (and, more importantly, can't) you do from JavaScript running in threads?
  • How do create threads correctly from components
  • How to use proxies to communicate between threads safely
  • Restrictions on DOM access

Some links:

Fixes to XPCOM docs

There appear to be some issues with the document How to Build an XPCOM Component in Javascript:

  • The sample code doesn't appear to work correctly; however, the code at http://books.mozdev.org/html/mozilla...-8-sect-2.html does work. This sample works fine for me, so I'm not sure what the original poster of the comment that said it doesn't work is doing wrong.
  • Change the buildid in <tt>application.ini</tt> to force xulrunner to reregister components
  • There won't be an <app>/components/comreg.dat or <app>/components/xpti.dat file, which is OK -- xulrunner will still know about the component.

The Creating XPCOM Components code samples apparently don't work correctly.

XULRunner on Mac stuff

When you --disable-libxul, the XPCOM glue doesn't have information about how to load all the dependent libraries like libgfx.dylib. In order to use xulrunner successfully in this mode, you need to set up DYLD_LIBRARY_PATH to include /Library/Frameworks/XUL.framework/Versions/1.9a1 (this may be Current instead).

Use doQuitApplication() to close the app on the Mac.

Security best practices

We could use an article on security best practices for extensions.

Look into making Xcode stationery

It would be nice to have Xcode stationery for things like XPCOM components, extensions, and plug-ins. I may not be the best person to do this, but someone ought to do it.

Misc stuff that might be helpful

Sample management

I'd like to set up our samples into version control, probably after we migrate our MDC backend stuff into SVN. Then we can create a template that could be used on pages that include sample links that would automatically generate instructions for pulling the samples from version control, as well as links to download them, if we wanted to.

Document Tags and Contributors

Contributors to this page: Sheppy, Nickolay
Last updated by: Sheppy,