Firefox3/ContentManagement:Handlers

From MozillaWiki
Jump to: navigation, search

Background

One of the new features of Firefox 3 is the ability to use a web service as a content handler. A complete functional description for this feature appears at http://wiki.mozilla.org/User:Dmose:Fx-Docs:ContentTypeProcessing.

To enable this feature, however, we need to create new mechanisms to augment the ones the operating systems provide for local applications:

  • Registering -- How does Firefox know what web services can handle each content type?
  • Defaulting -- When and which web services do we pick as defaults?
  • Invoking -- How are these web services actually invoked?

Registration

There are two mechanisms by which a web service can become a registered content handler:

Pre-registered

Mozilla will maintain a list of pre-registered web service handlers. This list will vary by locale, and will be determined by:

  • (selection criteria TBD)

Dynamically Registered Handlers

Web sites can also register themselves as content handlers according to the What-WG Custom Handlers spec by calling a javascript API. For example:

navigator.registerContentHandler('application/x-soup', 'http://example.com/soup?url=%s', 'SoupWeb™')

Defaulting

One of the pre-registered handlers will also be marked as the preferred handler, meaning that the first time a user encounters a content type, it will be the selected handler if there is no local application already registered for that content type. The user will still be presented the full list of handlers to choose an alternate, however.

  • (selection criteria TBD)

Invoking

Registered web services will be invoked according to the What-WG Custom Handlers spec and the URL pattern that was registered. For example:

http://example.com/soup?url=http%3A%2F%2Fwww.example.net%2Fchickenk%C3%AFwi.soup


Information needed for Pre-Registered Content Handler file

Protocols

"Complete" List

For Inclusion

Protocol Candidate Web Services Comments
Common
mailto: Yahoo Mail, GMail, Google Apps for your Domain, Hotmail can we localize services by language?
webcal: Google Calendar, Yahoo Calendar, Schedule World, icalExchange, 30boxes again, can we provide localized services for web-based calendaring if there is an appropriate service?
news:/snews: Google Groups
im:/xmpp:/aim:/etc. Meebo
irc:/ircs: ircatwork.com, mibbit.com
feed: Bloglines, My Yahoo!, Google here again, localized RSS feed readers?

MIME Types & Filename Extensions

"Complete" List

For Inclusion

Mime Type Extensions Candidate Web Services Comments
application/rss+xml
application/atom+xml
Google, My Yahoo, bloglines separate audio-, video-, and image-oriented feeds by sniffing?
doc
ppt
xls
ics
vcard


Questions

  • Is the list of pre-registered web service handlers part of the build or dynamically updated by checking an online master regularly?
  • Is there a need / use case for a web service to be the preferred handler, even if there is a registered local application?
  • Need to discuss with web service providers how to deal with protected URLs (behind a log-in or firewall).
    • Downloading and then uploading seems like a bad option
      • Very slow / bad user-experience for large files
      • "Leakage" a huge security concern
    • Ideally, it would be the web service provider's responsibility to figure out delegation model.

Selection Criteria

Proposed list, not final

Popularity/Reach

  • Which are the most popular? Overall? Per locale?
    • How do we determine this? What rating/reach services are available?

User Benefit/Experience

  • Which do we believe would be best for users?
    • What criteria go into this decision?
  • Which do we feel provide the best user experience?
    • UX team would weigh in here with as in-depth an analysis as they have time to provide.
  • Which require registration/login?
    • Would we prefer no-registration/login services?
  • Which have good user support?
    • Documentation, forums, wikis, etc.

Localization

  • Which are available in multiple languages?
  • Which have the best support for various languages?
    • "Being available in" and "Supporting well" can be different.
  • Which do localizers believe are most appropriate for their locale?
    • Are there "local vs global service" issues that need to be considered? (see bug 375198)

Security/Privacy

  • Which have good/excellent security?
  • Which have good/excellent privacy policies/assurances?
  • How will the content be sent to the service? Are there security/privacy concerns related to this? (ie: is there a chance of leakage when pushing content to a web service, etc.)

Reliability/Availability

  • Which are most reliable in terms of uptime and general availability?
  • Which are still under active and development/maintenance?
  • Which have a long-term proven track record for reliability, security, privacy, and overall longevity?

Web Standards

  • Which follow/use web standards as much as possible?
    • Which require Flash/Silverlight/other proprietary technologies?
  • Which best support open source and the open web?
    • Given the Mozilla Manifesto, I would assume this would make a difference.

Unique Features

  • Which provide unique features that could be of use/interest to our users? For example: mobile versions of sites or mobile clients for use on phones, etc.

Partner Issues

  • What are the parent companies involved?
    • Are there possible partner issues related to any particular service?
  • Which are most willing to work with us if issues arise?
  • Would any be interested in setting up formal partnerships? Would this be the best thing for us to do for our users?

Personal Preferences

  • Which do we like best?
    • Should this just be a matter of personal preference among the people involved at this layer of the onion?

Content Categories

List of categories and some examples.

Media

  • Photos (Flickr)
  • Audio
  • Video
  • Web Feeds (Bloglines)

Communication

  • Email (Gmail)
  • Chat (IRC/Gtalk)
  • Internet Phone (Skype/Gizmo)

Office Tools

  • Word Processor (ZoHo Writer)
  • Spreadsheet (Google Spreadsheet)
  • Presentation (ZoHo Show)
  • Publishing
  • Graphics/Photo editing (Picnik)

Organization

  • Search (Google)
  • Task Management (Remember The Milk)
  • Time + Expense Tracking
  • Bookmarks (del.icio.us)
  • Calendar (Gcal)
  • Contacts (Plaxo)
  • Maps/Directions (Google Maps)
  • File Sharing + Storage
  • Widgets (iGoogle)