Issue #1441 - Guard appomni/greomni with UXP_CUSTOM_OMNI env var.

This commit is contained in:
wolfbeast 2020-02-14 12:35:58 +01:00 • committed by Roy Tam
commit e58f92ba6e

View file

@ -4139,45 +4139,49 @@ XRE_InitCommandLine(int aArgc, char* aArgv[])
delete[] canonArgs; delete[] canonArgs;
#endif #endif
const char *path = nullptr; if (PR_GetEnv("UXP_CUSTOM_OMNI")) {
ArgResult ar = CheckArg("greomni", true, &path); // Process CLI parameters for specifying custom omnijars
if (ar == ARG_BAD) { const char *path = nullptr;
PR_fprintf(PR_STDERR, ArgResult ar = CheckArg("greomni", true, &path);
"Error: argument --greomni requires a path argument or the " if (ar == ARG_BAD) {
"--osint argument was specified with the --greomni argument " PR_fprintf(PR_STDERR,
"which is invalid.\n"); "Error: argument --greomni requires a path argument or the "
return NS_ERROR_FAILURE; "--osint argument was specified with the --greomni argument "
} "which is invalid.\n");
return NS_ERROR_FAILURE;
}
if (!path) if (!path)
return rv; return rv;
nsCOMPtr<nsIFile> greOmni; nsCOMPtr<nsIFile> greOmni;
rv = XRE_GetFileFromPath(path, getter_AddRefs(greOmni)); rv = XRE_GetFileFromPath(path, getter_AddRefs(greOmni));
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
PR_fprintf(PR_STDERR, "Error: argument --greomni requires a valid path\n"); PR_fprintf(PR_STDERR, "Error: argument --greomni requires a valid path\n");
return rv; return rv;
} }
ar = CheckArg("appomni", true, &path); ar = CheckArg("appomni", true, &path);
if (ar == ARG_BAD) { if (ar == ARG_BAD) {
PR_fprintf(PR_STDERR, PR_fprintf(PR_STDERR,
"Error: argument --appomni requires a path argument or the " "Error: argument --appomni requires a path argument or the "
"--osint argument was specified with the --appomni argument " "--osint argument was specified with the --appomni argument "
"which is invalid.\n"); "which is invalid.\n");
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
nsCOMPtr<nsIFile> appOmni; nsCOMPtr<nsIFile> appOmni;
if (path) { if (path) {
rv = XRE_GetFileFromPath(path, getter_AddRefs(appOmni)); rv = XRE_GetFileFromPath(path, getter_AddRefs(appOmni));
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
PR_fprintf(PR_STDERR, "Error: argument --appomni requires a valid path\n"); PR_fprintf(PR_STDERR, "Error: argument --appomni requires a valid path\n");
return rv; return rv;
} }
} }
mozilla::Omnijar::Init(greOmni, appOmni);
} // UXP_CUSTOM_OMNI
mozilla::Omnijar::Init(greOmni, appOmni);
return rv; return rv;
} }