*_retval = false;
nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);
<--- we check for mime type, and not for protocol handler. The older code always would fall back to protocol handler based of mailcap.
We need to fix GetFromType(mSchemeOrType), to handle scheme ( protocol).
This is seen from here
NS_IMETHODIMP
nsGIOService::GetAppForMimeType(const nsACString& aMimeType, nsIGIOMimeApp** aApp)
{
...
GAppInfo *app_info = g_app_info_get_default_for_type(content_type, false);
...
<-- We probably need to add g_app_info_get_default_for_uri_scheme () , if app_info is null.
This seems to be a bug with gio handler
NS_IMETHODIMP :GetHasDefaultH andler( bool *_retval)
nsMIMEInfoUnix:
{
...
*_retval = false; nsMIMEInfoBase> mimeInfo = nsGNOMERegistry ::GetFromType( mSchemeOrType) ;
nsRefPtr<
<--- we check for mime type, and not for protocol handler. The older code always would fall back to protocol handler based of mailcap.
We need to fix GetFromType( mSchemeOrType) , to handle scheme ( protocol).
This is seen from here
NS_IMETHODIMP :GetAppForMimeT ype(const nsACString& aMimeType,
nsIGIOMimeA pp** aApp) get_default_ for_type( content_ type, false); get_default_ for_uri_ scheme () , if app_info is null.
nsGIOService:
{
...
GAppInfo *app_info = g_app_info_
...
<-- We probably need to add g_app_info_
untested though .