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

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

Issue 10310179: Track sources of proxy settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update copyright Created 8 years, 6 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_win.h" 5 #include "net/proxy/proxy_config_service_win.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 #include <winhttp.h> 8 #include <winhttp.h>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/scoped_ptr.h"
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 CheckForChangesNow(); 152 CheckForChangesNow();
153 } 153 }
154 154
155 // static 155 // static
156 void ProxyConfigServiceWin::GetCurrentProxyConfig(ProxyConfig* config) { 156 void ProxyConfigServiceWin::GetCurrentProxyConfig(ProxyConfig* config) {
157 WINHTTP_CURRENT_USER_IE_PROXY_CONFIG ie_config = {0}; 157 WINHTTP_CURRENT_USER_IE_PROXY_CONFIG ie_config = {0};
158 if (!WinHttpGetIEProxyConfigForCurrentUser(&ie_config)) { 158 if (!WinHttpGetIEProxyConfigForCurrentUser(&ie_config)) {
159 LOG(ERROR) << "WinHttpGetIEProxyConfigForCurrentUser failed: " << 159 LOG(ERROR) << "WinHttpGetIEProxyConfigForCurrentUser failed: " <<
160 GetLastError(); 160 GetLastError();
161 *config = ProxyConfig::CreateDirect(); 161 *config = ProxyConfig::CreateDirect();
162 config->set_source(PROXY_CONFIG_SOURCE_SYSTEM_FAILED);
162 return; 163 return;
163 } 164 }
164 SetFromIEConfig(config, ie_config); 165 SetFromIEConfig(config, ie_config);
165 FreeIEConfig(&ie_config); 166 FreeIEConfig(&ie_config);
166 } 167 }
167 168
168 // static 169 // static
169 void ProxyConfigServiceWin::SetFromIEConfig( 170 void ProxyConfigServiceWin::SetFromIEConfig(
170 ProxyConfig* config, 171 ProxyConfig* config,
171 const WINHTTP_CURRENT_USER_IE_PROXY_CONFIG& ie_config) { 172 const WINHTTP_CURRENT_USER_IE_PROXY_CONFIG& ie_config) {
172 if (ie_config.fAutoDetect) 173 if (ie_config.fAutoDetect)
173 config->set_auto_detect(true); 174 config->set_auto_detect(true);
174 if (ie_config.lpszProxy) { 175 if (ie_config.lpszProxy) {
175 // lpszProxy may be a single proxy, or a proxy per scheme. The format 176 // lpszProxy may be a single proxy, or a proxy per scheme. The format
176 // is compatible with ProxyConfig::ProxyRules's string format. 177 // is compatible with ProxyConfig::ProxyRules's string format.
177 config->proxy_rules().ParseFromString(WideToASCII(ie_config.lpszProxy)); 178 config->proxy_rules().ParseFromString(WideToASCII(ie_config.lpszProxy));
178 } 179 }
179 if (ie_config.lpszProxyBypass) { 180 if (ie_config.lpszProxyBypass) {
180 std::string proxy_bypass = WideToASCII(ie_config.lpszProxyBypass); 181 std::string proxy_bypass = WideToASCII(ie_config.lpszProxyBypass);
181 182
182 StringTokenizer proxy_server_bypass_list(proxy_bypass, ";, \t\n\r"); 183 StringTokenizer proxy_server_bypass_list(proxy_bypass, ";, \t\n\r");
183 while (proxy_server_bypass_list.GetNext()) { 184 while (proxy_server_bypass_list.GetNext()) {
184 std::string bypass_url_domain = proxy_server_bypass_list.token(); 185 std::string bypass_url_domain = proxy_server_bypass_list.token();
185 config->proxy_rules().bypass_rules.AddRuleFromString(bypass_url_domain); 186 config->proxy_rules().bypass_rules.AddRuleFromString(bypass_url_domain);
186 } 187 }
187 } 188 }
188 if (ie_config.lpszAutoConfigUrl) 189 if (ie_config.lpszAutoConfigUrl)
189 config->set_pac_url(GURL(ie_config.lpszAutoConfigUrl)); 190 config->set_pac_url(GURL(ie_config.lpszAutoConfigUrl));
191 config->set_source(PROXY_CONFIG_SOURCE_SYSTEM);
190 } 192 }
191 193
192 } // namespace net 194 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698