diff --git a/mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp index 2850f4e3fb0..e8e5990a7f9 100644 --- a/mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp +++ b/mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp @@ -1247,25 +1247,25 @@ NS_IMETHODIMP nsOSHelperAppService::GetFromMIMEType(const char *aMIMEType, nsDependentSubstring majorType(majorTypeStart, majorTypeEnd); nsDependentSubstring minorType(minorTypeStart, minorTypeEnd); - LookUpExtensionsAndDescription(majorType, - minorType, - extensions, - mime_types_description); LookUpHandlerAndDescription(majorType, minorType, typeOptions, handler, mailcap_description, mozillaFlags); - mailcap_description.Trim(" \t\""); - mozillaFlags.Trim(" \t"); - - if (extensions.IsEmpty() && mime_types_description.IsEmpty() && - handler.IsEmpty() && mailcap_description.IsEmpty()) { + + if (handler.IsEmpty()) { // we have no useful info.... return NS_ERROR_FAILURE; } + mailcap_description.Trim(" \t\""); + mozillaFlags.Trim(" \t"); + LookUpExtensionsAndDescription(majorType, + minorType, + extensions, + mime_types_description); + nsCOMPtr mimeInfo(do_CreateInstance(NS_MIMEINFO_CONTRACTID, &rv)); if (NS_FAILED(rv)) @@ -1281,9 +1281,8 @@ NS_IMETHODIMP nsOSHelperAppService::GetFromMIMEType(const char *aMIMEType, rv = NS_ERROR_FAILURE; nsCOMPtr handlerFile; - if (! handler.IsEmpty()) { - rv = GetFileTokenForPath(handler.get(), getter_AddRefs(handlerFile)); - } + rv = GetFileTokenForPath(handler.get(), getter_AddRefs(handlerFile)); + if (NS_SUCCEEDED(rv)) { mimeInfo->SetPreferredApplicationHandler(handlerFile); mimeInfo->SetPreferredAction(nsIMIMEInfo::useHelperApp);