OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 virtual MessageLoop* GetNotificationLoop() = 0; | 63 virtual MessageLoop* GetNotificationLoop() = 0; |
64 | 64 |
65 // Returns the data source's name (e.g. "gconf", "gsettings", "KDE", | 65 // Returns the data source's name (e.g. "gconf", "gsettings", "KDE", |
66 // "test"). Used only for diagnostic purposes (e.g. VLOG(1) etc.). | 66 // "test"). Used only for diagnostic purposes (e.g. VLOG(1) etc.). |
67 virtual const char* GetDataSource() = 0; | 67 virtual const char* GetDataSource() = 0; |
68 | 68 |
69 // These are all the values that can be fetched. We used to just use the | 69 // These are all the values that can be fetched. We used to just use the |
70 // corresponding paths in gconf for these, but gconf is now obsolete and | 70 // corresponding paths in gconf for these, but gconf is now obsolete and |
71 // in the future we'll be using mostly gsettings/kioslaverc so we | 71 // in the future we'll be using mostly gsettings/kioslaverc so we |
72 // enumerate them instead to avoid unnecessary string operations. | 72 // enumerate them instead to avoid unnecessary string operations. |
73 enum Setting { | 73 enum StringSetting { |
74 PROXY_MODE, // string | 74 PROXY_MODE, |
75 PROXY_AUTOCONF_URL, // string | 75 PROXY_AUTOCONF_URL, |
76 PROXY_USE_HTTP_PROXY, // bool | 76 PROXY_HTTP_HOST, |
77 PROXY_USE_SAME_PROXY, // bool | 77 PROXY_HTTPS_HOST, |
78 PROXY_USE_AUTHENTICATION, // bool | 78 PROXY_FTP_HOST, |
79 PROXY_IGNORE_HOSTS, // string list | 79 PROXY_SOCKS_HOST, |
80 PROXY_HTTP_HOST, // string | 80 }; |
81 PROXY_HTTP_PORT, // int | 81 enum BoolSetting { |
82 PROXY_HTTPS_HOST, // string | 82 PROXY_USE_HTTP_PROXY, |
83 PROXY_HTTPS_PORT, // int | 83 PROXY_USE_SAME_PROXY, |
84 PROXY_FTP_HOST, // string | 84 PROXY_USE_AUTHENTICATION, |
85 PROXY_FTP_PORT, // int | 85 }; |
86 PROXY_SOCKS_HOST, // string | 86 enum IntSetting { |
87 PROXY_SOCKS_PORT, // int | 87 PROXY_HTTP_PORT, |
| 88 PROXY_HTTPS_PORT, |
| 89 PROXY_FTP_PORT, |
| 90 PROXY_SOCKS_PORT, |
| 91 }; |
| 92 enum StringListSetting { |
| 93 PROXY_IGNORE_HOSTS, |
88 }; | 94 }; |
89 | 95 |
90 // Given a PROXY_*_HOST value, return the corresponding PROXY_*_PORT value. | 96 // Given a PROXY_*_HOST value, return the corresponding PROXY_*_PORT value. |
91 static Setting HostSettingToPortSetting(Setting host) { | 97 static IntSetting HostSettingToPortSetting(StringSetting host) { |
92 switch (host) { | 98 switch (host) { |
93 case PROXY_HTTP_HOST: | 99 case PROXY_HTTP_HOST: |
94 return PROXY_HTTP_PORT; | 100 return PROXY_HTTP_PORT; |
95 case PROXY_HTTPS_HOST: | 101 case PROXY_HTTPS_HOST: |
96 return PROXY_HTTPS_PORT; | 102 return PROXY_HTTPS_PORT; |
97 case PROXY_FTP_HOST: | 103 case PROXY_FTP_HOST: |
98 return PROXY_FTP_PORT; | 104 return PROXY_FTP_PORT; |
99 case PROXY_SOCKS_HOST: | 105 case PROXY_SOCKS_HOST: |
100 return PROXY_SOCKS_PORT; | 106 return PROXY_SOCKS_PORT; |
101 default: | 107 default: |
102 NOTREACHED(); | 108 NOTREACHED(); |
103 return host; // placate compiler | 109 return PROXY_HTTP_PORT; // Placate compiler. |
104 } | 110 } |
105 } | 111 } |
106 | 112 |
107 // Gets a string type value from the data source and stores it in | 113 // Gets a string type value from the data source and stores it in |
108 // |*result|. Returns false if the key is unset or on error. Must only be | 114 // |*result|. Returns false if the key is unset or on error. Must only be |
109 // called after a successful call to Init(), and not after a failed call | 115 // called after a successful call to Init(), and not after a failed call |
110 // to SetUpNotifications() or after calling Release(). | 116 // to SetUpNotifications() or after calling Release(). |
111 virtual bool GetString(Setting key, std::string* result) = 0; | 117 virtual bool GetString(StringSetting key, std::string* result) = 0; |
112 // Same thing for a bool typed value. | 118 // Same thing for a bool typed value. |
113 virtual bool GetBool(Setting key, bool* result) = 0; | 119 virtual bool GetBool(BoolSetting key, bool* result) = 0; |
114 // Same for an int typed value. | 120 // Same for an int typed value. |
115 virtual bool GetInt(Setting key, int* result) = 0; | 121 virtual bool GetInt(IntSetting key, int* result) = 0; |
116 // And for a string list. | 122 // And for a string list. |
117 virtual bool GetStringList(Setting key, | 123 virtual bool GetStringList(StringListSetting key, |
118 std::vector<std::string>* result) = 0; | 124 std::vector<std::string>* result) = 0; |
119 | 125 |
120 // Returns true if the bypass list should be interpreted as a proxy | 126 // Returns true if the bypass list should be interpreted as a proxy |
121 // whitelist rather than blacklist. (This is KDE-specific.) | 127 // whitelist rather than blacklist. (This is KDE-specific.) |
122 virtual bool BypassListIsReversed() = 0; | 128 virtual bool BypassListIsReversed() = 0; |
123 | 129 |
124 // Returns true if the bypass rules should be interpreted as | 130 // Returns true if the bypass rules should be interpreted as |
125 // suffix-matching rules. | 131 // suffix-matching rules. |
126 virtual bool MatchHostsUsingSuffixMatching() = 0; | 132 virtual bool MatchHostsUsingSuffixMatching() = 0; |
127 | 133 |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 ProxyServer* result_server); | 212 ProxyServer* result_server); |
207 // As above but with scheme set to HTTP, for convenience. | 213 // As above but with scheme set to HTTP, for convenience. |
208 bool GetProxyFromEnvVar(const char* variable, ProxyServer* result_server); | 214 bool GetProxyFromEnvVar(const char* variable, ProxyServer* result_server); |
209 // Fills proxy config from environment variables. Returns true if | 215 // Fills proxy config from environment variables. Returns true if |
210 // variables were found and the configuration is valid. | 216 // variables were found and the configuration is valid. |
211 bool GetConfigFromEnv(ProxyConfig* config); | 217 bool GetConfigFromEnv(ProxyConfig* config); |
212 | 218 |
213 // Obtains host and port config settings and parses a proxy server | 219 // Obtains host and port config settings and parses a proxy server |
214 // specification from it and puts it in result. Returns true if the | 220 // specification from it and puts it in result. Returns true if the |
215 // requested variable is defined and the value valid. | 221 // requested variable is defined and the value valid. |
216 bool GetProxyFromSettings(SettingGetter::Setting host_key, | 222 bool GetProxyFromSettings(SettingGetter::StringSetting host_key, |
217 ProxyServer* result_server); | 223 ProxyServer* result_server); |
218 // Fills proxy config from settings. Returns true if settings were found | 224 // Fills proxy config from settings. Returns true if settings were found |
219 // and the configuration is valid. | 225 // and the configuration is valid. |
220 bool GetConfigFromSettings(ProxyConfig* config); | 226 bool GetConfigFromSettings(ProxyConfig* config); |
221 | 227 |
222 // This method is posted from the UI thread to the IO thread to | 228 // This method is posted from the UI thread to the IO thread to |
223 // carry the new config information. | 229 // carry the new config information. |
224 void SetNewProxyConfig(const ProxyConfig& new_config); | 230 void SetNewProxyConfig(const ProxyConfig& new_config); |
225 | 231 |
226 // This method is run on the getter's notification thread. | 232 // This method is run on the getter's notification thread. |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 | 293 |
288 private: | 294 private: |
289 scoped_refptr<Delegate> delegate_; | 295 scoped_refptr<Delegate> delegate_; |
290 | 296 |
291 DISALLOW_COPY_AND_ASSIGN(ProxyConfigServiceLinux); | 297 DISALLOW_COPY_AND_ASSIGN(ProxyConfigServiceLinux); |
292 }; | 298 }; |
293 | 299 |
294 } // namespace net | 300 } // namespace net |
295 | 301 |
296 #endif // NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_ | 302 #endif // NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_ |
OLD | NEW |