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

Side by Side Diff: chrome/browser/extensions/extension_proxy_api.cc

Issue 6804032: Add TLS-SRP (RFC 5054) support Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: use system srp and mpi libs, not local copies Created 9 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
OLDNEW
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 #include "chrome/browser/extensions/extension_proxy_api.h" 5 #include "chrome/browser/extensions/extension_proxy_api.h"
6 6
7 #include "base/string_util.h" 7 #include "base/string_util.h"
8 #include "base/stringprintf.h" 8 #include "base/stringprintf.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/prefs/proxy_prefs.h" 10 #include "chrome/browser/prefs/proxy_prefs.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/extensions/extension_service.h" 12 #include "chrome/browser/extensions/extension_service.h"
13 #include "chrome/common/pref_names.h" 13 #include "chrome/common/pref_names.h"
14 14
15 namespace { 15 namespace {
16 16
17 // The scheme for which to use a manually specified proxy, not of the proxy URI 17 // The scheme for which to use a manually specified proxy, not of the proxy URI
18 // itself. 18 // itself.
19 enum { 19 enum {
20 SCHEME_ALL = 0, 20 SCHEME_ALL = 0,
21 SCHEME_HTTP, 21 SCHEME_HTTP,
22 SCHEME_HTTPS, 22 SCHEME_HTTPS,
23 SCHEME_HTTPSV,
23 SCHEME_FTP, 24 SCHEME_FTP,
24 SCHEME_SOCKS, 25 SCHEME_SOCKS,
25 SCHEME_MAX = SCHEME_SOCKS // Keep this value up to date. 26 SCHEME_MAX = SCHEME_SOCKS // Keep this value up to date.
26 }; 27 };
27 28
28 // The names of the JavaScript properties to extract from the proxy_rules. 29 // The names of the JavaScript properties to extract from the proxy_rules.
29 // These must be kept in sync with the SCHEME_* constants. 30 // These must be kept in sync with the SCHEME_* constants.
30 const char* field_name[] = { "singleProxy", 31 const char* field_name[] = { "singleProxy",
31 "proxyForHttp", 32 "proxyForHttp",
32 "proxyForHttps", 33 "proxyForHttps",
34 "proxyForHttpsv",
33 "proxyForFtp", 35 "proxyForFtp",
34 "socksProxy" }; 36 "socksProxy" };
35 37
36 // The names of the schemes to be used to build the preference value string 38 // The names of the schemes to be used to build the preference value string
37 // for manual proxy settings. These must be kept in sync with the SCHEME_* 39 // for manual proxy settings. These must be kept in sync with the SCHEME_*
38 // constants. 40 // constants.
39 const char* scheme_name[] = { "*error*", 41 const char* scheme_name[] = { "*error*",
40 "http", 42 "http",
41 "https", 43 "https",
44 "httpsv",
42 "ftp", 45 "ftp",
43 "socks" }; 46 "socks" };
44 47
45 } // namespace 48 } // namespace
46 49
47 COMPILE_ASSERT(SCHEME_MAX == SCHEME_SOCKS, SCHEME_MAX_must_equal_SCHEME_SOCKS); 50 COMPILE_ASSERT(SCHEME_MAX == SCHEME_SOCKS, SCHEME_MAX_must_equal_SCHEME_SOCKS);
48 COMPILE_ASSERT(arraysize(field_name) == SCHEME_MAX + 1, 51 COMPILE_ASSERT(arraysize(field_name) == SCHEME_MAX + 1,
49 field_name_array_is_wrong_size); 52 field_name_array_is_wrong_size);
50 COMPILE_ASSERT(arraysize(scheme_name) == SCHEME_MAX + 1, 53 COMPILE_ASSERT(arraysize(scheme_name) == SCHEME_MAX + 1,
51 scheme_name_array_is_wrong_size); 54 scheme_name_array_is_wrong_size);
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 if (has_proxy[i]) { 156 if (has_proxy[i]) {
154 if (!GetProxyServer(proxy_dict[i], &proxy_server[i])) 157 if (!GetProxyServer(proxy_dict[i], &proxy_server[i]))
155 return false; 158 return false;
156 } 159 }
157 } 160 }
158 161
159 // A single proxy supersedes individual HTTP, HTTPS, and FTP proxies. 162 // A single proxy supersedes individual HTTP, HTTPS, and FTP proxies.
160 if (has_proxy[SCHEME_ALL]) { 163 if (has_proxy[SCHEME_ALL]) {
161 proxy_server[SCHEME_HTTP] = proxy_server[SCHEME_ALL]; 164 proxy_server[SCHEME_HTTP] = proxy_server[SCHEME_ALL];
162 proxy_server[SCHEME_HTTPS] = proxy_server[SCHEME_ALL]; 165 proxy_server[SCHEME_HTTPS] = proxy_server[SCHEME_ALL];
166 proxy_server[SCHEME_HTTPSV] = proxy_server[SCHEME_ALL];
163 proxy_server[SCHEME_FTP] = proxy_server[SCHEME_ALL]; 167 proxy_server[SCHEME_FTP] = proxy_server[SCHEME_ALL];
164 has_proxy[SCHEME_HTTP] = true; 168 has_proxy[SCHEME_HTTP] = true;
165 has_proxy[SCHEME_HTTPS] = true; 169 has_proxy[SCHEME_HTTPS] = true;
170 has_proxy[SCHEME_HTTPSV] = true;
166 has_proxy[SCHEME_FTP] = true; 171 has_proxy[SCHEME_FTP] = true;
167 has_proxy[SCHEME_ALL] = false; 172 has_proxy[SCHEME_ALL] = false;
168 } 173 }
169 174
170 // TODO(pamg): Ensure that if a value is empty, that means "don't use a proxy 175 // TODO(pamg): Ensure that if a value is empty, that means "don't use a proxy
171 // for this scheme". 176 // for this scheme".
172 177
173 // Build the proxy preference string. 178 // Build the proxy preference string.
174 std::string proxy_pref; 179 std::string proxy_pref;
175 for (size_t i = 0; i <= SCHEME_MAX; ++i) { 180 for (size_t i = 0; i <= SCHEME_MAX; ++i) {
(...skipping 20 matching lines...) Expand all
196 201
197 bool RemoveCustomProxySettingsFunction::RunImpl() { 202 bool RemoveCustomProxySettingsFunction::RunImpl() {
198 bool incognito = false; 203 bool incognito = false;
199 args_->GetBoolean(0, &incognito); 204 args_->GetBoolean(0, &incognito);
200 205
201 RemovePreference(prefs::kProxyMode, incognito); 206 RemovePreference(prefs::kProxyMode, incognito);
202 RemovePreference(prefs::kProxyPacUrl, incognito); 207 RemovePreference(prefs::kProxyPacUrl, incognito);
203 RemovePreference(prefs::kProxyServer, incognito); 208 RemovePreference(prefs::kProxyServer, incognito);
204 return true; 209 return true;
205 } 210 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698