firefox-shell-bmo624267.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Thu, 13 Jan 2011 12:12:14 +0100
changeset 217 4b1284f6082b
parent 210 f4f4388b26a8
permissions -rw-r--r--
changelog
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
210
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
# HG changeset patch
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     2
# Parent 6c4a0e0acb3a071dbfde60e975f68f18c85bbff8
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     3
# User timeless@mozdev.org
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
Bug 624267 Crash on Ubuntu [@ nsGNOMEShellService::SetDefaultBrowser ]
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
r=roc
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     7
diff --git a/browser/components/shell/src/nsGNOMEShellService.cpp b/browser/components/shell/src/nsGNOMEShellService.cpp
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     8
--- a/browser/components/shell/src/nsGNOMEShellService.cpp
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     9
+++ b/browser/components/shell/src/nsGNOMEShellService.cpp
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    10
@@ -214,30 +214,31 @@ nsGNOMEShellService::SetDefaultBrowser(P
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    11
 #endif
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    12
 
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    13
   nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    14
-
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    15
-  nsCAutoString appKeyValue(mAppPath);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    16
-  appKeyValue.Append(" \"%s\"");
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    17
-  unsigned int i;
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    18
-
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    19
-  for (i = 0; i < NS_ARRAY_LENGTH(appProtocols); ++i) {
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    20
-    if (appProtocols[i].essential || aClaimAllTypes) {
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
-      gconf->SetAppForProtocol(nsDependentCString(appProtocols[i].name),
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    22
-                               appKeyValue);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    23
+  if (gconf) {
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
+    nsCAutoString appKeyValue(mAppPath);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    25
+    appKeyValue.Append(" \"%s\"");
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    26
+    for (unsigned int i = 0; i < NS_ARRAY_LENGTH(appProtocols); ++i) {
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    27
+      if (appProtocols[i].essential || aClaimAllTypes) {
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    28
+        gconf->SetAppForProtocol(nsDependentCString(appProtocols[i].name),
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    29
+                                 appKeyValue);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    30
+      }
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    31
     }
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    32
   }
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    33
 
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    34
   // set handler for .html and xhtml files and MIME types:
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    35
   if (aClaimAllTypes) {
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    36
+    nsresult rv;
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    37
     nsCOMPtr<nsIGIOService> giovfs =
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    38
-      do_GetService(NS_GIOSERVICE_CONTRACTID);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    39
+      do_GetService(NS_GIOSERVICE_CONTRACTID, &rv);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    40
+    NS_ENSURE_SUCCESS(rv, rv);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    41
 
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    42
     nsCOMPtr<nsIStringBundleService> bundleService =
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    43
-      do_GetService(NS_STRINGBUNDLE_CONTRACTID);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    44
-    NS_ENSURE_TRUE(bundleService, NS_ERROR_OUT_OF_MEMORY);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    45
+      do_GetService(NS_STRINGBUNDLE_CONTRACTID, &rv);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    46
+    NS_ENSURE_SUCCESS(rv, rv);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    47
 
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    48
     nsCOMPtr<nsIStringBundle> brandBundle;
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    49
-    bundleService->CreateBundle(BRAND_PROPERTIES, getter_AddRefs(brandBundle));
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    50
-    NS_ENSURE_TRUE(brandBundle, NS_ERROR_FAILURE);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    51
+    rv = bundleService->CreateBundle(BRAND_PROPERTIES, getter_AddRefs(brandBundle));
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    52
+    NS_ENSURE_SUCCESS(rv, rv);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    53
 
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    54
     nsString brandShortName, brandFullName;
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    55
     brandBundle->GetStringFromName(NS_LITERAL_STRING("brandShortName").get(),
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    56
@@ -247,17 +248,16 @@ nsGNOMEShellService::SetDefaultBrowser(P
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    57
 
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    58
     // use brandShortName as the application id.
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    59
     NS_ConvertUTF16toUTF8 id(brandShortName);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    60
-    if (giovfs) {
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    61
-      nsCOMPtr<nsIGIOMimeApp> appInfo;
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    62
-      giovfs->CreateAppFromCommand(mAppPath,
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    63
-                                id,
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    64
-                                getter_AddRefs(appInfo));
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    65
+    nsCOMPtr<nsIGIOMimeApp> appInfo;
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    66
+    rv = giovfs->CreateAppFromCommand(mAppPath,
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    67
+                                      id,
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    68
+                                      getter_AddRefs(appInfo));
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    69
+    NS_ENSURE_SUCCESS(rv, rv);
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    70
 
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    71
-      // Add mime types for html, xhtml extension and set app to just created appinfo.
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    72
-      for (i = 0; i < NS_ARRAY_LENGTH(appTypes); ++i) {
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    73
-        appInfo->SetAsDefaultForMimeType(nsDependentCString(appTypes[i].mimeType));
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    74
-        appInfo->SetAsDefaultForFileExtensions(nsDependentCString(appTypes[i].extensions));
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    75
-      }
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    76
+    // Add mime types for html, xhtml extension and set app to just created appinfo.
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    77
+    for (unsigned int i = 0; i < NS_ARRAY_LENGTH(appTypes); ++i) {
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    78
+      appInfo->SetAsDefaultForMimeType(nsDependentCString(appTypes[i].mimeType));
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    79
+      appInfo->SetAsDefaultForFileExtensions(nsDependentCString(appTypes[i].extensions));
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    80
     }
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    81
   }
f4f4388b26a8 update to 2.0b9/4.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    82