Pier Angelo Vendrame pushed to branch mullvad-browser-115.7.0esr-13.5-1 at The Tor Project / Applications / Mullvad Browser
Commits:
-
3ea5b1dc
by Pier Angelo Vendrame at 2024-02-07T15:27:23+00:00
-
7c5facb8
by Pier Angelo Vendrame at 2024-02-07T15:27:23+00:00
-
438c7fe9
by Pier Angelo Vendrame at 2024-02-07T15:27:23+00:00
4 changed files:
- browser/installer/windows/nsis/updater_append.ini
- toolkit/mozapps/update/updater/updater.cpp
- toolkit/xre/nsIXREDirProvider.idl
- toolkit/xre/nsXREDirProvider.cpp
Changes:
... | ... | @@ -7,6 +7,8 @@ |
7 | 7 | [PostUpdateWin]
|
8 | 8 | ; ExeRelPath is the path to the PostUpdateWin executable relative to the
|
9 | 9 | ; application executable.
|
10 | -ExeRelPath=uninstall\helper.exe
|
|
10 | +ExeRelPath=postupdate.exe
|
|
11 | 11 | ; ExeArg is the argument to pass to the PostUpdateWin exe
|
12 | +; We do not need any argument, but an empty string here will make updater.exe
|
|
13 | +; not run this step.
|
|
12 | 14 | ExeArg=/PostUpdate |
... | ... | @@ -2807,7 +2807,7 @@ int LaunchCallbackAndPostProcessApps(int argc, NS_tchar** argv, |
2807 | 2807 | #endif
|
2808 | 2808 | |
2809 | 2809 | if (argc > callbackIndex) {
|
2810 | -#if defined(XP_WIN) && !defined(BASE_BROWSER_UPDATE)
|
|
2810 | +#if defined(XP_WIN)
|
|
2811 | 2811 | if (gSucceeded) {
|
2812 | 2812 | if (!LaunchWinPostProcess(gInstallDirPath, gPatchDirPath)) {
|
2813 | 2813 | fprintf(stderr, "The post update process was not launched");
|
... | ... | @@ -20,4 +20,9 @@ interface nsIXREDirProvider : nsISupports |
20 | 20 | * Gets the hash for the current installation directory.
|
21 | 21 | */
|
22 | 22 | AString getInstallHash();
|
23 | + |
|
24 | + /**
|
|
25 | + * Tells whether the browser has been started in portable mode.
|
|
26 | + */
|
|
27 | + readonly attribute bool isPortableMode;
|
|
23 | 28 | }; |
... | ... | @@ -1109,7 +1109,14 @@ nsresult nsXREDirProvider::GetUpdateRootDir(nsIFile** aResult, |
1109 | 1109 | rv = GetUserDataDirectory(getter_AddRefs(updRoot), false);
|
1110 | 1110 | NS_ENSURE_SUCCESS(rv, rv);
|
1111 | 1111 | # else
|
1112 | - rv = GetUserDataDirectoryHome(getter_AddRefs(updRoot), false);
|
|
1112 | + bool isPortable = true;
|
|
1113 | + rv = GetIsPortableMode(&isPortable);
|
|
1114 | + NS_ENSURE_SUCCESS(rv, rv);
|
|
1115 | + if (isPortable) {
|
|
1116 | + rv = GetUserDataDirectoryHome(getter_AddRefs(updRoot), false);
|
|
1117 | + } else {
|
|
1118 | + rv = GetUserDataDirectory(getter_AddRefs(updRoot), true);
|
|
1119 | + }
|
|
1113 | 1120 | NS_ENSURE_SUCCESS(rv, rv);
|
1114 | 1121 | # endif
|
1115 | 1122 | rv = updRoot->AppendNative("UpdateInfo"_ns);
|
... | ... | @@ -1324,6 +1331,20 @@ nsresult nsXREDirProvider::GetPortableDataDir(nsIFile** aFile, |
1324 | 1331 | }
|
1325 | 1332 | #endif
|
1326 | 1333 | |
1334 | +NS_IMETHODIMP nsXREDirProvider::GetIsPortableMode(bool* aIsPortableMode) {
|
|
1335 | +#ifdef RELATIVE_DATA_DIR
|
|
1336 | + if (gDataDirPortable) {
|
|
1337 | + *aIsPortableMode = *gDataDirPortable;
|
|
1338 | + } else {
|
|
1339 | + nsCOMPtr<nsIFile> dir;
|
|
1340 | + GetPortableDataDir(getter_AddRefs(dir), *aIsPortableMode);
|
|
1341 | + }
|
|
1342 | +#else
|
|
1343 | + *aIsPortableMode = false;
|
|
1344 | +#endif
|
|
1345 | + return NS_OK;
|
|
1346 | +}
|
|
1347 | + |
|
1327 | 1348 | nsresult nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile,
|
1328 | 1349 | bool aLocal) {
|
1329 | 1350 | // Copied from nsAppFileLocationProvider (more or less)
|