
richard pushed to branch mullvad-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Mullvad Browser Commits: 2b80b110 by Pier Angelo Vendrame at 2024-04-17T18:14:53+00:00 fixup! Bug 9173: Change the default Firefox profile directory to be relative. Bug 42519: Disable portable mode also if is-packaged-app is present. That is the file Firefox uses for .deb packages. - - - - - 2 changed files: - toolkit/xre/nsXREDirProvider.cpp - xpcom/io/nsAppFileLocationProvider.cpp Changes: ===================================== toolkit/xre/nsXREDirProvider.cpp ===================================== @@ -1282,19 +1282,30 @@ nsresult nsXREDirProvider::GetPortableDataDir(nsIFile** aFile, } # endif - nsCOMPtr<nsIFile> systemInstallFile; - rv = exeDir->Clone(getter_AddRefs(systemInstallFile)); - NS_ENSURE_SUCCESS(rv, rv); - rv = systemInstallFile->AppendNative("system-install"_ns); - NS_ENSURE_SUCCESS(rv, rv); +# if defined(MOZ_WIDGET_GTK) + // On Linux, Firefox supports the is-packaged-app for the .deb distribution. + // We cannot use mozilla::widget::IsPackagedAppFileExists because it relies on + // this service to be initialized, but this function is called during the + // initialization. Therefore, we need to re-implement this check. + nsLiteralCString systemInstallNames[] = {"system-install"_ns, + "is-packaged-app"_ns}; +# else + nsLiteralCString systemInstallNames[] = {"system-install"_ns}; +# endif + for (const nsLiteralCString& fileName : systemInstallNames) { + nsCOMPtr<nsIFile> systemInstallFile; + rv = exeDir->Clone(getter_AddRefs(systemInstallFile)); + NS_ENSURE_SUCCESS(rv, rv); + rv = systemInstallFile->AppendNative(fileName); + NS_ENSURE_SUCCESS(rv, rv); - bool exists = false; - rv = systemInstallFile->Exists(&exists); - NS_ENSURE_SUCCESS(rv, rv); - if (exists) { - aIsPortable = false; - gDataDirPortable.emplace(nullptr); - return NS_OK; + bool exists = false; + rv = systemInstallFile->Exists(&exists); + NS_ENSURE_SUCCESS(rv, rv); + if (exists) { + gDataDirPortable.emplace(nullptr); + return NS_OK; + } } nsCOMPtr<nsIFile> localDir = exeDir; ===================================== xpcom/io/nsAppFileLocationProvider.cpp ===================================== @@ -195,18 +195,27 @@ static nsresult SetupPortableMode(nsIFile** aDirectory, bool aLocal, } # endif - nsCOMPtr<nsIFile> systemInstallFile; - rv = exeDir->Clone(getter_AddRefs(systemInstallFile)); - NS_ENSURE_SUCCESS(rv, rv); - rv = systemInstallFile->AppendNative("system-install"_ns); - NS_ENSURE_SUCCESS(rv, rv); +# if defined(MOZ_WIDGET_GTK) + // On Linux, Firefox supports the is-packaged-app for the .deb distribution. + nsLiteralCString systemInstallNames[] = {"system-install"_ns, + "is-packaged-app"_ns}; +# else + nsLiteralCString systemInstallNames[] = {"system-install"_ns}; +# endif + for (const nsLiteralCString& fileName : systemInstallNames) { + nsCOMPtr<nsIFile> systemInstallFile; + rv = exeDir->Clone(getter_AddRefs(systemInstallFile)); + NS_ENSURE_SUCCESS(rv, rv); + rv = systemInstallFile->AppendNative(fileName); + NS_ENSURE_SUCCESS(rv, rv); - bool exists = false; - rv = systemInstallFile->Exists(&exists); - NS_ENSURE_SUCCESS(rv, rv); - if (exists) { - aIsPortable = false; - return NS_OK; + bool exists = false; + rv = systemInstallFile->Exists(&exists); + NS_ENSURE_SUCCESS(rv, rv); + if (exists) { + aIsPortable = false; + return NS_OK; + } } nsCOMPtr<nsIFile> localDir = exeDir; @@ -226,6 +235,7 @@ static nsresult SetupPortableMode(nsIFile** aDirectory, bool aLocal, NS_ENSURE_SUCCESS(rv, rv); } + bool exists = false; rv = localDir->Exists(&exists); NS_ENSURE_SUCCESS(rv, rv); if (!exists) { View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/2b80... -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/2b80... You're receiving this email because of your account on gitlab.torproject.org.
participants (1)
-
richard (@richard)