diff options
author | mdm@chromium.org <mdm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-25 21:59:22 +0000 |
---|---|---|
committer | mdm@chromium.org <mdm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-25 21:59:22 +0000 |
commit | b8ecd144b5960978b37f2419215b9119239546b0 (patch) | |
tree | 9fbbb6d7669685a7530851fa18d1273abfcc850d | |
parent | 37842818f13d1b1b4f6b6095c46233ff0c3b5011 (diff) | |
download | chromium_src-b8ecd144b5960978b37f2419215b9119239546b0.zip chromium_src-b8ecd144b5960978b37f2419215b9119239546b0.tar.gz chromium_src-b8ecd144b5960978b37f2419215b9119239546b0.tar.bz2 |
Properly detect KDE4 on newer systems (e.g. [K]Ubuntu 9.04).
BUG=25938
TEST=try to configure proxy settings on KDE4 when $DESKTOP_SESSION=kde, it should work
Review URL: http://codereview.chromium.org/427013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33132 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | base/linux_util.cc | 7 | ||||
-rw-r--r-- | net/proxy/proxy_config_service_linux_unittest.cc | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/base/linux_util.cc b/base/linux_util.cc index 4b5d0bc..dce4248d 100644 --- a/base/linux_util.cc +++ b/base/linux_util.cc @@ -227,8 +227,13 @@ DesktopEnvironment GetDesktopEnvironment(EnvironmentVariableGetter* env) { return DESKTOP_ENVIRONMENT_GNOME; else if (desktop_session == "kde4") return DESKTOP_ENVIRONMENT_KDE4; - else if (desktop_session == "kde") + else if (desktop_session == "kde") { + // This may mean KDE4 on newer systems, so we have to check. + std::string dummy; + if (env->Getenv("KDE_SESSION_VERSION", &dummy)) + return DESKTOP_ENVIRONMENT_KDE4; return DESKTOP_ENVIRONMENT_KDE3; + } } // Fall back on some older environment variables. diff --git a/net/proxy/proxy_config_service_linux_unittest.cc b/net/proxy/proxy_config_service_linux_unittest.cc index 2ffe081..4ebc12e 100644 --- a/net/proxy/proxy_config_service_linux_unittest.cc +++ b/net/proxy/proxy_config_service_linux_unittest.cc @@ -1192,7 +1192,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { MockEnvironmentVariableGetter* env_getter = new MockEnvironmentVariableGetter; // Force the KDE getter to be used and tell it where the test is. - env_getter->values.DESKTOP_SESSION = "kde"; + env_getter->values.DESKTOP_SESSION = "kde4"; env_getter->values.KDE_HOME = kde_home_.value().c_str(); SynchConfigGetter sync_config_getter( new ProxyConfigServiceLinux(env_getter)); |