mozilla-crash-annotation.patch
branchmozilla-1.9.2
changeset 57 fee8a3636d4a
parent 56 6c1feeed3314
child 58 e0951c708771
equal deleted inserted replaced
56:6c1feeed3314 57:fee8a3636d4a
     1 From: Wolfgang Rosenauer <wr@rosenauer.org>
       
     2 Subject: add distribution information to crash reports when available
       
     3 References:
       
     4 
       
     5 diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
       
     6 --- a/toolkit/xre/nsAppRunner.cpp
       
     7 +++ b/toolkit/xre/nsAppRunner.cpp
       
     8 @@ -3299,26 +3299,47 @@ XRE_main(int argc, char* argv[], const n
       
     9        rv |= xpcom.SetWindowCreator(nativeApp);
       
    10        NS_ENSURE_SUCCESS(rv, 1);
       
    11  
       
    12  #ifdef MOZ_CRASHREPORTER
       
    13        // tell the crash reporter to also send the release channel
       
    14        nsCOMPtr<nsIPrefService> prefs = do_GetService("@mozilla.org/preferences-service;1", &rv);
       
    15        if (NS_SUCCEEDED(rv)) {
       
    16          nsCOMPtr<nsIPrefBranch> defaultPrefBranch;
       
    17 +        nsCOMPtr<nsIPrefBranch> distPrefBranch;
       
    18 +        nsXPIDLCString sval;
       
    19 +
       
    20          rv = prefs->GetDefaultBranch(nsnull, getter_AddRefs(defaultPrefBranch));
       
    21 -
       
    22          if (NS_SUCCEEDED(rv)) {
       
    23 -          nsXPIDLCString sval;
       
    24            rv = defaultPrefBranch->GetCharPref("app.update.channel", getter_Copies(sval));
       
    25            if (NS_SUCCEEDED(rv)) {
       
    26              CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("ReleaseChannel"),
       
    27                                                 sval);
       
    28            }
       
    29          }
       
    30 +
       
    31 +        rv = prefs->GetBranch("distribution", getter_AddRefs(distPrefBranch));
       
    32 +        if (NS_SUCCEEDED(rv)) {
       
    33 +          rv = distPrefBranch->GetCharPref("id", getter_Copies(sval));
       
    34 +          if (NS_SUCCEEDED(rv)) {
       
    35 +            CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("Distributor"),
       
    36 +                                               sval);
       
    37 +          } else {
       
    38 +            printf("GetCharPref('id') failed \n");
       
    39 +          }
       
    40 +          rv = distPrefBranch->GetCharPref("version", getter_Copies(sval));
       
    41 +          if (NS_SUCCEEDED(rv)) {
       
    42 +            CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("Distributor_version"),
       
    43 +                                               sval);
       
    44 +          } else {
       
    45 +            printf("GetCharPref('version') failed \n");
       
    46 +          }
       
    47 +        } else {
       
    48 +printf("GetBranch('distribution') failed\n");
       
    49 +        }
       
    50        }
       
    51  #endif
       
    52        {
       
    53          if (startOffline) {
       
    54            nsCOMPtr<nsIIOService2> io (do_GetService("@mozilla.org/network/io-service;1"));
       
    55            NS_ENSURE_TRUE(io, 1);
       
    56            io->SetManageOfflineStatus(PR_FALSE);
       
    57            io->SetOffline(PR_TRUE);