fix: don't propagate GDK_BACKEND to subprocs (#28898)
This commit is contained in:
parent
b27c5b94f7
commit
7b169c2884
4 changed files with 42 additions and 0 deletions
|
@ -19,6 +19,7 @@
|
|||
#include "dbus/bus.h"
|
||||
#include "dbus/message.h"
|
||||
#include "dbus/object_proxy.h"
|
||||
#include "shell/browser/electron_browser_main_parts.h"
|
||||
#include "shell/common/platform_util_internal.h"
|
||||
#include "ui/gtk/gtk_util.h"
|
||||
#include "url/gurl.h"
|
||||
|
@ -122,6 +123,18 @@ bool XDGUtil(const std::vector<std::string>& argv,
|
|||
// bring up a new terminal if necessary. See "man mailcap".
|
||||
options.environment["MM_NOTTTY"] = "1";
|
||||
|
||||
// If the user set a GDK_BACKEND value of their own, use that,
|
||||
// otherwise unset it becuase Chromium is setting GDK_BACKEND
|
||||
// during GTK initialization and we want to respect user preference.
|
||||
// Setting values in EnvironmentMap to an empty-string
|
||||
// will make sure that they get unset from the environment via
|
||||
// AlterEnvironment().
|
||||
const base::Optional<std::string>& gdk_backend =
|
||||
electron::ElectronBrowserMainParts::GetGDKBackend();
|
||||
options.environment["GDK_BACKEND"] = gdk_backend.has_value()
|
||||
? gdk_backend.value().c_str()
|
||||
: base::NativeEnvironmentString();
|
||||
|
||||
base::Process process = base::LaunchProcess(argv, options);
|
||||
if (!process.IsValid())
|
||||
return false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue