Firefox3/ContentManagement:Handlers
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, Hotmail | |
webcal | Google Calendar | |
news/snews | Google News | |
irc/ircs | ||
feed | Google, My Yahoo!, Bloglines |
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.
- Downloading and then uploading seems like a bad option