Index: chrome/browser/gtk/options/advanced_contents_gtk.cc |
diff --git a/chrome/browser/gtk/options/advanced_contents_gtk.cc b/chrome/browser/gtk/options/advanced_contents_gtk.cc |
index 7aa21b28adb16e49e9a9ea2ecf4fcfc20438ae0a..fdae7b78a5974398ef7e98c2e47f108df2f41768 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; |
} |
} |