summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-25 22:43:19 +0000
committerthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-25 22:43:19 +0000
commit53a1593319d54ffc522ffc3cfa4e7316773685b6 (patch)
tree2ccd871e5660453847e6ad69c3023c98df2cd642
parent1b2158c787edd0fdc8fc8e06d196e631b14c38fd (diff)
downloadchromium_src-53a1593319d54ffc522ffc3cfa4e7316773685b6.zip
chromium_src-53a1593319d54ffc522ffc3cfa4e7316773685b6.tar.gz
chromium_src-53a1593319d54ffc522ffc3cfa4e7316773685b6.tar.bz2
Merge 33132 - 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 TBR=mdm@chromium.org Review URL: http://codereview.chromium.org/444006 git-svn-id: svn://svn.chromium.org/chrome/branches/249/src@33145 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--base/linux_util.cc7
-rw-r--r--net/proxy/proxy_config_service_linux_unittest.cc2
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 26149e5..8eb70f2 100644
--- a/net/proxy/proxy_config_service_linux_unittest.cc
+++ b/net/proxy/proxy_config_service_linux_unittest.cc
@@ -1189,7 +1189,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));