Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: net/proxy/proxy_config_service_linux.cc

Issue 3052034: base: Rename EnvVarGetter to Environment. (Closed) Base URL: git://git.chromium.org/chromium.git
Patch Set: review Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/proxy/proxy_config_service_linux.h" 5 #include "net/proxy/proxy_config_service_linux.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <fcntl.h> 8 #include <fcntl.h>
9 #include <gconf/gconf-client.h> 9 #include <gconf/gconf-client.h>
10 #include <limits.h> 10 #include <limits.h>
11 #include <stdio.h> 11 #include <stdio.h>
12 #include <stdlib.h> 12 #include <stdlib.h>
13 #include <sys/inotify.h> 13 #include <sys/inotify.h>
14 #include <unistd.h> 14 #include <unistd.h>
15 15
16 #include <map> 16 #include <map>
17 17
18 #include "base/env_var.h" 18 #include "base/environment.h"
19 #include "base/file_path.h" 19 #include "base/file_path.h"
20 #include "base/file_util.h" 20 #include "base/file_util.h"
21 #include "base/logging.h" 21 #include "base/logging.h"
22 #include "base/message_loop.h" 22 #include "base/message_loop.h"
23 #include "base/string_number_conversions.h" 23 #include "base/string_number_conversions.h"
24 #include "base/string_tokenizer.h" 24 #include "base/string_tokenizer.h"
25 #include "base/string_util.h" 25 #include "base/string_util.h"
26 #include "base/task.h" 26 #include "base/task.h"
27 #include "base/timer.h" 27 #include "base/timer.h"
28 #include "base/xdg_util.h" 28 #include "base/xdg_util.h"
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 DISALLOW_COPY_AND_ASSIGN(GConfSettingGetterImplGConf); 415 DISALLOW_COPY_AND_ASSIGN(GConfSettingGetterImplGConf);
416 }; 416 };
417 417
418 // This is the KDE version that reads kioslaverc and simulates gconf. 418 // This is the KDE version that reads kioslaverc and simulates gconf.
419 // Doing this allows the main Delegate code, as well as the unit tests 419 // Doing this allows the main Delegate code, as well as the unit tests
420 // for it, to stay the same - and the settings map fairly well besides. 420 // for it, to stay the same - and the settings map fairly well besides.
421 class GConfSettingGetterImplKDE 421 class GConfSettingGetterImplKDE
422 : public ProxyConfigServiceLinux::GConfSettingGetter, 422 : public ProxyConfigServiceLinux::GConfSettingGetter,
423 public base::MessagePumpLibevent::Watcher { 423 public base::MessagePumpLibevent::Watcher {
424 public: 424 public:
425 explicit GConfSettingGetterImplKDE(base::EnvVarGetter* env_var_getter) 425 explicit GConfSettingGetterImplKDE(base::Environment* env_var_getter)
426 : inotify_fd_(-1), notify_delegate_(NULL), indirect_manual_(false), 426 : inotify_fd_(-1), notify_delegate_(NULL), indirect_manual_(false),
427 auto_no_pac_(false), reversed_bypass_list_(false), 427 auto_no_pac_(false), reversed_bypass_list_(false),
428 env_var_getter_(env_var_getter), file_loop_(NULL) { 428 env_var_getter_(env_var_getter), file_loop_(NULL) {
429 // Derive the location of the kde config dir from the environment. 429 // Derive the location of the kde config dir from the environment.
430 std::string home; 430 std::string home;
431 if (env_var_getter->GetEnv("KDEHOME", &home) && !home.empty()) { 431 if (env_var_getter->GetEnv("KDEHOME", &home) && !home.empty()) {
432 // $KDEHOME is set. Use it unconditionally. 432 // $KDEHOME is set. Use it unconditionally.
433 kde_config_dir_ = KDEHomeToConfigPath(FilePath(home)); 433 kde_config_dir_ = KDEHomeToConfigPath(FilePath(home));
434 } else { 434 } else {
435 // $KDEHOME is unset. Try to figure out what to use. This seems to be 435 // $KDEHOME is unset. Try to figure out what to use. This seems to be
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
872 base::MessagePumpLibevent::FileDescriptorWatcher inotify_watcher_; 872 base::MessagePumpLibevent::FileDescriptorWatcher inotify_watcher_;
873 ProxyConfigServiceLinux::Delegate* notify_delegate_; 873 ProxyConfigServiceLinux::Delegate* notify_delegate_;
874 base::OneShotTimer<GConfSettingGetterImplKDE> debounce_timer_; 874 base::OneShotTimer<GConfSettingGetterImplKDE> debounce_timer_;
875 FilePath kde_config_dir_; 875 FilePath kde_config_dir_;
876 bool indirect_manual_; 876 bool indirect_manual_;
877 bool auto_no_pac_; 877 bool auto_no_pac_;
878 bool reversed_bypass_list_; 878 bool reversed_bypass_list_;
879 // We don't own |env_var_getter_|. It's safe to hold a pointer to it, since 879 // We don't own |env_var_getter_|. It's safe to hold a pointer to it, since
880 // both it and us are owned by ProxyConfigServiceLinux::Delegate, and have the 880 // both it and us are owned by ProxyConfigServiceLinux::Delegate, and have the
881 // same lifetime. 881 // same lifetime.
882 base::EnvVarGetter* env_var_getter_; 882 base::Environment* env_var_getter_;
883 883
884 // We cache these settings whenever we re-read the kioslaverc file. 884 // We cache these settings whenever we re-read the kioslaverc file.
885 string_map_type string_table_; 885 string_map_type string_table_;
886 strings_map_type strings_table_; 886 strings_map_type strings_table_;
887 887
888 // Message loop of the file thread, for reading kioslaverc. If NULL, 888 // Message loop of the file thread, for reading kioslaverc. If NULL,
889 // just read it directly (for testing). We also handle inotify events 889 // just read it directly (for testing). We also handle inotify events
890 // on this thread. 890 // on this thread.
891 MessageLoopForIO* file_loop_; 891 MessageLoopForIO* file_loop_;
892 892
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
1044 // Note that there are no settings with semantics corresponding to 1044 // Note that there are no settings with semantics corresponding to
1045 // bypass of local names in GNOME. In KDE, "<local>" is supported 1045 // bypass of local names in GNOME. In KDE, "<local>" is supported
1046 // as a hostname rule. 1046 // as a hostname rule.
1047 1047
1048 // KDE allows one to reverse the bypass rules. 1048 // KDE allows one to reverse the bypass rules.
1049 config->proxy_rules().reverse_bypass = gconf_getter_->BypassListIsReversed(); 1049 config->proxy_rules().reverse_bypass = gconf_getter_->BypassListIsReversed();
1050 1050
1051 return true; 1051 return true;
1052 } 1052 }
1053 1053
1054 ProxyConfigServiceLinux::Delegate::Delegate(base::EnvVarGetter* env_var_getter) 1054 ProxyConfigServiceLinux::Delegate::Delegate(base::Environment* env_var_getter)
1055 : env_var_getter_(env_var_getter), 1055 : env_var_getter_(env_var_getter),
1056 glib_default_loop_(NULL), io_loop_(NULL) { 1056 glib_default_loop_(NULL), io_loop_(NULL) {
1057 // Figure out which GConfSettingGetterImpl to use, if any. 1057 // Figure out which GConfSettingGetterImpl to use, if any.
1058 switch (base::GetDesktopEnvironment(env_var_getter)) { 1058 switch (base::GetDesktopEnvironment(env_var_getter)) {
1059 case base::DESKTOP_ENVIRONMENT_GNOME: 1059 case base::DESKTOP_ENVIRONMENT_GNOME:
1060 gconf_getter_.reset(new GConfSettingGetterImplGConf()); 1060 gconf_getter_.reset(new GConfSettingGetterImplGConf());
1061 break; 1061 break;
1062 case base::DESKTOP_ENVIRONMENT_KDE3: 1062 case base::DESKTOP_ENVIRONMENT_KDE3:
1063 case base::DESKTOP_ENVIRONMENT_KDE4: 1063 case base::DESKTOP_ENVIRONMENT_KDE4:
1064 gconf_getter_.reset(new GConfSettingGetterImplKDE(env_var_getter)); 1064 gconf_getter_.reset(new GConfSettingGetterImplKDE(env_var_getter));
1065 break; 1065 break;
1066 case base::DESKTOP_ENVIRONMENT_XFCE: 1066 case base::DESKTOP_ENVIRONMENT_XFCE:
1067 case base::DESKTOP_ENVIRONMENT_OTHER: 1067 case base::DESKTOP_ENVIRONMENT_OTHER:
1068 break; 1068 break;
1069 } 1069 }
1070 } 1070 }
1071 1071
1072 ProxyConfigServiceLinux::Delegate::Delegate(base::EnvVarGetter* env_var_getter, 1072 ProxyConfigServiceLinux::Delegate::Delegate(base::Environment* env_var_getter,
1073 GConfSettingGetter* gconf_getter) 1073 GConfSettingGetter* gconf_getter)
1074 : env_var_getter_(env_var_getter), gconf_getter_(gconf_getter), 1074 : env_var_getter_(env_var_getter), gconf_getter_(gconf_getter),
1075 glib_default_loop_(NULL), io_loop_(NULL) { 1075 glib_default_loop_(NULL), io_loop_(NULL) {
1076 } 1076 }
1077 1077
1078 void ProxyConfigServiceLinux::Delegate::SetupAndFetchInitialConfig( 1078 void ProxyConfigServiceLinux::Delegate::SetupAndFetchInitialConfig(
1079 MessageLoop* glib_default_loop, MessageLoop* io_loop, 1079 MessageLoop* glib_default_loop, MessageLoop* io_loop,
1080 MessageLoopForIO* file_loop) { 1080 MessageLoopForIO* file_loop) {
1081 // We should be running on the default glib main loop thread right 1081 // We should be running on the default glib main loop thread right
1082 // now. gconf can only be accessed from this thread. 1082 // now. gconf can only be accessed from this thread.
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
1217 &ProxyConfigServiceLinux::Delegate::OnDestroy)); 1217 &ProxyConfigServiceLinux::Delegate::OnDestroy));
1218 } 1218 }
1219 } 1219 }
1220 void ProxyConfigServiceLinux::Delegate::OnDestroy() { 1220 void ProxyConfigServiceLinux::Delegate::OnDestroy() {
1221 MessageLoop* shutdown_loop = gconf_getter_->GetNotificationLoop(); 1221 MessageLoop* shutdown_loop = gconf_getter_->GetNotificationLoop();
1222 DCHECK(!shutdown_loop || MessageLoop::current() == shutdown_loop); 1222 DCHECK(!shutdown_loop || MessageLoop::current() == shutdown_loop);
1223 gconf_getter_->Shutdown(); 1223 gconf_getter_->Shutdown();
1224 } 1224 }
1225 1225
1226 ProxyConfigServiceLinux::ProxyConfigServiceLinux() 1226 ProxyConfigServiceLinux::ProxyConfigServiceLinux()
1227 : delegate_(new Delegate(base::EnvVarGetter::Create())) { 1227 : delegate_(new Delegate(base::Environment::Create())) {
1228 } 1228 }
1229 1229
1230 ProxyConfigServiceLinux::ProxyConfigServiceLinux( 1230 ProxyConfigServiceLinux::ProxyConfigServiceLinux(
1231 base::EnvVarGetter* env_var_getter) 1231 base::Environment* env_var_getter)
1232 : delegate_(new Delegate(env_var_getter)) { 1232 : delegate_(new Delegate(env_var_getter)) {
1233 } 1233 }
1234 1234
1235 ProxyConfigServiceLinux::ProxyConfigServiceLinux( 1235 ProxyConfigServiceLinux::ProxyConfigServiceLinux(
1236 base::EnvVarGetter* env_var_getter, 1236 base::Environment* env_var_getter,
1237 GConfSettingGetter* gconf_getter) 1237 GConfSettingGetter* gconf_getter)
1238 : delegate_(new Delegate(env_var_getter, gconf_getter)) { 1238 : delegate_(new Delegate(env_var_getter, gconf_getter)) {
1239 } 1239 }
1240 1240
1241 } // namespace net 1241 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698