Skip to content
Snippets Groups Projects
Commit dee316e4 authored by Pier Angelo Vendrame's avatar Pier Angelo Vendrame :jack_o_lantern: Committed by Richard Pospesel
Browse files

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.
parent 39b29d69
Branches
No related tags found
No related merge requests found
......@@ -1282,20 +1282,31 @@ nsresult nsXREDirProvider::GetPortableDataDir(nsIFile** aFile,
}
# endif
# 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("system-install"_ns);
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;
}
}
nsCOMPtr<nsIFile> localDir = exeDir;
# if defined(XP_MACOSX)
......
......
......@@ -195,10 +195,18 @@ static nsresult SetupPortableMode(nsIFile** aDirectory, bool aLocal,
}
# endif
# 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("system-install"_ns);
rv = systemInstallFile->AppendNative(fileName);
NS_ENSURE_SUCCESS(rv, rv);
bool exists = false;
......@@ -208,6 +216,7 @@ static nsresult SetupPortableMode(nsIFile** aDirectory, bool aLocal,
aIsPortable = false;
return NS_OK;
}
}
nsCOMPtr<nsIFile> localDir = exeDir;
# if defined(XP_MACOSX)
......@@ -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) {
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment