Contents
1. set_protocol_handler
Protocol handlers are configured with set_protocol_handler. You can configure a protocol to be handled internally, externally, or to prompt for an external handler. The call form looks like this:
set_protocol_handler(protocol, handler);
1.1. protocol
The protocol being configured. In other words, the scheme portion of the url, with no colon.
1.2. handler
- true
- Handle the protocol internally. That is, have Gecko try to handle it.
- null
- Prompt for a handler when attempting to open a link of this protocol.
- an nsIFile
Use the executable indicated by the nsIFile as a handler. You can get an nsIFile from make_file or find_file_in_path.
- a string
- The string is a template url for a web service for handling this protocol. The sequence "%s" in the string will be replaced by the url-encoded url of the resource.
2. Notes
This kind of protocol handler only affects what happens when clicking on (or following) a hyperlink. It has no effect on reloading, or any commands that cause an url to be loaded in a new buffer or window, such as command-line remoting or clicks-in-new-buffer.
3. Examples
3.1. Handle mailto links with a shell script
set_protocol_handler("mailto", make_file("~/bin/handle-mailto"));
3.2. Handle mailto links with Thunderbird
set_protocol_handler("mailto", find_file_in_path("thunderbird"));
3.3. Handle mailto links with GMail
set_protocol_handler("mailto", "https://mail.google.com/mail/?extsrc=mailto&url=%s");
3.4. Handle magnet links with Transmission
set_protocol_handler("magnet", find_file_in_path("transmission-gtk"));