diff -Nrbu seamonkey-2.35/comm-release/mozilla/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp seamonkey-2.35-OK/comm-release/mozilla/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
--- seamonkey-2.35/comm-release/mozilla/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp 2015-09-28 15:41:04.000000000 +0300
+++ seamonkey-2.35-OK/comm-release/mozilla/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp 2016-01-23 22:22:15.951365797 +0300
@@ -118,11 +118,21 @@
uri->GetSpec(uriSpec);
nsCOMPtr<nsIGIOMimeApp> app;
- if (NS_FAILED(giovfs->GetAppForMimeType(mSchemeOrType, getter_AddRefs(app))) || !app) {
- return NS_ERROR_FILE_NOT_FOUND;
- }
+ if (NS_SUCCEEDED(giovfs->GetAppForMimeType(mSchemeOrType, getter_AddRefs(app))) && app)
+ return app->Launch(uriSpec);
+ // If we haven't got an app we try to get a valid one by searching for the
+ // extension mapped type
+ RefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromExtension(nativePath);
+ if (mimeInfo) {
+ nsAutoCString type;
+ mimeInfo->GetType(type);
+ nsCOMPtr<nsIGIOMimeApp> app;
+ if (NS_SUCCEEDED(giovfs->GetAppForMimeType(type, getter_AddRefs(app))) && app)
return app->Launch(uriSpec);
+ }
+
+ return NS_ERROR_FILE_NOT_FOUND;
}
#if defined(MOZ_ENABLE_CONTENTACTION)