diff options
author | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-23 22:10:53 +0000 |
---|---|---|
committer | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-23 22:10:53 +0000 |
commit | d6cb85b66439333ea65dfb26d745c8c8d0049aac (patch) | |
tree | ca34fec53150c2dd63e023c2c33ff22a6fd83119 /chrome/browser/gtk/options | |
parent | eeba96cee2c36a2808dcfd0589382524dc3992ad (diff) | |
download | chromium_src-d6cb85b66439333ea65dfb26d745c8c8d0049aac.zip chromium_src-d6cb85b66439333ea65dfb26d745c8c8d0049aac.tar.gz chromium_src-d6cb85b66439333ea65dfb26d745c8c8d0049aac.tar.bz2 |
linux: generalize desktop environment guessing to encompass KDE
BUG=17363
Review URL: http://codereview.chromium.org/159297
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21455 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk/options')
-rw-r--r-- | chrome/browser/gtk/options/advanced_contents_gtk.cc | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/chrome/browser/gtk/options/advanced_contents_gtk.cc b/chrome/browser/gtk/options/advanced_contents_gtk.cc index 7aa21b28..fdae7b7 100644 --- a/chrome/browser/gtk/options/advanced_contents_gtk.cc +++ b/chrome/browser/gtk/options/advanced_contents_gtk.cc @@ -302,23 +302,33 @@ void NetworkSection::OnChangeProxiesButtonClicked(GtkButton *button, scoped_ptr<base::EnvironmentVariableGetter> env_getter( base::EnvironmentVariableGetter::Create()); - if (base::UseGnomeForSettings(env_getter.get())) { - std::vector<std::string> argv; - argv.push_back(kProxyConfigBinary); - base::file_handle_mapping_vector no_files; - base::environment_vector env; - base::ProcessHandle handle; - env.push_back(std::make_pair("GTK_PATH", - getenv("CHROMIUM_SAVED_GTK_PATH"))); - if (!base::LaunchApp(argv, env, no_files, false, &handle)) { - LOG(ERROR) << "OpenProxyConfigDialogTask failed"; - return; + + switch (base::GetDesktopEnvironment(env_getter.get())) { + case base::DESKTOP_ENVIRONMENT_GNOME: { + std::vector<std::string> argv; + argv.push_back(kProxyConfigBinary); + base::file_handle_mapping_vector no_files; + base::environment_vector env; + base::ProcessHandle handle; + env.push_back(std::make_pair("GTK_PATH", + getenv("CHROMIUM_SAVED_GTK_PATH"))); + if (!base::LaunchApp(argv, env, no_files, false, &handle)) { + LOG(ERROR) << "OpenProxyConfigDialogTask failed"; + return; + } + ProcessWatcher::EnsureProcessGetsReaped(handle); + break; } - ProcessWatcher::EnsureProcessGetsReaped(handle); - } else { - BrowserList::GetLastActive()-> - OpenURL(GURL(l10n_util::GetStringUTF8(IDS_LINUX_PROXY_CONFIG_URL)), - GURL(), NEW_FOREGROUND_TAB, PageTransition::LINK); + + case base::DESKTOP_ENVIRONMENT_KDE: + NOTIMPLEMENTED() << "Bug 17363: obey KDE proxy settings."; + // Fall through to default behavior for now. + + case base::DESKTOP_ENVIRONMENT_OTHER: + BrowserList::GetLastActive()-> + OpenURL(GURL(l10n_util::GetStringUTF8(IDS_LINUX_PROXY_CONFIG_URL)), + GURL(), NEW_FOREGROUND_TAB, PageTransition::LINK); + break; } } |