From 3f42f462b43b847a277c9ae73db7d6fe2d37a3a2 Mon Sep 17 00:00:00 2001 From: Emilio Pozuelo Monfort Date: Thu, 1 May 2014 13:37:48 +0200 Subject: [PATCH] Bug 624422 - Let plugin-container load libmozgtk2. r=glandium --- ipc/glue/GeckoChildProcessHost.cpp | 16 ++++++++++++++++ ipc/glue/moz.build | 3 ++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/ipc/glue/GeckoChildProcessHost.cpp b/ipc/glue/GeckoChildProcessHost.cpp index 4a199d1fe6c..d550555b537 100644 --- a/ipc/glue/GeckoChildProcessHost.cpp +++ b/ipc/glue/GeckoChildProcessHost.cpp @@ -574,6 +574,22 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector& aExt } else { newEnvVars["LD_LIBRARY_PATH"] = path.get(); } + +# if (MOZ_WIDGET_GTK == 3) + const char *ld_preload = PR_GetEnv("LD_PRELOAD"); + nsCString new_ld_preload; + + new_ld_preload.Assign(path.get()); + new_ld_preload.AppendLiteral("/" DLL_PREFIX "mozgtk2" DLL_SUFFIX); + + if (ld_preload && *ld_preload) { + new_ld_preload.AppendLiteral(":"); + new_ld_preload.Append(ld_preload); + } + newEnvVars["LD_PRELOAD"] = new_ld_preload.get(); +# endif // MOZ_WIDGET_GTK + + # elif OS_MACOSX newEnvVars["DYLD_LIBRARY_PATH"] = path.get(); // XXX DYLD_INSERT_LIBRARIES should only be set when launching a plugin diff --git a/ipc/glue/moz.build b/ipc/glue/moz.build index 22d2f5f3a2f..85b6a945f02 100644 --- a/ipc/glue/moz.build +++ b/ipc/glue/moz.build @@ -140,7 +140,8 @@ include('/ipc/chromium/chromium-config.mozbuild') FINAL_LIBRARY = 'xul' -for var in ('MOZ_CHILD_PROCESS_NAME', 'MOZ_CHILD_PROCESS_BUNDLE'): +for var in ('MOZ_CHILD_PROCESS_NAME', 'MOZ_CHILD_PROCESS_BUNDLE', + 'DLL_PREFIX', 'DLL_SUFFIX'): DEFINES[var] = '"%s"' % CONFIG[var] LOCAL_INCLUDES += [