Firefox/Features/Firefox Protocol

From MozillaWiki
Jump to: navigation, search
Feature Status ETA Owner
Firefox/Features/Firefox_Protocol Still uncovering things that make the chrome protocol unique that we want to emulate 2011-05-13 Mossop


Current attempts to add in-content UI like the add-ons manager have used the about: protocol. While we mostly hide the url bar the about protocol still imposes restrictions on what we can do in the page. Certain page features that work fine for the chrome protocol do not work for the about protocol. Fixing the about protocol to work is a challenge because it contains both privileged and unprivileged pages.

This feature proposes creating a new protocol handler that supports everything that chrome does but is more user friendly


  • Feature manager: Mossop
  • Development lead: Mossop
  • UX lead:
  • QA:
  • Security:

Release Requirements

Next Steps

  • Make a list of all the features of the chrome protocol that we want to keep and figure out whether those features really need to be specific to the chrome protocol
  • Decide what the protocol should be called, paying attention to other applications' needs
  • Design an API allowing add-ons and applications to plug-in url mappings

API Design


  • Create a new protocol handler predominantly for use with in-content UI
  • Allow add-ons and the application to add content to the protocol easily
  • Make any pages using this protocol display as in-content UI by default
  • Support features from the chrome protocol:
    • Always privileged
    • Overlays
    • XUL Persistence
    • Fastload
    • Load DTDs
  • Support features from the about protocol:
    • Have a simple mechanism for mapping one URL to another, e.g. firefox:addons -> chrome://mozapps/content/extensions/extensions.xul
  • Custom display in the address bar, we can tinker a little with what it looks like here so long as it is still parsable as an URL
  • Allow prefix mapping, e.g. firefox:addons/* -> chrome://mozapps/content/extensions/extensions.xul
  • Allow pushState to change the url dynamically
  • IndexedDB?
  • localstorage?