|
6 | 6 | #include "nsXULAppAPI.h" |
7 | 7 | #include "nsINIParser.h" |
8 | 8 | #include "nsIFile.h" |
| 9 | +#include "nsURLHelper.h" |
9 | 10 | #include "mozilla/XREAppData.h" |
10 | 11 |
|
11 | 12 | // This include must appear early in the unified cpp file for toolkit/xre to |
@@ -75,3 +76,35 @@ nsresult XRE_ParseAppData(nsIFile* aINIFile, XREAppData& aAppData) { |
75 | 76 |
|
76 | 77 | return NS_OK; |
77 | 78 | } |
| 79 | + |
| 80 | +#if defined(MOZ_ENTERPRISE) |
| 81 | +static nsresult ParseConsoleUrlFromDistribution(XREAppData& aAppData, |
| 82 | + nsACString& consoleUrl) { |
| 83 | + nsCOMPtr<nsIFile> distributionFile; |
| 84 | + nsresult rv = aAppData.xreDirectory->Clone(getter_AddRefs(distributionFile)); |
| 85 | + NS_ENSURE_SUCCESS(rv, rv); |
| 86 | + rv = distributionFile->Append(u"distribution"_ns); |
| 87 | + NS_ENSURE_SUCCESS(rv, rv); |
| 88 | + rv = distributionFile->Append(u"distribution.ini"_ns); |
| 89 | + NS_ENSURE_SUCCESS(rv, rv); |
| 90 | + nsINIParser parser; |
| 91 | + rv = parser.Init(distributionFile); |
| 92 | + NS_ENSURE_SUCCESS(rv, rv); |
| 93 | + rv = |
| 94 | + parser.GetString("Preferences", "enterprise.console.address", consoleUrl); |
| 95 | + return rv; |
| 96 | +} |
| 97 | + |
| 98 | +nsresult XRE_ParseEnterpriseServerURL(XREAppData& aAppData) { |
| 99 | + nsCString serverUrl; |
| 100 | + nsresult rv = ParseConsoleUrlFromDistribution(aAppData, serverUrl); |
| 101 | + NS_ENSURE_SUCCESS(rv, rv); |
| 102 | + if (serverUrl.Last() != '/') { |
| 103 | + serverUrl.Append('/'); |
| 104 | + } |
| 105 | + serverUrl.Append("api/browser/crash-reports/submit"); |
| 106 | + aAppData.crashReporterURL = serverUrl.get(); |
| 107 | + |
| 108 | + return NS_OK; |
| 109 | +} |
| 110 | +#endif |
0 commit comments