Last Comment Bug 529511 - unable to setup correctly a new nework.protocol.handler via user.js or prf.js or about:config directly
: unable to setup correctly a new nework.protocol.handler via user.js or prf.js...
Status: RESOLVED WONTFIX
:
Product: Core
Classification: Components
Component: File Handling (show other bugs)
: unspecified
: x86 Linux
: -- normal (vote)
: ---
Assigned To: Nobody; OK to take it and work on it
:
Mentors:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-11-18 03:37 PST by thierry volpiatto
Modified: 2009-11-20 05:07 PST (History)
2 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments

Description thierry volpiatto 2009-11-18 03:37:32 PST
User-Agent:       Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5

Hi,
i can't setup a network.protocol.handler via about:config or user.js.

I have always this message: (in french)

,----
| Firefox doesn't know how to open this address,
| because the protocol (emacsbookmark) isn't associated with any program.
`----

However, i finish to setup that with success by modifying manually the file:

mimeTypes.rdf

But i don't think i have to do that.
Users that will use my application should be able to setup a protocol handler
easily from about:config with intructions.

Details:

The goal is to bookmark a page from firefox in standard Emacs bookmarks.

What i do:

1) i setup a bookmarklet called emacsbookmark:

,----
| javascript:location.href='emacsbookmark://' + location.href + '::emacsbookmark::' + escape(document.title)
`----

2) I add protocol handlers from my user.js:

,----
| user_pref("network.protocol-handler.external.emacsbookmark", true);
| user_pref("network.protocol-handler.app.emacsbookmark", "/home/thierry/bin/emacsbookmark");
`----

3) i modify mimeTypes.rdf (i will try to attach this file).

So when i don't do 3, i have error:

,----
| Firefox doesn't know how to open this address,
| because the protocol (lastfm) isn't associated with any program.
`----

After step 3, i am able to bookmark in emacs from firefox.
(See http://www.emacswiki.org/cgi-bin/emacs/BookmarkExtension)

But i think i have not to do that.Things should be more simple as they were
if i remember well in firefox version < 3.

Did i miss something?

Thanks.


Reproducible: Always

Steps to Reproduce:
1. Create a new protocol from user.js or pref.js or about:config:

,----
| user_pref("network.protocol-handler.external.emacsbookmark", true);
| user_pref("network.protocol-handler.app.emacsbookmark", "/home/thierry/bin/emacsbookmark");
`----

2. Create a script "/home/thierry/bin/emacsbookmark" (or whatever path you want)

,----
| if [ -z "$1" ]; then
|     echo "$0: Error: no arguments given!" 1>&2
|     exit 1
| fi
| 
| # To test uncomment following line
| echo $1 $(date) >> /tmp/bmkext.out
`----

3. Create a bookmarklet:(emacsbookmark)

,----
| javascript:location.href='emacsbookmark://' + location.href + '::emacsbookmark::' + escape(document.title)
`----

Restart firefox and click on bookmarklet:
You will have error:

,----
| Firefox doesn't know how to open this address,
| because the protocol (lastfm) isn't associated with any program.
`----

Actual Results:  
Firefox doesn't know how to open this address,
because the protocol (lastfm) isn't associated with any program.


Expected Results:  
You should have something in /tmp/bmkext.out


I have to modify mimeTypes.rdf:

<?xml version="1.0"?>
<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
         xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <RDF:Description RDF:about="urn:mimetype:externalApplication:application/force-download"
                   NC:prettyName=""
                   NC:path="" />
  <RDF:Description RDF:about="urn:scheme:handler:webcal"
                   NC:alwaysAsk="true">
    <NC:possibleApplication RDF:resource="urn:handler:web:http://30boxes.com/external/widget?refer=ff&amp;url=%s"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:handler:web:http://30boxes.com/external/widget?refer=ff&amp;url=%s"
                   NC:prettyName="30 Boxes"
                   NC:uriTemplate="http://30boxes.com/external/widget?refer=ff&amp;url=%s" />
  <RDF:Description RDF:about="urn:handler:web:http://compose.mail.yahoo.com/?To=%s"
                   NC:prettyName="Yahoo! Mail"
                   NC:uriTemplate="http://compose.mail.yahoo.com/?To=%s" />
  <RDF:Description RDF:about="urn:schemes">
    <NC:Protocol-Schemes RDF:resource="urn:schemes:root"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:mimetype:application/force-download"
                   NC:fileExtensions="pdf"
                   NC:description=""
                   NC:value="application/force-download"
                   NC:editable="true">
    <NC:handlerProp RDF:resource="urn:mimetype:handler:application/force-download"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:root"
                   NC:fr_defaultHandlersVersion="2"
                   NC:en-US_defaultHandlersVersion="3" />
  <RDF:Description RDF:about="urn:scheme:webcal"
                   NC:value="webcal">
    <NC:handlerProp RDF:resource="urn:scheme:handler:webcal"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:mimetype:application/pdf"
                   NC:fileExtensions="pdf"
                   NC:description=""
                   NC:value="application/pdf"
                   NC:editable="true">
    <NC:handlerProp RDF:resource="urn:mimetype:handler:application/pdf"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:scheme:externalApplication:annotation"
                   NC:prettyName="remember"
                   NC:path="/home/thierry/bin/remember" />
  <RDF:Description RDF:about="urn:scheme:externalApplication:emacsbookmark"
                   NC:prettyName="emacsbookmark"
                   NC:path="/home/thierry/bin/emacsbookmark" />
  <RDF:Description RDF:about="urn:mimetype:externalApplication:application/pdf"
                   NC:prettyName=""
                   NC:path="" />
  <RDF:Description RDF:about="urn:mimetype:handler:application/x-tar"
                   NC:alwaysAsk="true"
                   NC:saveToDisk="true">
    <NC:externalApplication RDF:resource="urn:mimetype:externalApplication:application/x-tar"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:handler:local:/home/thierry/bin/call-gnus.sh"
                   NC:prettyName="call-gnus.sh"
                   NC:path="/home/thierry/bin/call-gnus.sh" />
  <RDF:Description RDF:about="urn:scheme:ircs"
                   NC:value="ircs">
    <NC:handlerProp RDF:resource="urn:scheme:handler:ircs"/>
  </RDF:Description>
  <RDF:Seq RDF:about="urn:mimetypes:root">
    <RDF:li RDF:resource="urn:mimetype:audio/x-scpls"/>
    <RDF:li RDF:resource="urn:mimetype:application/force-download"/>
    <RDF:li RDF:resource="urn:mimetype:application/x-tar"/>
    <RDF:li RDF:resource="urn:mimetype:application/pdf"/>
    <RDF:li RDF:resource="urn:mimetype:application/postscript"/>
  </RDF:Seq>
  <RDF:Description RDF:about="urn:mimetype:handler:audio/x-scpls"
                   NC:alwaysAsk="false"
                   NC:useSystemDefault="true">
    <NC:externalApplication RDF:resource="urn:mimetype:externalApplication:audio/x-scpls"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:mimetype:externalApplication:audio/x-scpls"
                   NC:prettyName=""
                   NC:path="" />
  <RDF:Description RDF:about="urn:scheme:irc"
                   NC:value="irc">
    <NC:handlerProp RDF:resource="urn:scheme:handler:irc"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:mimetype:application/x-tar"
                   NC:value="application/x-tar"
                   NC:editable="true"
                   NC:fileExtensions="tar"
                   NC:description="">
    <NC:handlerProp RDF:resource="urn:mimetype:handler:application/x-tar"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:scheme:handler:mailto"
                   NC:alwaysAsk="false">
    <NC:possibleApplication RDF:resource="urn:handler:web:https://mail.google.com/mail/?extsrc=mailto&amp;url=%s"/>
    <NC:possibleApplication RDF:resource="urn:handler:web:http://compose.mail.yahoo.com/?To=%s"/>
    <NC:possibleApplication RDF:resource="urn:handler:local:/home/thierry/bin/call-gnus.sh"/>
    <NC:externalApplication RDF:resource="urn:scheme:externalApplication:mailto"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:scheme:handler:irc"
                   NC:alwaysAsk="true">
    <NC:possibleApplication RDF:resource="urn:handler:web:https://www.mibbit.com/?url=%s"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:scheme:mailto"
                   NC:value="mailto">
    <NC:handlerProp RDF:resource="urn:scheme:handler:mailto"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:mimetype:application/postscript"
                   NC:value="application/postscript"
                   NC:editable="true"
                   NC:description="">
    <NC:fileExtensions>ps</NC:fileExtensions>
    <NC:fileExtensions>ai</NC:fileExtensions>
    <NC:fileExtensions>eps</NC:fileExtensions>
    <NC:handlerProp RDF:resource="urn:mimetype:handler:application/postscript"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:scheme:externalApplication:remember"
                   NC:prettyName="remember"
                   NC:path="/home/thierry/bin/remember" />
  <RDF:Description RDF:about="urn:scheme:handler:annotation"
                   NC:alwaysAsk="false">
    <NC:possibleApplication RDF:resource="urn:handler:local:/home/thierry/bin/remember"/>
    <NC:externalApplication RDF:resource="urn:scheme:externalApplication:annotation"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:scheme:externalApplication:emacsbookmark"
                   NC:prettyName="emacsbookmark"
                   NC:path="/home/thierry/bin/emacsbookmark" />
  <RDF:Description RDF:about="urn:scheme:handler:emacsbookmark"
                   NC:alwaysAsk="false">
    <NC:possibleApplication RDF:resource="urn:handler:local:/home/thierry/bin/emacsbookmark"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:handler:web:https://mail.google.com/mail/?extsrc=mailto&amp;url=%s"
                   NC:prettyName="Gmail"
                   NC:uriTemplate="https://mail.google.com/mail/?extsrc=mailto&amp;url=%s" />
  <RDF:Description RDF:about="urn:mimetype:handler:application/pdf"
                   NC:alwaysAsk="true"
                   NC:saveToDisk="true"
                   NC:useSystemDefault="false">
    <NC:externalApplication RDF:resource="urn:mimetype:externalApplication:application/pdf"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:scheme:externalApplication:mailto"
                   NC:prettyName="call-gnus.sh"
                   NC:path="/home/thierry/bin/call-gnus.sh" />
  <RDF:Description RDF:about="urn:mimetypes">
    <NC:MIME-types RDF:resource="urn:mimetypes:root"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:scheme:handler:remember"
                   NC:alwaysAsk="false">
    <NC:possibleApplication RDF:resource="urn:handler:local:/home/thierry/bin/remember"/>
    <NC:externalApplication RDF:resource="urn:scheme:externalApplication:remember"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:mimetype:handler:application/postscript"
                   NC:alwaysAsk="true"
                   NC:saveToDisk="true">
    <NC:externalApplication RDF:resource="urn:mimetype:externalApplication:application/postscript"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:handler:web:https://www.mibbit.com/?url=%s"
                   NC:prettyName="Mibbit"
                   NC:uriTemplate="https://www.mibbit.com/?url=%s" />
  <RDF:Seq RDF:about="urn:schemes:root">
    <RDF:li RDF:resource="urn:scheme:mailto"/>
    <RDF:li RDF:resource="urn:scheme:webcal"/>
    <RDF:li RDF:resource="urn:scheme:remember"/>
    <RDF:li RDF:resource="urn:scheme:annotation"/>
    <RDF:li RDF:resource="urn:scheme:emacsbookmark"/>
    <RDF:li RDF:resource="urn:scheme:irc"/>
    <RDF:li RDF:resource="urn:scheme:ircs"/>
  </RDF:Seq>
  <RDF:Description RDF:about="urn:handler:local:/home/thierry/bin/remember"
                   NC:prettyName="remember"
                   NC:path="/home/thierry/bin/remember" />
  <RDF:Description RDF:about="urn:handler:local:/home/thierry/bin/emacsbookmark"
                   NC:prettyName="emacsbookmark"
                   NC:path="/home/thierry/bin/emacsbookmark" />
  <RDF:Description RDF:about="urn:mimetype:audio/x-scpls"
                   NC:value="audio/x-scpls"
                   NC:editable="true"
                   NC:fileExtensions="pls"
                   NC:description="">
    <NC:handlerProp RDF:resource="urn:mimetype:handler:audio/x-scpls"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:mimetype:handler:application/force-download"
                   NC:alwaysAsk="true"
                   NC:useSystemDefault="true"
                   NC:saveToDisk="false">
    <NC:externalApplication RDF:resource="urn:mimetype:externalApplication:application/force-download"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:scheme:annotation"
                   NC:value="annotation">
    <NC:handlerProp RDF:resource="urn:scheme:handler:annotation"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:scheme:remember"
                   NC:value="remember">
    <NC:handlerProp RDF:resource="urn:scheme:handler:remember"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:scheme:emacsbookmark"
                   NC:value="emacsbookmark">
    <NC:handlerProp RDF:resource="urn:scheme:handler:emacsbookmark"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:mimetype:externalApplication:application/x-tar"
                   NC:prettyName=""
                   NC:path="" />
  <RDF:Description RDF:about="urn:scheme:handler:ircs"
                   NC:alwaysAsk="true">
    <NC:possibleApplication RDF:resource="urn:handler:web:https://www.mibbit.com/?url=%s"/>
  </RDF:Description>
</RDF:RDF>
Comment 1 thierry volpiatto 2009-11-18 10:16:31 PST
(In reply to comment #0)
> User-Agent:       Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.1.5)
> Gecko/20091102 Firefox/3.5.5
> Build Identifier: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.1.5)
> Gecko/20091102 Firefox/3.5.5
> 
> Hi,
> i can't setup a network.protocol.handler via about:config or user.js.
> 
> I have always this message: (in french)
> 
> ,----
> | Firefox doesn't know how to open this address,
> | because the protocol (emacsbookmark) isn't associated with any program.
> `----
> 
> However, i finish to setup that with success by modifying manually the file:
> 
> mimeTypes.rdf
> 
> But i don't think i have to do that.
> Users that will use my application should be able to setup a protocol handler
> easily from about:config with intructions.
> 
> Details:
> 
> The goal is to bookmark a page from firefox in standard Emacs bookmarks.
> 
> What i do:
> 
> 1) i setup a bookmarklet called emacsbookmark:
> 
> ,----
> | javascript:location.href='emacsbookmark://' + location.href +
> '::emacsbookmark::' + escape(document.title)
> `----
> 
> 2) I add protocol handlers from my user.js:
> 
> ,----
> | user_pref("network.protocol-handler.external.emacsbookmark", true);
> | user_pref("network.protocol-handler.app.emacsbookmark",
> "/home/thierry/bin/emacsbookmark");
> `----
> 
> 3) i modify mimeTypes.rdf (i will try to attach this file).
> 
> So when i don't do 3, i have error:
> 
> ,----
> | Firefox doesn't know how to open this address,
> | because the protocol (lastfm) isn't associated with any program.
> `----
> 
> After step 3, i am able to bookmark in emacs from firefox.
> (See http://www.emacswiki.org/cgi-bin/emacs/BookmarkExtension)
> 
> But i think i have not to do that.Things should be more simple as they were
> if i remember well in firefox version < 3.
> 
> Did i miss something?
> 
> Thanks.
> 
> 
> Reproducible: Always
> 
> Steps to Reproduce:
> 1. Create a new protocol from user.js or pref.js or about:config:
> 
> ,----
> | user_pref("network.protocol-handler.external.emacsbookmark", true);
> | user_pref("network.protocol-handler.app.emacsbookmark",
> "/home/thierry/bin/emacsbookmark");
> `----
> 
> 2. Create a script "/home/thierry/bin/emacsbookmark" (or whatever path you
> want)
> 
> ,----
> | if [ -z "$1" ]; then
> |     echo "$0: Error: no arguments given!" 1>&2
> |     exit 1
> | fi
> | 
> | # To test uncomment following line
> | echo $1 $(date) >> /tmp/bmkext.out
> `----
> 
> 3. Create a bookmarklet:(emacsbookmark)
> 
> ,----
> | javascript:location.href='emacsbookmark://' + location.href +
> '::emacsbookmark::' + escape(document.title)
> `----
> 
> Restart firefox and click on bookmarklet:
> You will have error:
> 
> ,----
> | Firefox doesn't know how to open this address,
> | because the protocol (lastfm) isn't associated with any program.
> `----
> 
> Actual Results:  
> Firefox doesn't know how to open this address,
> because the protocol (lastfm) isn't associated with any program.
> 
> 
> Expected Results:  
> You should have something in /tmp/bmkext.out
> 
> 
> I have to modify mimeTypes.rdf:
> 
> <?xml version="1.0"?>
> <RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
>          xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
>   <RDF:Description
> RDF:about="urn:mimetype:externalApplication:application/force-download"
>                    NC:prettyName=""
>                    NC:path="" />
>   <RDF:Description RDF:about="urn:scheme:handler:webcal"
>                    NC:alwaysAsk="true">
>     <NC:possibleApplication
> RDF:resource="urn:handler:web:http://30boxes.com/external/widget?refer=ff&amp;url=%s"/>
>   </RDF:Description>
>   <RDF:Description
> RDF:about="urn:handler:web:http://30boxes.com/external/widget?refer=ff&amp;url=%s"
>                    NC:prettyName="30 Boxes"
>                   
> NC:uriTemplate="http://30boxes.com/external/widget?refer=ff&amp;url=%s" />
>   <RDF:Description
> RDF:about="urn:handler:web:http://compose.mail.yahoo.com/?To=%s"
>                    NC:prettyName="Yahoo! Mail"
>                    NC:uriTemplate="http://compose.mail.yahoo.com/?To=%s" />
>   <RDF:Description RDF:about="urn:schemes">
>     <NC:Protocol-Schemes RDF:resource="urn:schemes:root"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:mimetype:application/force-download"
>                    NC:fileExtensions="pdf"
>                    NC:description=""
>                    NC:value="application/force-download"
>                    NC:editable="true">
>     <NC:handlerProp
> RDF:resource="urn:mimetype:handler:application/force-download"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:root"
>                    NC:fr_defaultHandlersVersion="2"
>                    NC:en-US_defaultHandlersVersion="3" />
>   <RDF:Description RDF:about="urn:scheme:webcal"
>                    NC:value="webcal">
>     <NC:handlerProp RDF:resource="urn:scheme:handler:webcal"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:mimetype:application/pdf"
>                    NC:fileExtensions="pdf"
>                    NC:description=""
>                    NC:value="application/pdf"
>                    NC:editable="true">
>     <NC:handlerProp RDF:resource="urn:mimetype:handler:application/pdf"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:scheme:externalApplication:annotation"
>                    NC:prettyName="remember"
>                    NC:path="/home/thierry/bin/remember" />
>   <RDF:Description RDF:about="urn:scheme:externalApplication:emacsbookmark"
>                    NC:prettyName="emacsbookmark"
>                    NC:path="/home/thierry/bin/emacsbookmark" />
>   <RDF:Description RDF:about="urn:mimetype:externalApplication:application/pdf"
>                    NC:prettyName=""
>                    NC:path="" />
>   <RDF:Description RDF:about="urn:mimetype:handler:application/x-tar"
>                    NC:alwaysAsk="true"
>                    NC:saveToDisk="true">
>     <NC:externalApplication
> RDF:resource="urn:mimetype:externalApplication:application/x-tar"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:handler:local:/home/thierry/bin/call-gnus.sh"
>                    NC:prettyName="call-gnus.sh"
>                    NC:path="/home/thierry/bin/call-gnus.sh" />
>   <RDF:Description RDF:about="urn:scheme:ircs"
>                    NC:value="ircs">
>     <NC:handlerProp RDF:resource="urn:scheme:handler:ircs"/>
>   </RDF:Description>
>   <RDF:Seq RDF:about="urn:mimetypes:root">
>     <RDF:li RDF:resource="urn:mimetype:audio/x-scpls"/>
>     <RDF:li RDF:resource="urn:mimetype:application/force-download"/>
>     <RDF:li RDF:resource="urn:mimetype:application/x-tar"/>
>     <RDF:li RDF:resource="urn:mimetype:application/pdf"/>
>     <RDF:li RDF:resource="urn:mimetype:application/postscript"/>
>   </RDF:Seq>
>   <RDF:Description RDF:about="urn:mimetype:handler:audio/x-scpls"
>                    NC:alwaysAsk="false"
>                    NC:useSystemDefault="true">
>     <NC:externalApplication
> RDF:resource="urn:mimetype:externalApplication:audio/x-scpls"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:mimetype:externalApplication:audio/x-scpls"
>                    NC:prettyName=""
>                    NC:path="" />
>   <RDF:Description RDF:about="urn:scheme:irc"
>                    NC:value="irc">
>     <NC:handlerProp RDF:resource="urn:scheme:handler:irc"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:mimetype:application/x-tar"
>                    NC:value="application/x-tar"
>                    NC:editable="true"
>                    NC:fileExtensions="tar"
>                    NC:description="">
>     <NC:handlerProp RDF:resource="urn:mimetype:handler:application/x-tar"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:scheme:handler:mailto"
>                    NC:alwaysAsk="false">
>     <NC:possibleApplication
> RDF:resource="urn:handler:web:https://mail.google.com/mail/?extsrc=mailto&amp;url=%s"/>
>     <NC:possibleApplication
> RDF:resource="urn:handler:web:http://compose.mail.yahoo.com/?To=%s"/>
>     <NC:possibleApplication
> RDF:resource="urn:handler:local:/home/thierry/bin/call-gnus.sh"/>
>     <NC:externalApplication
> RDF:resource="urn:scheme:externalApplication:mailto"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:scheme:handler:irc"
>                    NC:alwaysAsk="true">
>     <NC:possibleApplication
> RDF:resource="urn:handler:web:https://www.mibbit.com/?url=%s"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:scheme:mailto"
>                    NC:value="mailto">
>     <NC:handlerProp RDF:resource="urn:scheme:handler:mailto"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:mimetype:application/postscript"
>                    NC:value="application/postscript"
>                    NC:editable="true"
>                    NC:description="">
>     <NC:fileExtensions>ps</NC:fileExtensions>
>     <NC:fileExtensions>ai</NC:fileExtensions>
>     <NC:fileExtensions>eps</NC:fileExtensions>
>     <NC:handlerProp
> RDF:resource="urn:mimetype:handler:application/postscript"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:scheme:externalApplication:remember"
>                    NC:prettyName="remember"
>                    NC:path="/home/thierry/bin/remember" />
>   <RDF:Description RDF:about="urn:scheme:handler:annotation"
>                    NC:alwaysAsk="false">
>     <NC:possibleApplication
> RDF:resource="urn:handler:local:/home/thierry/bin/remember"/>
>     <NC:externalApplication
> RDF:resource="urn:scheme:externalApplication:annotation"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:scheme:externalApplication:emacsbookmark"
>                    NC:prettyName="emacsbookmark"
>                    NC:path="/home/thierry/bin/emacsbookmark" />
>   <RDF:Description RDF:about="urn:scheme:handler:emacsbookmark"
>                    NC:alwaysAsk="false">
>     <NC:possibleApplication
> RDF:resource="urn:handler:local:/home/thierry/bin/emacsbookmark"/>
>   </RDF:Description>
>   <RDF:Description
> RDF:about="urn:handler:web:https://mail.google.com/mail/?extsrc=mailto&amp;url=%s"
>                    NC:prettyName="Gmail"
>                   
> NC:uriTemplate="https://mail.google.com/mail/?extsrc=mailto&amp;url=%s" />
>   <RDF:Description RDF:about="urn:mimetype:handler:application/pdf"
>                    NC:alwaysAsk="true"
>                    NC:saveToDisk="true"
>                    NC:useSystemDefault="false">
>     <NC:externalApplication
> RDF:resource="urn:mimetype:externalApplication:application/pdf"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:scheme:externalApplication:mailto"
>                    NC:prettyName="call-gnus.sh"
>                    NC:path="/home/thierry/bin/call-gnus.sh" />
>   <RDF:Description RDF:about="urn:mimetypes">
>     <NC:MIME-types RDF:resource="urn:mimetypes:root"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:scheme:handler:remember"
>                    NC:alwaysAsk="false">
>     <NC:possibleApplication
> RDF:resource="urn:handler:local:/home/thierry/bin/remember"/>
>     <NC:externalApplication
> RDF:resource="urn:scheme:externalApplication:remember"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:mimetype:handler:application/postscript"
>                    NC:alwaysAsk="true"
>                    NC:saveToDisk="true">
>     <NC:externalApplication
> RDF:resource="urn:mimetype:externalApplication:application/postscript"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:handler:web:https://www.mibbit.com/?url=%s"
>                    NC:prettyName="Mibbit"
>                    NC:uriTemplate="https://www.mibbit.com/?url=%s" />
>   <RDF:Seq RDF:about="urn:schemes:root">
>     <RDF:li RDF:resource="urn:scheme:mailto"/>
>     <RDF:li RDF:resource="urn:scheme:webcal"/>
>     <RDF:li RDF:resource="urn:scheme:remember"/>
>     <RDF:li RDF:resource="urn:scheme:annotation"/>
>     <RDF:li RDF:resource="urn:scheme:emacsbookmark"/>
>     <RDF:li RDF:resource="urn:scheme:irc"/>
>     <RDF:li RDF:resource="urn:scheme:ircs"/>
>   </RDF:Seq>
>   <RDF:Description RDF:about="urn:handler:local:/home/thierry/bin/remember"
>                    NC:prettyName="remember"
>                    NC:path="/home/thierry/bin/remember" />
>   <RDF:Description
> RDF:about="urn:handler:local:/home/thierry/bin/emacsbookmark"
>                    NC:prettyName="emacsbookmark"
>                    NC:path="/home/thierry/bin/emacsbookmark" />
>   <RDF:Description RDF:about="urn:mimetype:audio/x-scpls"
>                    NC:value="audio/x-scpls"
>                    NC:editable="true"
>                    NC:fileExtensions="pls"
>                    NC:description="">
>     <NC:handlerProp RDF:resource="urn:mimetype:handler:audio/x-scpls"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:mimetype:handler:application/force-download"
>                    NC:alwaysAsk="true"
>                    NC:useSystemDefault="true"
>                    NC:saveToDisk="false">
>     <NC:externalApplication
> RDF:resource="urn:mimetype:externalApplication:application/force-download"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:scheme:annotation"
>                    NC:value="annotation">
>     <NC:handlerProp RDF:resource="urn:scheme:handler:annotation"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:scheme:remember"
>                    NC:value="remember">
>     <NC:handlerProp RDF:resource="urn:scheme:handler:remember"/>
>   </RDF:Description>
>   <RDF:Description RDF:about="urn:scheme:emacsbookmark"
>                    NC:value="emacsbookmark">
>     <NC:handlerProp RDF:resource="urn:scheme:handler:emacsbookmark"/>
>   </RDF:Description>
>   <RDF:Description
> RDF:about="urn:mimetype:externalApplication:application/x-tar"
>                    NC:prettyName=""
>                    NC:path="" />
>   <RDF:Description RDF:about="urn:scheme:handler:ircs"
>                    NC:alwaysAsk="true">
>     <NC:possibleApplication
> RDF:resource="urn:handler:web:https://www.mibbit.com/?url=%s"/>
>   </RDF:Description>
> </RDF:RDF>


I have pasted text to have the english comment, you will find in some place lastfm: That's wrong, please read instead:

,----
| Firefox doesn't know how to open this address,
| because the protocol (emacsbookmark) isn't associated with any program.
`----
Comment 2 Christian :Biesinger (don't email me, ping me on IRC) 2009-11-19 06:06:11 PST
Yeah... this functionality has intentionally been removed in bug 389732. I'm not sure what the current recommended way to do this is. You could probably set up a default application via gconf somehow.
Comment 3 Dan Mosedale (:dmose) 2009-11-19 09:52:33 PST
Having your application (or an installer script) register itself with the desktop as a handler for the protocol in question is indeed the way to go.
Comment 4 thierry volpiatto 2009-11-19 13:07:33 PST
(In reply to comment #3)
> Having your application (or an installer script) register itself with the
> desktop as a handler for the protocol in question is indeed the way to go.

Which desktop, what if there is no desktop.
Here for example i don't use gnome.

So for an installer script, we will have to write to mimeTypes.rdf.
Why Firefox is not able to read a mailcap file or a mime.types file?

For an installer script, can you give more info on what to do exactly.

Also, the doc of mozilla should be updated, the old behavior of installation of protocol handler is wrong now.
Comment 5 Christian :Biesinger (don't email me, ping me on IRC) 2009-11-19 13:30:56 PST
(In reply to comment #4)
> So for an installer script, we will have to write to mimeTypes.rdf.
> Why Firefox is not able to read a mailcap file or a mime.types file?

Firefox does read mailcap and mime.types. Of course that doesn't help you for specifying protocol handlers...

> Also, the doc of mozilla should be updated, the old behavior of installation of
> protocol handler is wrong now.

Which document is this?
Comment 6 Christian :Biesinger (don't email me, ping me on IRC) 2009-11-19 13:32:48 PST
As for an installer script, try http://twoday.tuwien.ac.at/pub/topics/k(r)ampf+mit+dem+computer/
Comment 7 thierry volpiatto 2009-11-19 13:43:29 PST
(In reply to comment #5)

> Which document is this?

http://kb.mozillazine.org/Register_protocol
Comment 8 thierry volpiatto 2009-11-19 13:58:47 PST
(In reply to comment #6)
> As for an installer script, try
> http://twoday.tuwien.ac.at/pub/topics/k(r)ampf+mit+dem+computer/

Ok thanks, i will have a look, but that use gconf, it seem like gconf is oriented gnome desktop.

Users of minimal desktop should be able to setup handlers without gnome tools.
(i use stumpwm window manager).

So the only way i have actually is editing the mimeTypes.rdf file.

Can you explain why Firefox upstream don't want to create a simple tool to setup that?

I am not sure a desktop oriented configuration for firefox is the good way to do.

Why the menu applications in firefox preferences is not configurable?
Comment 9 Dan Mosedale (:dmose) 2009-11-19 14:58:41 PST
It's not so much a matter of "doesn't want to create a simple tool" as it is a matter of "has many higher priority items it wants to devote effort to first".  If you're interested in writing such a tool and making it available, that would be great.

You're right that the MozillaZine page should be updated with the caveat that these preferences are no longer supported.
Comment 10 Dan Mosedale (:dmose) 2009-11-19 14:59:53 PST
Note that if there is no protocol handler registered for a given protocol, current versions of Firefox offer the user a dialog for configuring an executable which I would expect to work for your use case.
Comment 11 thierry volpiatto 2009-11-19 22:09:36 PST
(In reply to comment #10)
> Note that if there is no protocol handler registered for a given protocol,
> current versions of Firefox offer the user a dialog for configuring an
> executable which I would expect to work for your use case.

No it didn't work.
I think it work when you add a protocol to a known mimetype.
In my case the protocol is unknown as mimetype, and i fall back to the message saying the protocol is not linked to any program.
Comment 12 thierry volpiatto 2009-11-19 22:18:21 PST
(In reply to comment #9)
If i try to do such a tool, i need more infos on what to do, or links to documentation pages.
If you provide me a little road map on what to do, i could maybe make such a tool.
Comment 13 Christian :Biesinger (don't email me, ping me on IRC) 2009-11-20 05:07:24 PST
(In reply to comment #7)
> (In reply to comment #5)
> 
> > Which document is this?
> 
> http://kb.mozillazine.org/Register_protocol

Ah OK. Mozillazine documentation isn't official Mozilla documentation. Anyway, I fixed the document.

Note that you don't have to use Gnome for this to work. You only need to have some of its libraries installed.

Note You need to log in before you can comment on or make changes to this bug.