Index: chrome/browser/dom_ui/advanced_options_utils_gtk.cc |
=================================================================== |
--- chrome/browser/dom_ui/advanced_options_utils_gtk.cc (revision 54136) |
+++ chrome/browser/dom_ui/advanced_options_utils_gtk.cc (working copy) |
@@ -1,132 +0,0 @@ |
-// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#if !defined(OS_CHROMEOS) |
- |
-#include "chrome/browser/dom_ui/advanced_options_utils.h" |
- |
-#include "app/gtk_signal.h" |
-#include "app/gtk_util.h" |
-#include "base/file_util.h" |
-#include "base/env_var.h" |
-#include "base/process_util.h" |
-#include "base/string_tokenizer.h" |
-#include "base/xdg_util.h" |
-#include "chrome/browser/browser_list.h" |
-#include "chrome/browser/tab_contents/tab_contents.h" |
-#include "chrome/common/process_watcher.h" |
- |
-// Command used to configure GNOME proxy settings. The command was renamed |
-// in January 2009, so both are used to work on both old and new systems. |
-const char* kOldGNOMEProxyConfigCommand[] = {"gnome-network-preferences", NULL}; |
-const char* kGNOMEProxyConfigCommand[] = {"gnome-network-properties", NULL}; |
-// KDE3 and KDE4 are only slightly different, but incompatible. Go figure. |
-const char* kKDE3ProxyConfigCommand[] = {"kcmshell", "proxy", NULL}; |
-const char* kKDE4ProxyConfigCommand[] = {"kcmshell4", "proxy", NULL}; |
- |
-// The URL for Linux proxy configuration help when not running under a |
-// supported desktop environment. |
-const char kLinuxProxyConfigUrl[] = "about:linux-proxy-config"; |
- |
-// The URL for Linux ssl certificate configuration help. |
-const char* const kLinuxCertificatesConfigUrl = |
- "http://code.google.com/p/chromium/wiki/LinuxCertManagement"; |
- |
- |
-struct ProxyConfigCommand { |
- std::string binary; |
- const char** argv; |
-}; |
- |
-static bool SearchPATH(ProxyConfigCommand* commands, size_t ncommands, |
- size_t* index) { |
- const char* path = getenv("PATH"); |
- if (!path) |
- return false; |
- FilePath bin_path; |
- CStringTokenizer tk(path, path + strlen(path), ":"); |
- // Search $PATH looking for the commands in order. |
- while (tk.GetNext()) { |
- for (size_t i = 0; i < ncommands; i++) { |
- bin_path = FilePath(tk.token()).Append(commands[i].argv[0]); |
- if (file_util::PathExists(bin_path)) { |
- commands[i].binary = bin_path.value(); |
- if (index) |
- *index = i; |
- return true; |
- } |
- } |
- } |
- // Did not find any of the binaries in $PATH. |
- return false; |
-} |
- |
-static void StartProxyConfigUtil(const ProxyConfigCommand& command) { |
- std::vector<std::string> argv; |
- argv.push_back(command.binary); |
- for (size_t i = 1; command.argv[i]; i++) |
- argv.push_back(command.argv[i]); |
- base::file_handle_mapping_vector no_files; |
- base::ProcessHandle handle; |
- if (!base::LaunchApp(argv, no_files, false, &handle)) { |
- LOG(ERROR) << "StartProxyConfigUtil failed to start " << command.binary; |
- BrowserList::GetLastActive()-> |
- OpenURL(GURL(kLinuxProxyConfigUrl), GURL(), NEW_FOREGROUND_TAB, |
- PageTransition::LINK); |
- return; |
- } |
- ProcessWatcher::EnsureProcessGetsReaped(handle); |
-} |
- |
-void AdvancedOptionsUtilities::ShowNetworkProxySettings( |
- TabContents* tab_contents) { |
- scoped_ptr<base::EnvVarGetter> env_getter(base::EnvVarGetter::Create()); |
- |
- ProxyConfigCommand command; |
- bool found_command = false; |
- switch (base::GetDesktopEnvironment(env_getter.get())) { |
- case base::DESKTOP_ENVIRONMENT_GNOME: { |
- size_t index; |
- ProxyConfigCommand commands[2]; |
- commands[0].argv = kGNOMEProxyConfigCommand; |
- commands[1].argv = kOldGNOMEProxyConfigCommand; |
- found_command = SearchPATH(commands, 2, &index); |
- if (found_command) |
- command = commands[index]; |
- break; |
- } |
- |
- case base::DESKTOP_ENVIRONMENT_KDE3: |
- command.argv = kKDE3ProxyConfigCommand; |
- found_command = SearchPATH(&command, 1, NULL); |
- break; |
- |
- case base::DESKTOP_ENVIRONMENT_KDE4: |
- command.argv = kKDE4ProxyConfigCommand; |
- found_command = SearchPATH(&command, 1, NULL); |
- break; |
- |
- case base::DESKTOP_ENVIRONMENT_XFCE: |
- case base::DESKTOP_ENVIRONMENT_OTHER: |
- break; |
- } |
- |
- if (found_command) { |
- StartProxyConfigUtil(command); |
- } else { |
- const char* name = base::GetDesktopEnvironmentName(env_getter.get()); |
- if (name) |
- LOG(ERROR) << "Could not find " << name << " network settings in $PATH"; |
- tab_contents->OpenURL(GURL(kLinuxProxyConfigUrl), GURL(), |
- NEW_FOREGROUND_TAB, PageTransition::LINK); |
- } |
-} |
- |
-void AdvancedOptionsUtilities::ShowManageSSLCertificates( |
- TabContents* tab_contents) { |
- tab_contents->OpenURL(GURL(kLinuxCertificatesConfigUrl), GURL(), |
- NEW_WINDOW, PageTransition::LINK); |
-} |
- |
-#endif // !defined(OS_CHROMEOS) |