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

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

Issue 1606007: Move EnvironmentVariableGetter from base/linux_util.h to base/env_var.h. Labe... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix windows build for good this time? Created 10 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « chrome/common/chrome_paths_linux.cc ('k') | net/proxy/proxy_config_service_linux.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 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 #ifndef NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_ 5 #ifndef NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_
6 #define NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_ 6 #define NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "base/linux_util.h" 12 #include "base/env_var.h"
13 #include "base/message_loop.h" 13 #include "base/message_loop.h"
14 #include "base/ref_counted.h" 14 #include "base/ref_counted.h"
15 #include "base/scoped_ptr.h" 15 #include "base/scoped_ptr.h"
16 #include "net/proxy/proxy_config.h" 16 #include "net/proxy/proxy_config.h"
17 #include "net/proxy/proxy_config_service.h" 17 #include "net/proxy/proxy_config_service.h"
18 #include "net/proxy/proxy_server.h" 18 #include "net/proxy/proxy_server.h"
19 19
20 namespace net { 20 namespace net {
21 21
22 // Implementation of ProxyConfigService that retrieves the system proxy 22 // Implementation of ProxyConfigService that retrieves the system proxy
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 // The substance of the ProxyConfigServiceLinux implementation is 98 // The substance of the ProxyConfigServiceLinux implementation is
99 // wrapped in the Delegate ref counted class. On deleting the 99 // wrapped in the Delegate ref counted class. On deleting the
100 // ProxyConfigServiceLinux, Delegate::OnDestroy() is posted to the 100 // ProxyConfigServiceLinux, Delegate::OnDestroy() is posted to the
101 // UI thread where gconf notifications will be safely stopped before 101 // UI thread where gconf notifications will be safely stopped before
102 // releasing Delegate. 102 // releasing Delegate.
103 103
104 class Delegate : public base::RefCountedThreadSafe<Delegate> { 104 class Delegate : public base::RefCountedThreadSafe<Delegate> {
105 public: 105 public:
106 // Constructor receives env var getter implementation to use, and 106 // Constructor receives env var getter implementation to use, and
107 // takes ownership of it. This is the normal constructor. 107 // takes ownership of it. This is the normal constructor.
108 explicit Delegate(base::EnvironmentVariableGetter* env_var_getter); 108 explicit Delegate(base::EnvVarGetter* env_var_getter);
109 // Constructor receives gconf and env var getter implementations 109 // Constructor receives gconf and env var getter implementations
110 // to use, and takes ownership of them. Used for testing. 110 // to use, and takes ownership of them. Used for testing.
111 Delegate(base::EnvironmentVariableGetter* env_var_getter, 111 Delegate(base::EnvVarGetter* env_var_getter,
112 GConfSettingGetter* gconf_getter); 112 GConfSettingGetter* gconf_getter);
113 // Synchronously obtains the proxy configuration. If gconf is 113 // Synchronously obtains the proxy configuration. If gconf is
114 // used, also enables gconf notification for setting 114 // used, also enables gconf notification for setting
115 // changes. gconf must only be accessed from the thread running 115 // changes. gconf must only be accessed from the thread running
116 // the default glib main loop, and so this method must be called 116 // the default glib main loop, and so this method must be called
117 // from the UI thread. The message loop for the IO thread is 117 // from the UI thread. The message loop for the IO thread is
118 // specified so that notifications can post tasks to it (and for 118 // specified so that notifications can post tasks to it (and for
119 // assertions). The message loop for the file thread is used to 119 // assertions). The message loop for the file thread is used to
120 // read any files needed to determine proxy settings. 120 // read any files needed to determine proxy settings.
121 void SetupAndFetchInitialConfig(MessageLoop* glib_default_loop, 121 void SetupAndFetchInitialConfig(MessageLoop* glib_default_loop,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 bool GetProxyFromGConf(const char* key_prefix, bool is_socks, 161 bool GetProxyFromGConf(const char* key_prefix, bool is_socks,
162 ProxyServer* result_server); 162 ProxyServer* result_server);
163 // Fills proxy config from gconf. Returns true if settings were found 163 // Fills proxy config from gconf. Returns true if settings were found
164 // and the configuration is valid. 164 // and the configuration is valid.
165 bool GetConfigFromGConf(ProxyConfig* config); 165 bool GetConfigFromGConf(ProxyConfig* config);
166 166
167 // This method is posted from the UI thread to the IO thread to 167 // This method is posted from the UI thread to the IO thread to
168 // carry the new config information. 168 // carry the new config information.
169 void SetNewProxyConfig(const ProxyConfig& new_config); 169 void SetNewProxyConfig(const ProxyConfig& new_config);
170 170
171 scoped_ptr<base::EnvironmentVariableGetter> env_var_getter_; 171 scoped_ptr<base::EnvVarGetter> env_var_getter_;
172 scoped_ptr<GConfSettingGetter> gconf_getter_; 172 scoped_ptr<GConfSettingGetter> gconf_getter_;
173 173
174 // Cached proxy configuration, to be returned by 174 // Cached proxy configuration, to be returned by
175 // GetProxyConfig. Initially populated from the UI thread, but 175 // GetProxyConfig. Initially populated from the UI thread, but
176 // afterwards only accessed from the IO thread. 176 // afterwards only accessed from the IO thread.
177 ProxyConfig cached_config_; 177 ProxyConfig cached_config_;
178 178
179 // A copy kept on the UI thread of the last seen proxy config, so as 179 // A copy kept on the UI thread of the last seen proxy config, so as
180 // to avoid posting a call to SetNewProxyConfig when we get a 180 // to avoid posting a call to SetNewProxyConfig when we get a
181 // notification but the config has not actually changed. 181 // notification but the config has not actually changed.
(...skipping 14 matching lines...) Expand all
196 MessageLoop* io_loop_; 196 MessageLoop* io_loop_;
197 197
198 DISALLOW_COPY_AND_ASSIGN(Delegate); 198 DISALLOW_COPY_AND_ASSIGN(Delegate);
199 }; 199 };
200 200
201 // Thin wrapper shell around Delegate. 201 // Thin wrapper shell around Delegate.
202 202
203 // Usual constructor 203 // Usual constructor
204 ProxyConfigServiceLinux(); 204 ProxyConfigServiceLinux();
205 // For testing: take alternate gconf and env var getter implementations. 205 // For testing: take alternate gconf and env var getter implementations.
206 explicit ProxyConfigServiceLinux( 206 explicit ProxyConfigServiceLinux(base::EnvVarGetter* env_var_getter);
207 base::EnvironmentVariableGetter* env_var_getter); 207 ProxyConfigServiceLinux(base::EnvVarGetter* env_var_getter,
208 ProxyConfigServiceLinux(base::EnvironmentVariableGetter* env_var_getter,
209 GConfSettingGetter* gconf_getter); 208 GConfSettingGetter* gconf_getter);
210 209
211 virtual ~ProxyConfigServiceLinux() { 210 virtual ~ProxyConfigServiceLinux() {
212 delegate_->PostDestroyTask(); 211 delegate_->PostDestroyTask();
213 } 212 }
214 213
215 void SetupAndFetchInitialConfig(MessageLoop* glib_default_loop, 214 void SetupAndFetchInitialConfig(MessageLoop* glib_default_loop,
216 MessageLoop* io_loop, 215 MessageLoop* io_loop,
217 MessageLoopForIO* file_loop) { 216 MessageLoopForIO* file_loop) {
218 delegate_->SetupAndFetchInitialConfig(glib_default_loop, io_loop, 217 delegate_->SetupAndFetchInitialConfig(glib_default_loop, io_loop,
(...skipping 11 matching lines...) Expand all
230 229
231 private: 230 private:
232 scoped_refptr<Delegate> delegate_; 231 scoped_refptr<Delegate> delegate_;
233 232
234 DISALLOW_COPY_AND_ASSIGN(ProxyConfigServiceLinux); 233 DISALLOW_COPY_AND_ASSIGN(ProxyConfigServiceLinux);
235 }; 234 };
236 235
237 } // namespace net 236 } // namespace net
238 237
239 #endif // NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_ 238 #endif // NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_
OLDNEW
« no previous file with comments | « chrome/common/chrome_paths_linux.cc ('k') | net/proxy/proxy_config_service_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698