summaryrefslogtreecommitdiff
path: root/toolkit
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2020-02-14 17:06:30 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2020-02-14 17:06:30 +0100
commit5251d85c6af5ce0140786bc08d5cd4a924808554 (patch)
treecf55e1598e59ef78b8d73f9446f5f7c5456c0f65 /toolkit
parent1968df165a5e796189dccac99bf533580747a245 (diff)
downloaduxp-5251d85c6af5ce0140786bc08d5cd4a924808554.tar.gz
Issue mcp-graveyard/UXP#1441 - Guard appomni/greomni with UXP_CUSTOM_OMNI env var.
This adds an addition to the environment set up for child processes (plugin container) so that it may still be able to pass the omni parameters there as-needed.
Diffstat (limited to 'toolkit')
-rw-r--r--toolkit/xre/nsAppRunner.cpp72
1 files changed, 38 insertions, 34 deletions
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index b27e466977..d8f95c2a81 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -4131,45 +4131,49 @@ XRE_InitCommandLine(int aArgc, char* aArgv[])
delete[] canonArgs;
#endif
- const char *path = nullptr;
- ArgResult ar = CheckArg("greomni", true, &path);
- if (ar == ARG_BAD) {
- PR_fprintf(PR_STDERR,
- "Error: argument --greomni requires a path argument or the "
- "--osint argument was specified with the --greomni argument "
- "which is invalid.\n");
- return NS_ERROR_FAILURE;
- }
+ if (PR_GetEnv("UXP_CUSTOM_OMNI")) {
+ // Process CLI parameters for specifying custom omnijars
+ const char *path = nullptr;
+ ArgResult ar = CheckArg("greomni", true, &path);
+ if (ar == ARG_BAD) {
+ PR_fprintf(PR_STDERR,
+ "Error: argument --greomni requires a path argument or the "
+ "--osint argument was specified with the --greomni argument "
+ "which is invalid.\n");
+ return NS_ERROR_FAILURE;
+ }
- if (!path)
- return rv;
+ if (!path)
+ return rv;
- nsCOMPtr<nsIFile> greOmni;
- rv = XRE_GetFileFromPath(path, getter_AddRefs(greOmni));
- if (NS_FAILED(rv)) {
- PR_fprintf(PR_STDERR, "Error: argument --greomni requires a valid path\n");
- return rv;
- }
+ nsCOMPtr<nsIFile> greOmni;
+ rv = XRE_GetFileFromPath(path, getter_AddRefs(greOmni));
+ if (NS_FAILED(rv)) {
+ PR_fprintf(PR_STDERR, "Error: argument --greomni requires a valid path\n");
+ return rv;
+ }
- ar = CheckArg("appomni", true, &path);
- if (ar == ARG_BAD) {
- PR_fprintf(PR_STDERR,
- "Error: argument --appomni requires a path argument or the "
- "--osint argument was specified with the --appomni argument "
- "which is invalid.\n");
- return NS_ERROR_FAILURE;
- }
+ ar = CheckArg("appomni", true, &path);
+ if (ar == ARG_BAD) {
+ PR_fprintf(PR_STDERR,
+ "Error: argument --appomni requires a path argument or the "
+ "--osint argument was specified with the --appomni argument "
+ "which is invalid.\n");
+ return NS_ERROR_FAILURE;
+ }
- nsCOMPtr<nsIFile> appOmni;
- if (path) {
- rv = XRE_GetFileFromPath(path, getter_AddRefs(appOmni));
- if (NS_FAILED(rv)) {
- PR_fprintf(PR_STDERR, "Error: argument --appomni requires a valid path\n");
- return rv;
- }
- }
+ nsCOMPtr<nsIFile> appOmni;
+ if (path) {
+ rv = XRE_GetFileFromPath(path, getter_AddRefs(appOmni));
+ if (NS_FAILED(rv)) {
+ PR_fprintf(PR_STDERR, "Error: argument --appomni requires a valid path\n");
+ return rv;
+ }
+ }
+
+ mozilla::Omnijar::Init(greOmni, appOmni);
+ } // UXP_CUSTOM_OMNI
- mozilla::Omnijar::Init(greOmni, appOmni);
return rv;
}