f7f3225
Index: mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp
f7f3225
===================================================================
f7f3225
RCS file: /cvsroot/mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp,v
f7f3225
retrieving revision 1.58.20.1
f7f3225
retrieving revision 1.58
f7f3225
diff -d -u -p -r1.58.20.1 -r1.58
f7f3225
--- mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp	16 Apr 2007 18:54:53 -0000	1.58.20.1
f7f3225
+++ mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp	25 Oct 2004 07:46:01 -0000	1.58
f7f3225
@@ -1506,8 +1506,13 @@ nsOSHelperAppService::GetFromType(const 
f7f3225
 
f7f3225
   nsDependentSubstring majorType(majorTypeStart, majorTypeEnd);
f7f3225
   nsDependentSubstring minorType(minorTypeStart, minorTypeEnd);
f7f3225
+  nsAutoString extensions, mime_types_description;
f7f3225
+  LookUpExtensionsAndDescription(majorType,
f7f3225
+                                 minorType,
f7f3225
+                                 extensions,
f7f3225
+                                 mime_types_description);
f7f3225
+
f7f3225
 
f7f3225
-  // First check the user's private mailcap file
f7f3225
   nsAutoString mailcap_description, handler, mozillaFlags;
f7f3225
   DoLookUpHandlerAndDescription(majorType,
f7f3225
                                 minorType,
f7f3225
@@ -1516,46 +1521,23 @@ nsOSHelperAppService::GetFromType(const 
f7f3225
                                 mailcap_description,
f7f3225
                                 mozillaFlags,
f7f3225
                                 PR_TRUE);
f7f3225
-  
f7f3225
-  LOG(("Private Handler/Description results:  handler='%s', description='%s'\n",
f7f3225
-          NS_LossyConvertUTF16toASCII(handler).get(),
f7f3225
-          NS_LossyConvertUTF16toASCII(mailcap_description).get()));
f7f3225
 
f7f3225
+  
f7f3225
+  if (handler.IsEmpty() && extensions.IsEmpty() &&
f7f3225
+      mailcap_description.IsEmpty() && mime_types_description.IsEmpty()) {
f7f3225
+    // No useful data yet
f7f3225
+    
f7f3225
 #ifdef MOZ_WIDGET_GTK2
f7f3225
-  nsMIMEInfoBase *gnomeInfo = nsnull;
f7f3225
-  if (handler.IsEmpty()) {
f7f3225
-    // No useful data yet.  Check the GNOME registry.  Unfortunately, newer
f7f3225
-    // GNOME versions no longer have type-to-extension mappings, so we might
f7f3225
-    // get back a MIMEInfo without any extensions set.  In that case we'll have
f7f3225
-    // to look in our mime.types files for the extensions.    
f7f3225
     LOG(("Looking in GNOME registry\n"));
f7f3225
-    gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType.get()).get();
f7f3225
-    if (gnomeInfo && gnomeInfo->HasExtensions()) {
f7f3225
-      LOG(("Got MIMEInfo from GNOME registry, and it has extensions set\n"));
f7f3225
+    nsMIMEInfoBase *gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType.get()).get();
f7f3225
+    if (gnomeInfo) {
f7f3225
+      LOG(("Got MIMEInfo from GNOME registry\n"));
f7f3225
       return gnomeInfo;
f7f3225
     }
f7f3225
-  }
f7f3225
 #endif
f7f3225
-
f7f3225
-  // Now look up our extensions
f7f3225
-  nsAutoString extensions, mime_types_description;
f7f3225
-  LookUpExtensionsAndDescription(majorType,
f7f3225
-                                 minorType,
f7f3225
-                                 extensions,
f7f3225
-                                 mime_types_description);
f7f3225
-
f7f3225
-#ifdef MOZ_WIDGET_GTK2
f7f3225
-  if (gnomeInfo) {
f7f3225
-    LOG(("Got MIMEInfo from GNOME registry without extensions; setting them "
f7f3225
-         "to %s\n", NS_LossyConvertUTF16toASCII(extensions).get()));
f7f3225
-
f7f3225
-    NS_ASSERTION(!gnomeInfo->HasExtensions(), "How'd that happen?");
f7f3225
-    gnomeInfo->SetFileExtensions(NS_ConvertUTF16toUTF8(extensions));
f7f3225
-    return gnomeInfo;
f7f3225
   }
f7f3225
-#endif
f7f3225
 
f7f3225
-  if (handler.IsEmpty()) {
f7f3225
+  if (handler.IsEmpty() && mailcap_description.IsEmpty()) {
f7f3225
     DoLookUpHandlerAndDescription(majorType,
f7f3225
                                   minorType,
f7f3225
                                   typeOptions,
f7f3225
@@ -1565,7 +1547,7 @@ nsOSHelperAppService::GetFromType(const 
f7f3225
                                   PR_FALSE);
f7f3225
   }
f7f3225
 
f7f3225
-  if (handler.IsEmpty()) {
f7f3225
+  if (handler.IsEmpty() && mailcap_description.IsEmpty()) {
f7f3225
     DoLookUpHandlerAndDescription(majorType,
f7f3225
                                   NS_LITERAL_STRING("*"),
f7f3225
                                   typeOptions,
f7f3225
@@ -1575,7 +1557,7 @@ nsOSHelperAppService::GetFromType(const 
f7f3225
                                   PR_TRUE);
f7f3225
   }
f7f3225
 
f7f3225
-  if (handler.IsEmpty()) {
f7f3225
+  if (handler.IsEmpty() && mailcap_description.IsEmpty()) {
f7f3225
     DoLookUpHandlerAndDescription(majorType,
f7f3225
                                   NS_LITERAL_STRING("*"),
f7f3225
                                   typeOptions,